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.

AM6442: TMDS64EVM failed to found the PHY Dp83869

Part Number: AM6442
Other Parts Discussed in Thread: TMDS64EVM

When I run the ethercat_slave_simple_demo_am64x-evm_r5fss0-0_freertos_ti-arm-clan,the corresponding SDK version is ind_comms_sdk_am64x_09_00_00_03, the corresponding hardware circuit is TMDS64EVM, the program prints a prompt saying that the PHY could not be found

I modified the program to add a phyid on print, and it shows that the phyid of the input function is 0

Phy Reset: 1.35
Phy Reset: 0.17
Phy UnReset: 1.35
Phy UnReset: 0.17
Configure Phy bits: PhyAddr:5, LinPol:HIGH, PhyAddr:3, LinPol:LOW, (0x8)
phy_id:0
PRU_PHY_detect:156 PHY0 not ok
phy_id:0
PRU_PHY_detect:164 PHY1 not ok
phy_id:0
PRU_PHY_detect:156 PHY0 not ok
phy_id:0
PRU_PHY_detect:164 PHY1 not ok
phy_id:0
PRU_PHY_detect:156 PHY0 not ok
phy_id:0
PRU_PHY_detect:164 PHY1 not ok
phy_id:0
PRU_PHY_detect:156 PHY0 not ok
phy_id:0
PRU_PHY_detect:164 PHY1 not ok
phy_id:0
PRU_PHY_detect:156 PHY0 not ok
phy_id:0
PRU_PHY_detect:164 PHY1 not ok
phy_id:0
PRU_PHY_detect:156 PHY0 not ok
phy_id:0
PRU_PHY_detect:164 PHY1 not ok
phy_id:0
PRU_PHY_detect:156 PHY0 not ok
phy_id:0
PRU_PHY_detect:164 PHY1 not ok
phy_id:0
PRU_PHY_detect:156 PHY0 not ok
phy_id:0
PRU_PHY_detect:164 PHY1 not ok
phy_id:0
PRU_PHY_detect:156 PHY0 not ok
phy_id:0
PRU_PHY_detect:164 PHY1 not ok
phy_id:0
PRU_PHY_detect:156 PHY0 not ok
phy_id:0
PRU_PHY_detect:164 PHY1 not ok
No PHYs found !!!
PRU_MDIO_initPhy: 0x120003 EC is fatal=1, SRC:PRU_MDIO_initPhy:339

  • Hi,

    Just to confirm, you are using the TMDS64EVM without any modifications to the phys on the board? If so, did you check that loading the EtherCAT Slave Simple Demo works out-of-the-box, without any modifications to the source code? With the TMDS64EVM you should see output similar to the following. For some reason on your output log, there are some differences in the "PhyAddr" and phy reset numbers. 

    DMSC Firmware Version 8.6.4--v08.06.04 (Chill Capybar
    DMSC Firmware revision 0x8
    DMSC ABI revision 3.1
    
    [BOOTLOADER_PROFILE] Boot Media       : NOR SPI FLASH 
    [BOOTLOADER_PROFILE] Boot Media Clock : 166.667 MHz 
    [BOOTLOADER_PROFILE] Boot Image Size  : 392 KB 
    [BOOTLOADER_PROFILE] Cores present    : 
    r5f0-0
    [BOOTLOADER PROFILE] SYSFW init                       :      12041us 
    [BOOTLOADER PROFILE] System_init                      :      71513us 
    [BOOTLOADER PROFILE] Drivers_open                     :        275us 
    [BOOTLOADER PROFILE] Board_driversOpen                :      21984us 
    [BOOTLOADER PROFILE] Sciclient Get Version            :      10023us 
    [BOOTLOADER PROFILE] CPU Load                         :     586086us 
    [BOOTLOADER_PROFILE] SBL Total Time Taken             :     701927us 
    
    Image loading done, switching to application ...
    
    Local Implementation
    Pruicss  max =3 selected PRU:3
    Did Map 0x30080000 len 0x2000 to 0x30080000 (dram0)
    Did Map 0x30082000 len 0x2000 to 0x30082000 (dram1)
    Did Map 0x300b4000 len 0x4000 to 0x300b4000 (iram0)
    Did Map 0x300b8000 len 0x4000 to 0x300b8000 (iram1)
    Did Map 0x30090000 len 0x10000 to 0x30090000 (shdram)
    Did Map 0x300a2000 len 0x400 to 0x300a2000 (control0)
    Did Map 0x300a4000 len 0x400 to 0x300a4000 (control1)
    Did Map 0x300a0000 len 0x2000 to 0x300a0000 (intc)
    Did Map 0x300a6000 len 0x2000 to 0x300a6000 (cfg)
    Did Map 0x300a8000 len 0x2000 to 0x300a8000 (uart0)
    Did Map 0x300ae000 len 0x2000 to 0x300ae000 (iep)
    Did Map 0x300b0000 len 0x2000 to 0x300b0000 (ecap0)
    Did Map 0x300b2000 len 0x400 to 0x300b2000 (mii_rt)
    Did Map 0x300b2000 len 0x1c00 to 0x300b2000 (mdio)
    Did Map 0x3008a000 len 0x2000 to 0x3008a000 (txPru0Iram)
    Did Map 0x3008c000 len 0x2000 to 0x3008c000 (txPru1Iram)
    Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru0CtlReg)
    Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru1CtlReg)
    Phy Reset: 9.3
    Phy Reset: 9.4
    pRegPerm = 0x30082000, dram1=0x30082000, offset = 0x00000000, size = 0x00001400
    PRU ESC: Rev 0690 | Bld 050D | INTC base: 0x300a0000 , id = 0x4e82a900
    INTC.HIDISR addr: 0x300a0038
    RxPDO created 0x1600: 0x7015fb50
    RxPDO created 0x1601: 0x7015fc58
    TxPDO created 0x1A00: 0x7015fcf0
    TxPDO created 0x1A01: 0x7015fdf8
    DTK_EEPROM_emulationPrepare:686: Set CatSyncMan[1]:sa=0x1000, len=0x100, ctrl=0x26, ena=1
    DTK_EEPROM_emulationPrepare:695: Set CatSyncMan[2]:sa=0x1100, len=0x100, ctrl=0x22, ena=1
    DTK_EEPROM_emulationPrepare:704: Set CatSyncMan[3]:sa=0x1200, len=0xc00, ctrl=0x64, ena=1
    DTK_EEPROM_emulationPrepare:721: Set CatSyncMan[4]:sa=0x1e00, len=0xc00, ctrl=0x20, ena=1
    EC_SLV_APP_populateDescriptionObjectValues:1081 PDO Out Len: 0x40
    Phy Reset: 9.3
    Phy Reset: 9.4
    Phy UnReset: 9.3
    Phy UnReset: 9.4
    Configure Phy bits: PhyAddr:15, LinPol:HIGH, PhyAddr:3, LinPol:HIGH, (0x0)
    DP83869 detected
    DP83869 detected
    Phy 15 : Disable RGMII mode
    Phy 15 : Disable GBit ANEG
    Phy 3 : Disable RGMII mode
    Phy 3 : Disable GBit ANEG
    Phy 15 : Enable AutoMDIX
    Phy 15 : Restart ANEG
    Phy 15: BMSR post ANEG: 7949 ANEG:NComplete Link:No
    Phy 3 : Enable AutoMDIX
    Phy 3 : Restart ANEG
    Phy 3: BMSR post ANEG: 7949 ANEG:NComplete Link:No
    PHY Disable Magnetics
    PHY Enable Magnetics
    
    ****EC Slave*********************************************************
    Numeric Version: 0x00010C02
    Friendly Version: <KB EC Slave Stack v00.01.12.02>
    Source Id: <01de6657fab46f2980387e18e193ed46a4b7716c>
    ****HWAL*************************************************************
    Numeric Version: 0x00010004
    Friendly Version: <KB HWAL v00.01.00.04>
    Source Id: <4bbbb6da0fbae47f3bca2db70f39aa962e1bb858>
    ****OSAL*************************************************************
    Numeric Version: 0x0001000B
    Friendly Version: <KB OSAL v00.01.00.11>
    Source Id: <301e3042d436706e821606c1f25577530d24cef4>
    *********************************************************************
    State change: 0x0 -> 0x1
    SSC_checkTimer:MaxD:10012240 (10)
    SSC_checkTimer:MaxET:63
    SSC_checkTimer:MaxD:10088955 (10)

    If loading the out-of-the-box EtherCAT Slave Simple Demo (without any code modifications) still result in the issues you are seeing, based on the output log, it seems like the mdio bus is not able to connect with the phys. Are you able to measure the MDIO clock and data lines with an O-scope/logic analyzer? 

    Another check is to check the LEDs on the RJ45 connectors you are using to connect ethernet cables for your setup. Is the green LED lit up when the board is connected to another board/PC/switch? This is to make sure that a link can be detected but doesn't necessarily mean that the phys are in a good state or that the MAC is able to communicate with the phys via mdio.

    Best regards,

    Daolin

  • Hello, I found the problem, I used a third-party development board before, their phy reset pins are not the same as TMDS64EVM, I deleted all SDK files and reinstalled them later, and the test was normal after importing CCS software, and I found this situation after comparison, thank you