-
Notifications
You must be signed in to change notification settings - Fork 1.5k
drivers/net: Add network driver for 10BASE-T1x SPI MAC-PHYs #16936
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
matiamic
wants to merge
3
commits into
apache:master
Choose a base branch
from
matiamic:oa-pr-driver
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+4,526
−0
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
michallenc
suggested changes
Aug 29, 2025
There was a problem hiding this 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
reviewed
Aug 29, 2025
michallenc
approved these changes
Aug 30, 2025
acassis
previously approved these changes
Aug 30, 2025
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>
xiaoxiang781216
approved these changes
Sep 1, 2025
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.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 theethtool
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.