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.

AM6548: can am6548 support soc boot from USB0?

Part Number: AM6548


I had noticed one note:"J721e SoC does not support booting from USB mass storage devices. But can be used as storage device at U-Boot prompt."

in :https://software-dl.ti.com/processor-sdk-linux/esd/AM65X/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-Memory.html#booting-linux-from-usb-storage

and we had tested it on am6548 IDK evm board, we set the boot code to boot from usb0, but its console didn't have any output information, so  am6548 also didn't support booting from USB mass storage devices, right?

Thanks!

Kenn

  • Hi,

    we had tested it on am6548 IDK evm board, we set the boot code to boot from usb0, but its console didn't have any output information, so  am6548 also didn't support booting from USB mass storage devices, right?

    Yes, The am6548 IDK EVM board having AM65x SR 1.0 is not capable of booting from USB mass storage devices from usb0. See the Errata AM65x/DRA80xM Processors Silicon Revision 1.0 (Rev. E) (ti.com), errata i2019 regarding this.

    Please note that the AM65x SR 2.0 supports this boot mode.

    Thanks.

  • But the version of our IDK board is SR2.0, why did it not boot from usb0? are there some tips for it?

  • Can you let us know what USB flash drive is being used for this boot? Have you tried a different flash device? Also, share the dip switch setting you are using on the IDK board.  The flash driver must have a valid fat partition and must contain a valid tiboot3.bin in the root of this partition.

    Let us know.

    Thanks.

  • Hi, 

    We used USB flash that combined from a TF card plus TF card reader(Kingston), the partition of this TF card was created from script "mksdboot.sh", a valid tiboot3.bin was located in boot partition( fat format). 

    the setting of dip switch is : [3..0] =1000, [10..8]=100

    Thanks

    Kenn

  • Have you tried a different USB flash device without a card reader? USB MSC Boot mode can fail if a standard USB flash drive is not used.

    BTW, if you are blocked, as an alternative, suggest using SD boot mode.

    Thanks.

  • Yes, we had tried other USB flash devices without a card reader, it also can't boot up.

    Only because our SD part circuit had a problem, we had to use this USB boot function to debug our custom board.

    Thanks

    Kenn

  • If it is the problem of USB flash device, please recommend us a USB flash device that can boot up in USB boot mode, 

    USB flash device's trademark/capacity?

    Thanks

    Kenn

  • Can you provide me details on how you are connecting the USB flash device? Are you connecting it to the USB0 port on the serdes pcie personality daughter card connect to the main processor board? Are you use any USB adapter cable?

    Also, can you tell us what is J5 (HOST_SEL) setting?

    Can you capture a photo and share it?

    BTW, Did you try the USB DFU Boot?

    Thanks.

  • Hi

    You can see J5 setting on my attached picture, it's host mode.

    We also tried the USB DFU Boot, but it had problems, you can see this issue on below link:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1019517/am6548-dfu-function-in-am6548

    Thanks

    Kenn

  • Hi,

    Thanks for the picture. The connection and the J5 settings look right.

    A couple of things:

    - Can you try a different USB adapter and see if it helps? ( just in case the USB adapter is faulty).

    - Can you try to read the register 0x43000014 (CTRLMMR_WKUP_JTAGID) and 0x43000018(CTRLMMR_WKUP_JTAG_DEVICE_ID) to confirm if it is indeed AM65x SR2.0.  Obviously, you may have to use another boot mode to get to the UBOOT or OS prompt to read the value. Suggest using UART boot if SD boot does not work for you.

    Thanks.

  • Hi,

    Now we were still working on IDK, we can boot up in SD mode, and in Uboot environment, I read the value of 0x43000018:

    => md 0x43000018 8

    43000018: 0a07fe21Unhandled Exception in EL3.

    x30 = 0x0000000070000e78

    x0 = 0x00000000bffa8000

    x1 = 0x0000000000000000

    x2 = 0x0000000000000031

    x3 = 0x0000000000000001

    after I run this command , the whole system was crashed, is it value that you want ?

    Thanks

    Kenn

  • when we use booting from USB function on IDK, there are some messages out of /dev/ttyUSB1(mcu_uart0):

    Bus usb@10000: Register 2001040 NbrPorts 2

    Starting the controller

    USB XHCI 1.10

    scanning bus usb@10000 for devices... 2 USB Device(s) found

    scanning usb for storage devices... 1 Storage Device(s) found

    Bus usb@10000: Register 2001040 NbrPorts 2

    Starting the controller

    USB XHCI 1.10

    scanning bus usb@10000 for devices... 2 USB Device(s) found

    scanning usb for storage devices... 1 Storage Device(s) found

    Bus usb@10000: Register 2001040 NbrPorts 2

    Starting the controller

    and it also had some messages out of /dev/ttyUSB0(soc_uart0):

    U-Boot SPL 2020.01-dirty (Jul 20 2021 - 12:28:05 +0800)

    SYSFW ABI: 3.1 (firmware rev 0x0015 '21.1.1--v2021.01a (Terrific Lla')

    Trying to boot from USB

    scanning usb for storage devices... 1 Storage Device(s) found

    WARN halted endpoint, queueing URB anyway.

    Unexpected XHCI event TRB, skipping... (41c724f0 00000000 13000000 01008400)

    BUG at drivers/usb/host/xhci-ring.c:496/abort_td()!

    BUG!

    resetting ...

    U-Boot SPL 2020.01-dirty (Jul 20 2021 - 12:28:05 +0800)

    SYSFW ABI: 3.1 (firmware rev 0x0015 '21.1.1--v2021.01a (Terrific Lla')

    Trying to boot from USB

    scanning usb for storage devices... 1 Storage Device(s) found

    WARN halted endpoint, queueing URB anyway.

    Unexpected XHCI event TRB, skipping... (41c724f0 00000000 13000000 01008400)

    BUG at drivers/usb/host/xhci-ring.c:496/abort_td()!

    BUG!

    Resetting …

    and it reset again and again, it is the phenomena on IDK, what wrong with it?

    Thanks

    Kenn

  • Hi Kenn,

    Thanks for the CTRLMMR_WKUP_JTAG_DEVICE_ID value.

    As you see from the value you sent, it is  0x00000000bffa8000.  

    If you refer to the AM65x TRM (Link ), chapter 1.6, the AM65X version you have PG1.0.

    This explains why the USB MSC Boot and USB DFU Boot does not work.

    As previously mentioned, these boot modes only work on PG 2.0.

    after I run this command , the whole system was crashed, is it value that you want ?

    Regarding the crash, these can be ignored since you are trying to read some reserved registers. Note that you are trying to 8 DWORDs instead of the required 1 DWORD.

    Thanks.

  • Hi,

    The address of CTRLMMR_WKUP_JTAG_DEVICE_ID is 0x43000014, I read it again, Its value is 1bb5a02f, it indicated the version of our IDK am6548 is PG2.0:

    => md 0x43000014
    43000014: 1bb5a02f 0a07fe21Unhandled Exception in EL3.
    x30            = 0x0000000070000e78
    x0             = 0x00000000bffa8000
    x1             = 0x0000000000000000

    Thanks

    Kenn

  • Praveen,

    Is there a detail guide on how to using USB MSC boot? for example: partition format, what files to be put in which partition, and detail file name? if there is a real procedure works on  PG 2.0 IDK/EVM would help a lot.

  • Hi, Praveen Rao

    Do you have an update on this issueissue?

    Thanks

    Kenn

  • Hi Wan,

    I missed reading the right register from the dump. Yes, it is indeed PG2.0 AM65x sample on your board.

    But, I am unable to determine why you are not able to get the USB MSC boot working. The only thing that I can think of is the USB adapter.

    Let me check internally with our team and see if there is anything else that we can check.

    Thnaks.

  • Tony,

    Is there a detail guide on how to using USB MSC boot? for example: partition format, what files to be put in which partition, and detail file name?

    The use of USB MSC Boot is similar to that of SD boot. The partition format and the files & filename (tiboot3.bin) to put in the boot partition are the same as SD boot.

    There is documentation available at the UBoot level for the same, but it does not cover USB MSC boot.

    3.1.1.5. SD, eMMC or USB Storage — Processor SDK Linux for AM65X Documentation

    Thanks. 

  • Rraveen,

    Configure to USB boot mode, SW3[1:4]=[0001000000] , SW4[1:10] =[1010000000]and insert USB flash. the USB flash light flash several times then stop on lighting, but there is no message output to UART console.

    the USB partition 1 in FAT32 format, content as below.

    If the USB Flash is empty or there is not tiboot3.bin file, the light will keep on flash, if set to other boot mode, the light on USB flash is OFF.

    So I think the BOOT mode setting is right, and file name tiboot3.bin is required. but still not booted.

  • Hi, Praveen Rao:

    Please have checked with the information that I provided:

    when we use booting from USB function on IDK, there are some messages out of /dev/ttyUSB1(mcu_uart0):

    Bus usb@10000: Register 2001040 NbrPorts 2

    Starting the controller

    USB XHCI 1.10

    scanning bus usb@10000 for devices... 2 USB Device(s) found

    scanning usb for storage devices... 1 Storage Device(s) found

    Bus usb@10000: Register 2001040 NbrPorts 2

    Starting the controller

    USB XHCI 1.10

    scanning bus usb@10000 for devices... 2 USB Device(s) found

    scanning usb for storage devices... 1 Storage Device(s) found

    Bus usb@10000: Register 2001040 NbrPorts 2

    Starting the controller

    and it also had some messages out of /dev/ttyUSB0(soc_uart0):

    U-Boot SPL 2020.01-dirty (Jul 20 2021 - 12:28:05 +0800)

    SYSFW ABI: 3.1 (firmware rev 0x0015 '21.1.1--v2021.01a (Terrific Lla')

    Trying to boot from USB

    scanning usb for storage devices... 1 Storage Device(s) found

    WARN halted endpoint, queueing URB anyway.

    Unexpected XHCI event TRB, skipping... (41c724f0 00000000 13000000 01008400)

    BUG at drivers/usb/host/xhci-ring.c:496/abort_td()!

    BUG!

    resetting ...

    U-Boot SPL 2020.01-dirty (Jul 20 2021 - 12:28:05 +0800)

    SYSFW ABI: 3.1 (firmware rev 0x0015 '21.1.1--v2021.01a (Terrific Lla')

    Trying to boot from USB

    scanning usb for storage devices... 1 Storage Device(s) found

    WARN halted endpoint, queueing URB anyway.

    Unexpected XHCI event TRB, skipping... (41c724f0 00000000 13000000 01008400)

    BUG at drivers/usb/host/xhci-ring.c:496/abort_td()!

    BUG!

    Resetting …

    and it reset again and again, it is the phenomena on IDK, what wrong with it?

    Thanks

    Kenn

  • I use another USB flash driver, got message below, keep resetting:

    resetting ...
    k3_sec_proxy_send: Thread8 verification failed. ret = -61
    ti_sci_do_xfer: Message sending failed. ret = -61
    Mbox communication fail -61
    k3_sec_proxy_send: Thread8 verification failed. ret = -61
    ti_sci_do_xfer: Message sending failed. ret = -61
    Mbox communication fail -61
    k3_sec_proxy_send: Thread8 verification failed. ret = -61
    ti_sci_do_xfer: Message sending failed. ret = -61
    Mbox communication fail -61
    ### ERROR ### Please RESET the board ###
    Loading SYSFW image from device 1032 not supported!

    resetting ...
    k3_sec_proxy_send: Thread8 verification failed. ret = -61
    ti_sci_do_xfer: Message sending failed. ret = -61
    Mbox communication fail -61
    k3_sec_proxy_send: Thread8 verification failed. ret = -61
    ti_sci_do_xfer: Message sending failed. ret = -61
    Mbox communication fail -61
    k3_sec_proxy_send: Thread8 verification failed. ret = -61
    ti_sci_do_xfer: Message sending failed. ret = -61
    Mbox communication fail -61
    ### ERROR ### Please RESET the board ###
    Loading SYSFW image from device 1032 not supported!

  • Hi Tony Tang,

    Configure to USB boot mode, SW3[1:4]=[0001000000] , SW4[1:10] =[1010000000]and insert USB flash. the USB flash light flash several times then stop on lighting, but there is no message output to UART console.

    For USB MSC Boot, the dip switch setting to use is SW3[1-10]=0001XXXX00 and SW2[1-10]=1XXXXXXXXX (where X is dont care)

    the USB partition 1 in FAT32 format, content as below.

    This is correct the partition can be FAT32 or FAT16. But make sure the sysfw.itb is the same as sysfw-am65x_sr2-evm.itb.

    If we do not use the correct SR2.0  sysfw file, then this would also result in boot failure.

    Thanks.

  • Hi Kenn,

    when we use booting from USB function on IDK, there are some messages out of /dev/ttyUSB1(mcu_uart0):

    Can you clarify what do you mean by the above statement? What is being referred to as "booting from USB function"? Are you saying that USB MSC boot is working now and you are able to see these logs on the UART terminals?

    Thanks.

  • I use another USB flash driver, got message below, keep resetting:

    resetting ...
    k3_sec_proxy_send: Thread8 verification failed. ret = -61

    if you are seeing this, most probably you have the wrong sysfw.itb file. Please check if you are using the correct sysfw.itb file means for SR2.0 board. This also means that the USB MSC boot was successful.

    Thanks

  • I realize I made mistake on the SW4, it should be SW2, so my boot mode configuration is right.

    make sure the sysfw.itb is the same as sysfw-am65x_sr2-evm.itb.

    Yes, I renamed sysfw-am65x_sr2-evm.itb to sysfw.itb.

    Is USB MSC boot mode actually verified on PG2.0 IDK/EVM. If yes,

  • Hi Praveen Rao,

    I don't know that the USB MSC boot is working or not, but both UART( mcu_uart and soc_uart) displayed the logs I post.

    the setting of dip switch is : [3..0] =1000, [10..8]=100

    It seemed that the USB MSC driver existed some bugs, this bug leads to it reset again and again.

    Thanks

    Kenn

  • Hi Tony,

    Hi Kenn,

    Yes, We are able to reproduce the issue and confirm that the USB MSC Boot does not boot to completion.

    We found that it is successfully loading tiboot3.bin.  Next, tiboot3.bin is trying to load the sysfw.itb. During this step, the sysfw is encountering an error, and this results in the errors seen on /dev/ttyUSB1.

    We will report this issue to the team and let you know if there is a fix.

    Thanks.