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.

TMDSSK3358: How to boot from EMAC

Part Number: TMDSSK3358

According to 3.5.1 Boot Configuration in spruih9.pdf,  
The default settings for the TMDSSK3358 is 01_00XX_XXXX_XX11_0111b. This corresponds to a boot sequence of:
. MMC0
. SPI0
. USB0

Could you please teach me how to boot from EMAC ?

  • According this page , some resistance such as R160 were removed to enable EMAC boot.
    But I'd like to know EMAC boot method by modifying sysboot0/sysboot1 in control_status register instead of modifying EVM board physically.

    I found that Figure 26-10 "ROM Code Booting Procedure" in technical reference manual shows boot process. If ROM program stops by breakpoint just before "Process device" rectangle, then I could modify sysboot0 register to boot EMAC. (But I don't know what break point address is.)
    Is this possible? If yes, could you teach me break point address ?

    Or, is there other method ?
    Figure 26-10 describes "Set the booting device list based on the SW Booting Configuration or SYSBOOT pins".
    What is "SW Booting Configuration" ?

    (In Japan, government strongly recommends telework because of COVID-19, so I'd like to find EMAC boot method without physical modification.)

  • If you are using JTAG you could set a hardware breakpoint at the beginning of ROM code (0x20000) or enable Halt on Reset in CCS.  Then you can change the CONTROL_STATUS register to enable EMAC boot in the boot sequence, and continue to run in CCS.  



  • Thank you for reply.
    I tried this method above.

    Firstly, CCS stopped at hardware breakpoint 0x20000.
    Secondary, I modified sysboot1 register from 00110111b to 11100111b, and pressed resume button.
    But no packet was captured by Wireshirk.

    After that, I pressed suspend button, and confirmed tracing vectors as shown in the figure below.
      Current tracing vector, word 1 : 0x0000102E
      Current tracing vector, word 2 : 0x00000000
      Current tracing vector, word 3 : 0x00400000

    I think that word3 shows EMAC boot was selected.
    Why was no packets captured ?
    Can TMDSSK3358 boot by EMAC ?

    By the way, was EMAC boot succeeded in this page ?

    Fig. 1 

    Fig. 2

    [Additional Information] 
    root@am335x-evm:~# ifconfig
    eth0 Link encap:Ethernet HWaddr C4:ED:BA:8D:36:AA
    inet6 addr: fe80::c6ed:baff:fe8d:36aa/64 Scope:Link
    RX packets:65 errors:0 dropped:0 overruns:0 frame:0
    TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:6989 (6.8 KiB) TX bytes:3712 (3.6 KiB)

    eth1 Link encap:Ethernet HWaddr C4:ED:BA:8D:36:AC
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

  • It looks like it is attempting to boot from EMAC, but something is failing.  Are you able to do any probing of the MDIO signals to see if the ROM is attempting to read the PHY registers?  Most likely the ROM is not able to get read the correct info out of the PHY.  You might be able to break on some of the MDIO registers to stop the ROM at the point it is trying to read the PHY.  Also, ensure the PHY is out of reset and getting a proper clock.



  • Thank you for reply.
    Please let me consult with TI Japan.

  • I realized the board does not support Ethernet booting.  Please see Advisory 2.2.1 in this document: