Skip to content

Conversation

matiamic
Copy link

Summary

This patch adds a network driver for 10BASE-T1x SPI MAC-PHYs that follow OPEN Alliance 10BASE-T1x MAC-PHY Serial Interface specification.

The driver is composed of an upper-half driver and lower-half drivers. The upper-half part implements the protocol logic and communication of frames between the driver and the network stack. The upper-half driver is a lower-half driver to the netdev_upperhalf driver.

Lower-half drivers are tied to a specific chip. They implement functionality that is needed for the correct functioning of the interface but is not specified by the OPEN Alliance specification. This includes MAC controller configuration and MAC address filtering. Although not implemented at this stage, it should not take much effort to enable use of some device-specific or proprietary functions, such as topology discovery, by customizing a lower-half driver.
Lower-half drivers for the Onsemi NCV7410 (NCN26010) and Microchip LAN865x MAC-PHYs are included.

Auto-detection of the MAC-PHY chip is implemented. The MAC-PHYs can act as a drop-in replacement between each other without recompiling or changing configuration. But it is also possible to directly call initializing function of the specific MAC-PHY.

10BASE-T1S MAC-PHYs can support PLCA reconciliation sublayer. This is supported by MMD register access through ioctl using mechanism from PR #16926.
The mapping of the registers is specified by other OPEN Alliance specification.

A PR will be published to the nuttx-apps with the plcatool application that mirrors PLCA configuration options of the ethtool utility.

Impact

10BASE-T1x SPI MAC-PHY driver is introduced.

Testing

The driver was ported on esp32c6-devkit[mc] and samv71-xult boards. Testing was performed between these devices. EVBUM2876 10BASE-T1S USB-C dongle was also used.
Performance was measured with iperf -u between Linux PC with the EVBUM dongle and the NCV7410 at 25 MHz SPI connected to samv71-xult with enabled DMA SPI transfers. No other load was present in the system.
Measured throughput 9.17 Mbit/s.

@github-actions github-actions bot added Area: Networking Effects networking subsystem Size: XL The size of the change in this PR is very large. Consider breaking down the PR into smaller pieces. labels Aug 29, 2025
Copy link
Contributor

@michallenc michallenc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just few nitpicks, otherwise very good work!

acassis
acassis previously approved these changes Aug 30, 2025
michal matias added 3 commits September 1, 2025 00:08
Add base driver common for OPEN Alliance 10BASE-T1x MAC-PHY Serial Interface (OA-TC6)
protocol SPI MAC-PHYs.

Signed-off-by: michal matias <mich4l.matias@gmail.com>
…MAC-PHY

Add driver for the Onsemi NCV7410 10BASE-T1S SPI MAC-PHY.
The driver also works for the NCN26010, which is an identical chip.
The driver is a lower-half driver to the OA-TC6 base driver.

Signed-off-by: michal matias <mich4l.matias@gmail.com>
Add driver for the LAN865x 10BASE-T1S SPI MAC-PHY.
The driver is a lower-half driver to the OA-TC6 base driver.

Signed-off-by: michal matias <mich4l.matias@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Networking Effects networking subsystem Size: XL The size of the change in this PR is very large. Consider breaking down the PR into smaller pieces.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants