SNLA343A April   2020  – July 2021 DP83825I

 

  1.   Trademarks
  2. 1Introduction
  3. 2Device Overview
  4. 3Merging DP83825 Onto Sitara Steps
    1. 3.1  Step 1 – DP83825 vs. DP83822
    2. 3.2  Step 2 – Check 8710A Pins with AM335
    3. 3.3  Step 3 – De-populate the LAN8710A from AM335 EVM - BBB
    4. 3.4  Step 4 – Check the AM335 (BBB) RMII Connection Pins
    5. 3.5  Step 5 – Check the DP83825 Connection Pins
    6. 3.6  Step 6 – PinMux Tool To Generate DTS/DTSI Files.
    7. 3.7  Step 7 – DP83822 Code Base Review
    8. 3.8  Step 8 – DP83825 Code Base Review / Patch Adaption
    9. 3.9  Step 9 – Patch the Linux uboot/kernel
    10. 3.10 Step 10 – Change the Menu Config
    11. 3.11 Step 11 – Building the Components (menuconfig/dtb/zimage)
    12. 3.12 Step 12 – (Optional) Important Fix for DTS Build
    13. 3.13 Step 13 – Copy the Built Files onto the SD Card
    14. 3.14 Step 14 – Register Checking for the DP83825.
    15. 3.15 Step 15 – Linux Command To Assist The Debug
    16. 3.16 Step 16 – Linux ethtool Command Dumps (example)
    17. 3.17 Step 17 – Linux dmesg to Check the Ethernet Driver Status.
    18. 3.18 Step 18 – Testing Result with Detail Log Analysis (Success Case).
    19. 3.19 Step 19 – YouTube Demonstration Video
  5. 4Required Hardware and Software
    1. 4.1 Hardware
    2. 4.2 Software
  6. 5References
  7. 6Revision History

Step 18 – Testing Result with Detail Log Analysis (Success Case).

The success case dump of the kernel are here as below. We list here by sections. When the DP83825 driver is initialized, you will have this kind of dmesg (AKA: kernel log)

[    1.093845] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver TI DP83825
[   19.692992] TI DP83825 4a101000.mdio:00: attached PHY driver [TI DP83825] (mii_bus:phy_addr=4a101000.mdio:00, irq=POLL)
When issuing “dmesg | cpsw”, log will like this:
root@am335x-evm:~# dmesg | grep "cpsw"
[    1.310922] cpsw 4a100000.ethernet: Detected MACID = 50:8c:b1:0f:7e:c8 Rio: it’s MAC ID.
[    1.317580] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
[    1.324016] cpsw 4a100000.ethernet: ALE Table size 1024
[    1.329300] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
[   24.986407] net eth0: initializing cpsw version 1.12 (0)
[   26.081848] cpsw 4a100000.ethernet eth0: Link is Up – 10/100Mbps/Full - flow control rx/tx Rio: Link is up.
root@am335x-evm:~# dmesg | grep "link"
[   20.815722] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   21.850443] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready Rio: This will lead success.
[   27.484687] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
root@am335x-evm:~# dmesg | grep "cpsw"
[    1.321037] cpsw 4a100000.ethernet: Detected MACID = 50:8c:b1:0f:7e:c8
[    1.327701] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
[    1.334114] cpsw 4a100000.ethernet: ALE Table size 1024
[    1.339411] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
[   19.231743] net eth0: initializing cpsw version 1.12 (0)
[   21.842513] cpsw 4a100000.ethernet eth0: Link is Up – 10/100Mbps/Full - flow control off 
[   53.402750] cpsw 4a100000.ethernet eth0: Link is Up – 10/100Mbps/Full - flow control off
root@am335x-evm:~# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 50:8C:B1:0F:7E:C8
          inet addr:192.168.1.102  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::528c:b1ff:fe0f:7ec8%3068425624/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:238 (238.0 B)  TX bytes:10806 (10.5 KiB)  Rio: When linked, it will have RX/TX packets
          Interrupt:45
Ping result is okay.
(Because we are using the blue wire soldering, so, the signal quality is not good.
 You can see the “sequence number” is not continued.
 The base case is to have the real PCB that mounted with the DP83825, not blue-wired.)
root@am335x-evm:~# ping 192.168.1.101
PING 192.168.1.101 (192.168.1.101): 56 data bytes
64 bytes from 192.168.1.101: seq=6 ttl=128 time=113.975 ms
64 bytes from 192.168.1.101: seq=10 ttl=128 time=2.090 ms
64 bytes from 192.168.1.101: seq=13 ttl=128 time=1.708 ms
64 bytes from 192.168.1.101: seq=20 ttl=128 time=2.120 ms
64 bytes from 192.168.1.101: seq=22 ttl=128 time=2.055 ms
64 bytes from 192.168.1.101: seq=24 ttl=128 time=1.752 ms
64 bytes from 192.168.1.101: seq=31 ttl=128 time=2.167 ms
64 bytes from 192.168.1.101: seq=32 ttl=128 time=2.106 ms
64 bytes from 192.168.1.101: seq=34 ttl=128 time=1.910 ms
64 bytes from 192.168.1.101: seq=35 ttl=128 time=2.101 ms