Set Speed and Role of enP7p1s0

Please provide the following info (tick the boxes after creating this topic):
Software Version
DRIVE OS 6.0.6
DRIVE OS 6.0.5
DRIVE OS 6.0.4 (rev. 1)

Target Operating System

Hardware Platform
DRIVE AGX Orin Developer Kit (940-63710-0010-300)
DRIVE AGX Orin Developer Kit (940-63710-0010-200)
DRIVE AGX Orin Developer Kit (940-63710-0010-100)
DRIVE AGX Orin Developer Kit (940-63710-0010-D00)
DRIVE AGX Orin Developer Kit (940-63710-0010-C00)
DRIVE AGX Orin Developer Kit (not sure its number)

SDK Manager Version

Host Machine Version
native Ubuntu Linux 20.04 Host installed with SDK Manager
native Ubuntu Linux 20.04 Host installed with DRIVE OS Docker Containers
native Ubuntu Linux 18.04 Host installed with DRIVE OS Docker Containers

Hello, I would like to set enP7p1s0 to 100Mbps and put it in slave mode. I note there is a utility to control the 10GBase-T1 that allows one to control the port role, I was hoping that also existed for the non-switch 1GBase-T1. I have an application that wants to be a port master and communicates at 100MBase-T1, and I would like to connect it to the Orin AGX Dev Kit. Is this possible?

Thank you

Could you kindly specify which device you are attempting to connect to the devkit? Is it capable of connecting to the MATEnet connectors?


I am specifically attempting to loop back enP7p1s0 to P2 of the MATENet connectors, in an attempt use an Orin AGX as a PTP master instead of an external master. I realize enP7p1s0 is not tested as a PTP device, however I believe it should work. In order for this to occur, enP7p1s0 needs to be configured as a 100MBase-T1 slave - given that it’s PCIe-rgmii bridge connected to some Broad-R-Reach PHY (the manual doesn’t specify which one), I believe it should be relatively trivial to configure the PHY as a 100Mbps Broad-R-Reach slave. Does NVIDIA have a utility that allows for this?

Could you please clarify why you want to treat the devkit as both a master and a slave?

Simply put, there are multiple sensors connected to the AGX’s switches that need gPTP, but we don’t have an external gPTP master, at least not one capable of being connected to the 100Base-T1 switch on the Drive AGX. The timesync diagram in the documentation shows that the switch is expecting a gPTP master coming in on Port 2 of the 100Base-T1 port on the Drive AGX, and there is no clear way of changing that configuration such that the switch can be slaved to an upstream gPTP master in any other configuration - therefore, in order to get gPTP into the switch without an external master, the Drive AGX has to be a master and distribute gPTP to its own switch via Port 2 on the 100Base-T1 switch. If you have a better idea, I’m all ears.

What specific issue are you experiencing without an external PTP master? It is doubtful that a loopback configuration alone will resolve this issue.

I am experiencing the issue that setting the Drive AGX as a PTP master does not appear to distribute that Drive AGX’s PTP time via Oak or Spruce.

Any updates on this? I did discover a utility to change the link speed from 1Gbps to 100Mbps on enP7p1s0, but when I do packets don’t appear to get through the media converter. Are there additional steps required?

I’m sorry if I haven’t fully grasped your intentions. Just to clarify, are you attempting to configure a single devkit with a loopback connection to function as both a PTP master and a PTP slave?

Could you kindly provide more information regarding the utility you used? It would be helpful to know the specific steps you followed and how you conducted the testing.

To clarify: I have no external PTP master, but I want the switches in the AGX to act as a PTP master to downstream devices. Since the only port on the AGX switch that will accept an external PTP master is Port 4 (not Port 2, I specified incorrectly before), I want to loop back one of the Ethernet connections from the AGX (in this case enP7p1s0) back into Port 4 of the 100M Base-T1 switch, and run enP7p1s0 as a PTP master. This would make the Orin itself the PTP master, and cause it to be a master to the 100M switch, as there is no documented way to distribute PTP time from the AGX to its internal switches without an external master - it’s designed to take PTP from an external master and distribute it into the AGX, but I don’t want to do that.

If you are still having issues with my application, let us simplify: I wish to connect enP7p1s0 to a 100Mbps T1 device, and I want to know if that is possible.

The application is located in the /usr/lib/firmware directory:

sudo /usr/lib/firmware/marvell_ethernet/88Q2xxx/mv88q2xxx_drv -D enP7p1s0 -s 100 -p 88Q2112

This causes an external media converter to detect a 100Mbps link, but no packets are transmitted or received.

The intended behavior of having the switches in the AGX act as a PTP master is not planned configuration, so it is not supported. While it may be technically feasible, there might be implications on the accuracy and performance that need to be considered. Additionally, it is worth noting that we don’t support PTP on lan7431.

OK, but is it possible to set the speed of enP7p1s0 to 100M? That is the question that must be answered.

I guess further, your statement that switches in the AGX act as a PTP master not a planned configuration is confusing to me - I think we may be talking past one another. 802.1as (gPTP) is a peer-to-peer timesync protocol, so every switch needs to be a slave to the upstream master and master to a downstream slave. According to the NVIDIA documentation on timesync, only Port 4 on the 100M switch is configured to accept PTP master messages (and thus Port 4 is a PTP slave port), all other ports are configured to be PTP masters of anyone downstream. Thus, the switches in AGX are configured to act as PTP master, but not grandmaster - that may be where the confusion lies. I am not talking about attempting to use the switch as a grandmaster, I am attempting to distribute a grandmaster timesync through the switch, but in this case the grandmaster is another Orin AGX.

Essentially, connecting enP7p1s0 to switch port 4 is not a supported configuration as it is not part of the intended design.

Understood, but that doesn’t answer the question - is it possible to set the speed of enP7p1s0 to 100M?

Any updates here? Not pertaining to PTP, but simply can enP7p1s0 be set to 100M?

Based on my understanding, setting the enP7p1s0 interface to 100Mbps you may need to use the ethtool tool to switch the interface speed to 100 Mbps and also requires a device tree change. However, we haven’t done it before and couldn’t find a compelling use case for downgrading a 1G interface to 100Mbps.


Ethtool doesn’t seem happy about changing the speed, it sets the reported speed to 10Mb/half duplex regardless of speed setting and doesn’t pass packets, so I think the device tree change is the key. Is there documentation on how to perform that (or any other) device tree change? I believe I have found the relevant setting, but whenever we change the setting and run a bootburn it appears to reset the setting.

For those playing at home, I was able to successfully change enP7p1s0 to 100Mbps by using a combination of changing the fixed link speed in the device tree and by setting the speed of the PHY in the script above.

1 Like