This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
I am trying to interface DP83867 with Jetson ORIN.
I see error as below
[ 20.163987] mdio_bus 2310000.ethernet: MDIO device at address 0 is missing. [ 20.172251] nvethernet 2310000.ethernet: failed to connect PHY [ 20.179193] net eth0: ether_open: Cannot attach to PHY (error: -19)
My DTS file update is as below
ethernet@2310000 { status = "okay"; nvidia,mac-addr-idx = <0>; nvidia,max-platform-mtu = <8000>; nvidia,pause_frames = <0>; local-mac-adress = [1a 2b 3c 4d 5e 6f]; nvidia,phy-reset-gpio = <&tegra_main_gpio TEGRA234_MAIN_GPIO(G, 5) 0>; phy-handle = <&phy>; phy-mode = "rgmii-id"; mdio { compatible = "nvidia,eqos-mdio"; #address-cells = <1>; #size-cells = <0>; phy: phy@0 { reg = <0>; compatible = "ethernet-phy-ieee802.3-c22"; tx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; rx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; ti,max-output-impedance; // ti,clk-output-sel = <DP83867_CLK_O_SEL_CHN_A_RCLK>; ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>; ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>; interrupt-parent = <&tegra_main_gpio>; interrupts = <TEGRA234_MAIN_GPIO(G, 4) IRQ_TYPE_LEVEL_LOW>; //<TODO> Need to check }; }; };
Hi Mahesh,
Pleas refer to the following documents (page 20) for this issue:
--
Regards,
Hillman Lin
Thanks for providing the document,
We followed the document and still see issues.
We see following message on dmesg
orin@orin-desktop:~$ sudo dmesg | grep ethernet [ 10.852563] nvethernet 2310000.ethernet: Adding to iommu group 51 [ 10.859607] nvethernet 2310000.ethernet: failed to read skip mac reset flag, default 0 [ 10.868401] nvethernet 2310000.ethernet: failed to read MDIO address [ 10.875561] nvethernet 2310000.ethernet: setting to default DMA bit mask [ 10.883101] nvethernet 2310000.ethernet: missing nvidia,pad_auto_cal_pu_offset, setting default 0 [ 10.892849] nvethernet 2310000.ethernet: missing nvidia,pad_auto_cal_pd_offset, setting default 0 [ 10.911517] nvethernet 2310000.ethernet: Ethernet MAC address: 48:b0:2d:94:ac:db [ 10.920071] nvethernet 2310000.ethernet: macsec param in DT is missing or disabled [ 10.928472] nvethernet 2310000.ethernet: Macsec not supported/Not enabled in DT [ 10.937803] nvethernet 2310000.ethernet: eth0 (HW ver: 53) created with 8 DMA channels [ 12.921233] using random self ethernet address [ 12.926362] using random host ethernet address [ 13.646843] using random self ethernet address [ 13.652101] using random host ethernet address
Attaching waveforms we montiored, one if on Reset Pin [reset-pin-dp83867.jhpg ]and another is on rx-clk and rx-do on DP83867 [rx-clk-andrx-d0.jpg]
We also see SCLK and SDA toggle on MDIO lines at bootup post that it stops
Please advice
Based on response for NVIDIA we hear that the errors we see arent fatal.
But we still dont see any transactions on PHY....no interrupts incrementing when we do ifconfig eth0 up/down
I ran mdio utility available at https://github.com/wkz/mdio-tools [this was suggested in ti-forum]
Attaching the outcome post running that utility in target
orin@orin-desktop:~/tools/mdio-utils/mdio-tool/build$ sudo ./mdio-tool -e eth0 -r -a 0 -l 50 Probed phyaddr: 0 PHY: 0|REG: 0 ---> 0x1140 PHY: 0|REG: 1 ---> 0x7949 PHY: 0|REG: 2 ---> 0x2000 PHY: 0|REG: 3 ---> 0xa231 PHY: 0|REG: 4 ---> 0x01e1 PHY: 0|REG: 5 ---> 0x0000 PHY: 0|REG: 6 ---> 0x0064 PHY: 0|REG: 7 ---> 0x2001 PHY: 0|REG: 8 ---> 0x0000 PHY: 0|REG: 9 ---> 0x0300 PHY: 0|REG: 10 ---> 0x0000 PHY: 0|REG: 11 ---> 0x0000 PHY: 0|REG: 12 ---> 0x0000 PHY: 0|REG: 13 ---> 0x401f PHY: 0|REG: 14 ---> 0x0000 PHY: 0|REG: 15 ---> 0x3000 PHY: 0|REG: 16 ---> 0x5048 PHY: 0|REG: 17 ---> 0x0302 PHY: 0|REG: 18 ---> 0xec10 PHY: 0|REG: 19 ---> 0x0040 PHY: 0|REG: 20 ---> 0x2bc7 PHY: 0|REG: 21 ---> 0x0000 PHY: 0|REG: 22 ---> 0x0000 PHY: 0|REG: 23 ---> 0x0040 PHY: 0|REG: 24 ---> 0x6150 PHY: 0|REG: 25 ---> 0x4444 PHY: 0|REG: 26 ---> 0x0002 PHY: 0|REG: 27 ---> 0x0000 PHY: 0|REG: 28 ---> 0x0000 PHY: 0|REG: 29 ---> 0x0000 PHY: 0|REG: 30 ---> 0x0282 PHY: 0|REG: 31 ---> 0x0000 PHY: 0|REG: 32 ---> 0xffff PHY: 0|REG: 33 ---> 0xffff PHY: 0|REG: 34 ---> 0xffff PHY: 0|REG: 35 ---> 0xffff PHY: 0|REG: 36 ---> 0xffff PHY: 0|REG: 37 ---> 0xffff PHY: 0|REG: 38 ---> 0xffff PHY: 0|REG: 39 ---> 0xffff PHY: 0|REG: 40 ---> 0xffff PHY: 0|REG: 41 ---> 0xffff PHY: 0|REG: 42 ---> 0xffff PHY: 0|REG: 43 ---> 0xffff PHY: 0|REG: 44 ---> 0xffff PHY: 0|REG: 45 ---> 0xffff PHY: 0|REG: 46 ---> 0xffff PHY: 0|REG: 47 ---> 0xffff PHY: 0|REG: 48 ---> 0xffff PHY: 0|REG: 49 ---> 0xffff orin@orin-desktop:~/tools/mdio-utils/mdio-tool/build$ sudo ./mdio-tool -e eth0 -r -a 0x006e -l 1 Probed phyaddr: 0 PHY: 0|REG: 110 ---> 0xffff orin@orin-desktop:~/tools/mdio-utils/mdio-tool/build$ sudo ./mdio-tool -e eth0 -r -a 0x006f -l 1 Probed phyaddr: 0 PHY: 0|REG: 111 ---> 0xffff orin@orin-desktop:~/tools/mdio-utils/mdio-tool/build$ sudo ./mdio-tool -e eth0 -r -a 6f -l 1 Probed phyaddr: 0 PHY: 0|REG: 6 ---> 0x0064 orin@orin-desktop:~/tools/mdio-utils/mdio-tool/build$ sudo ./mdio-tool -e eth0 -r -a 66 -l 1 Probed phyaddr: 0 PHY: 0|REG: 66 ---> 0xffff
I am now analyzing these registers and would appreciate your views and input on this
Hi Mahesh,
Regarding to the register above 0x0031, it is an extended registers. Please follow the instruction below to read those extended regsiters:
--
Regards,
Hillman LIn
Thanks!
Probably a novice question.
Why do i read these extended registers, just trying to understand is there something on those extended registers that needs to be checked/wrote.
Do you see any issues with regsiters reads from 0x00 0x1F are contents of those right.
What i heard from my hardware engineers is they have disabled Auto-Negotiations on HW, not sure how they did that but do we do anything specific on SW to manage this.
Will read those extended registers and revert.
Hi Mahesh,
Extended register are required for register above 0x001F. Those registers are store in the different library that is why extended register access is required. I will wait for your response on the extended register access.
--
Regards,
Hillman Lin
We are reading extended registers.
As a first step we tried reading register 0x0170 and wanted to verify if we get consistent reads.
We see varying results with each read.
Can you please have a look and advice if we are missing something here.
orin@orin-desktop:~/tools/mdio-utils/mdio-tool/build$ sudo ./mdio-tool -e eth0 -w -a 0x0D -v 0x001F Probed phyaddr: 0 PHY: 0|REG: 13 <--- 0x001f orin@orin-desktop:~/tools/mdio-utils/mdio-tool/build$ sudo ./mdio-tool -e eth0 -w -a 0x0E -v 0x0170 Probed phyaddr: 0 PHY: 0|REG: 14 <--- 0x0170 orin@orin-desktop:~/tools/mdio-utils/mdio-tool/build$ sudo ./mdio-tool -e eth0 -w -a 0x0D -v 0x401F Probed phyaddr: 0 PHY: 0|REG: 13 <--- 0x401f orin@orin-desktop:~/tools/mdio-utils/mdio-tool/build$ sudo ./mdio-tool -e eth0 -r -a 0x0E Probed phyaddr: 0 PHY: 0|REG: 14 ---> 0x0000 orin@orin-desktop:~/tools/mdio-utils/mdio-tool/build$ sudo ./mdio-tool -e eth0 -w -a 0x0D -v 0x001F Probed phyaddr: 0 PHY: 0|REG: 13 <--- 0x001f orin@orin-desktop:~/tools/mdio-utils/mdio-tool/build$ sudo ./mdio-tool -e eth0 -w -a 0x0E -v 0x0170 Probed phyaddr: 0 PHY: 0|REG: 14 <--- 0x0170 orin@orin-desktop:~/tools/mdio-utils/mdio-tool/build$ sudo ./mdio-tool -e eth0 -w -a 0x0D -v 0x401F Probed phyaddr: 0 PHY: 0|REG: 13 <--- 0x001f orin@orin-desktop:~/tools/mdio-utils/mdio-tool/build$ sudo ./mdio-tool -e eth0 -r -a 0x0E Probed phyaddr: 0 PHY: 0|REG: 14 ---> 0x7949 orin@orin-desktop:~/tools/mdio-utils/mdio-tool/build$
Hi Mahesh,
Based on the register read, it seems like the PHY is not linking up based on register 0x0001.
Let look at the hardware standpoint to understand why the PHY is not linking up. If possible, could you send us the schematic around the MDI lines or the connector side?
--
Regards,
Hillman Lin
Hi Mahesh,
Based on the schematic I have couple questions want to confirm with the customer:
Have customer try it with another DP83867PHY and see if they are able to get a link up?
--
Regards,
Hillman Lin
Hi Hillman,
Please find details below-
HW Engineer- Yes, we used 7499111614A which is having internal transformer. see page 2
www.we-online.com/.../7499111614A.pdf
HW Engineer- No, from PHY it is directly connected to RJ45 connector which is having internal transformer.
Min is 893.11mils max is 895.02mils
One more observation - GTX CLK Pin#29 we are getting 125MHz while RX_CLK pin#32 we are getting 2.5MHz.
Thanks
Sagar
Hi Kumar,
If the PHY has no link up, the PHY will default in 10Mbps therefore the RX_CLK is generating 2.5MHz.
The main issue should be around the MDI lines.
One more thing I would like to confirm is the different link partner. Is customer able to try using this board to another DP83867PHY board and see if they are able to link up? It is easier to debug based on two DP83867PHY so that we can tune the registers on both side.
We also have DP83867 troubleshooting guide that might be helpful:
--
Regards,
Hillman Lin
Hi Hillman,
Thanks for your support. 1G is working now. we found Mirror enable strap on Mode 3 after changing to Mode1 it is start working.
Thanks
Sagar
Thanks for you support, we have our interface up and running.
Appreciate you insights and guidance in make this possible.
-maheshG
Hi Kumar and Gaikwad,
Glad that it works. I will close this tread for now.
--
Regards,
Hillman Lin