TMDSEVM437X: USB mass storage boot

Part Number: TMDSEVM437X

Tool/software:

Hi,

I am writing the SDK-based WIC image (tisdk-base-image-am437x-evm.wic.xz) to a USB memory stick and verifying USB boot on EVM. I used the TI recommended balenaEtcher tool.
SYSBOOT is set to 10101b, but no logs were output from RS-232C. I unplugged the USB and started it up, and after about 30 seconds CCCCC was output on the RS-232C line. From this I think it is looking at some information from the USB, but it doesn't seem to be booting up. Do you have any advice?

Thanks,

Conor

  • Hi Conor,

    SYSBOOT is set to 10101b, but no logs were output from RS-232C. I unplugged the USB and started it up, and after about 30 seconds CCCCC was output on the RS-232C line.

    It seems ROM is detected the USB thumb drive, but failed to read MLO from it. A couple of things to try.

    - I personally never used BalenaEtcher, but bmaptool tool in Linux. If you have a Linux computer, can you please try to use bmaptool program to write the WIC image to the USB thumb drive?

    - If the behavior is till the same, nothing printed on the console, can you please try a different brand of USB thumb drives?

    Can you please take a picture of the SYSBOOT switches on your EVM?

  • Hi Bin,

    I was able to boot u-boot from a USB memory stick. Using balenaEtcher, I created a USB memory stick specifying "tisdk-default-image-am437x-evm.wic.xz". I then overwrote the following files provided by the TI-SDK onto the USB memory stick.

    ・u-boot.img
    ・u-boot-spl.img
    ・zImage

    In this state, when I inserted the USB memory stick into the EVM and started it, the attached log was displayed in the serial terminal log, u-boot started, and I was able to access the NAND.

    I wonder if "tisdk-default-image-am437x-evm.wic.xz" alone is not enough to boot from a USB memory stick.
    Do you have any comments?

    7103.u-boot_log.txt
    U-Boot SPL 2021.01-g44a87e3ab8 (Jul 02 2024 - 01:47:31 +0000)
    WDT:   Not found!
    Trying to boot from USB
    Bus usb@483d0000: Register 2000440 NbrPorts 2
    Starting the controller
    USB XHCI 1.00
    scanning bus usb@483d0000 for devices... 2 USB Device(s) found
           scanning usb for storage devices... 1 Storage Device(s) found
    SPL: Please implement spl_start_uboot() for your board
    SPL: Direct Linux boot not active!
    
    
    U-Boot 2021.01-g44a87e3ab8 (Jul 02 2024 - 01:47:31 +0000)
    
    CPU  : AM437X-GP rev 1.2
    Model: TI AM437x GP EVM
    DRAM:  2 GiB
    PMIC:  TPS65218
    NAND:  512 MiB
    MMC:   OMAP SD/MMC: 0
    Loading Environment from FAT... MMC: no card present
    Net:   eth2: ethernet@4a100000
    Hit any key to stop autoboot:  0
    => mtdparts
    
    device nand0 <nand.0>, # parts = 10
     #: name                size            offset          mask_flags
     0: NAND.SPL            0x00040000      0x00000000      0
     1: NAND.SPL.backup1    0x00040000      0x00040000      0
     2: NAND.SPL.backup2    0x00040000      0x00080000      0
     3: NAND.SPL.backup3    0x00040000      0x000c0000      0
     4: NAND.u-boot-spl-os  0x00080000      0x00100000      0
     5: NAND.u-boot         0x00100000      0x00180000      0
     6: NAND.u-boot-env     0x00040000      0x00280000      0
     7: NAND.u-boot-env.backup10x00040000   0x002c0000      0
     8: NAND.kernel         0x00700000      0x00300000      0
     9: NAND.file-system    0x1f600000      0x00a00000      0
    
    active partition: nand0,0 - (NAND.SPL) 0x00040000 @ 0x00000000
    
    defaults:
    mtdids  : nand0=nand.0
    mtdparts: mtdparts=nand.0:256k(NAND.SPL),256k(NAND.SPL.backup1),256k(NAND.SPL.backup2),256k(NAND.SPL.backup3),512k(NAND.u-boot-spl-os),1m(NAND.u-boot),256k(NAND.u-boot-env),256k(NAND.u-boot-env.backup1),7m(NAND.kernel),-(NAND.file-system)
    => nand erase.chip
    
    NAND erase.chip: device 0 whole chip
    Erasing at 0x1ffc0000 -- 100% complete.
    OK
    =>
    
    
    

    Can you please take a picture of the SYSBOOT switches on your EVM?

    Thanks,

    Conor

  • Hi Conor,

    I wonder if "tisdk-default-image-am437x-evm.wic.xz" alone is not enough to boot from a USB memory stick.
    Do you have any comments?

    Sorry, I don't understand the exact problem.

    Do you mean after flashed "tisdk-default-image-am437x-evm.wic.xz" to the USB stick, the EVM console won't print any message, but it can boot into u-boot only if the u-boot image and zImage are updated on the USB stick?

  • Hi Bin,

    Do you mean after flashed "tisdk-default-image-am437x-evm.wic.xz" to the USB stick, the EVM console won't print any message, but it can boot into u-boot only if the u-boot image and zImage are updated on the USB stick?

    Yes, that's right.

    Just writing "tisdk-default-image-am437x-evm.wic.xz" to the USB memory did not boot properly.

    I was able to boot properly by overwriting the following files on the USB memory with the WIC written to it.

    ・u-boot.img
    ・u-boot-spl.img
    ・zImage

    Do you have any advice?

    Thanks,

    Conor

  • Hi Conor,

    I was able to boot properly by overwriting the following files on the USB memory with the WIC written to it.

    ・u-boot.img
    ・u-boot-spl.img
    ・zImage

    This doesn't make sense to me

    Where on the USB memory do you copy these files to? What is the content there before you copied the files? Please provide the console log from your computer to show what exactly you did to the USB memory.

  • Hi Bin,

    I used balenaEtcher to write wic to a USB memory stick. After that, I tried to boot from USB, but it didn't boot properly.
    So I selected the USB memory stick in Explorer and overwrite the following files to the USB memory stick I created with balenaEtcher.

    ・u-boot.img
    ・u-boot-spl.img
    ・zImage

    Do you understand now? Where can I see the console log?

    Thanks,

    Conor

  • I kind of understand, it just doesn't make sense to me...

    Where can I see the console log?

    Never mind, I thought you use Linux PC.

    So I selected the USB memory stick in Explorer and overwrite the following files to the USB memory stick I created with balenaEtcher.

    Please take a screenshot of the Explorer to show the folder content of the USB memory before you copied the 3 files.

  • Hi Bin,

    Please take a screenshot of the Explorer to show the folder content of the USB memory before you copied the 3 files.

    I have attached a screenshot of Explorer.

    I downloaded the “tisdk-default-image-am437x-evm.wic.xz” from the following site and used balanaEtchar to write it to a USB memory stick.

    https://www.ti.com/tool/ja-jp/PROCESSOR-SDK-AM437X

    Also, the “u-boot.img”, “u-boot-spl.img”, and “zImage” we created were built based on the advice in the following thread.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/858633/processor-sdk-am437x-usb-boot-issue

    Thanks,

    Conor

  • Hi Conor,

    Thanks for the details.

    and used balanaEtchar to write it to a USB memory stick.

    After the balanaEtchar tool finished writing the wic file, did you click "eject" the USB thumb driver in Windows before unplugged it from the computer?

  • Hi Bin,

    After the balanaEtchar tool finished writing the wic file, did you click "eject" the USB thumb driver in Windows before unplugged it from the computer?

    When writing is completed with balenaEtcher, the USB seems to be automatically removed.

    Normally, "Safely remove USB" is displayed on the taskbar, but when writing is completed with balenaEtcher, the USB mark disappears from the taskbar. The USB memory also disappears from "Disk Drives" in Device Manager.

    Thanks,

    Conor

  • Hi Conor,

    Sorry, I am unable to think of anything which could causes the issue, other than the PC.

    The U-Boot has two binaries for booting from USB or SD card device, MLO and u-boot.img, in the device first partition. As you explained, you updated other 3 files but not MLO. So whatever you updated shouldn't affecting ROM load/boot MLO. When MLO gets executed, it should print 2 lines of messages on the UART console. So it is very strange that MLO doesn't run if you didn't update other 3 files.

    The only thing that I would suspect is the balenaEtcher program or the Windows PC, which somehow doesn't properly update the USB device partition, then AM437x ROM is unable to recognize it and boot from it. But when you late copied the 3 files, the mount/umount process updated the partition information correctly, then ROM can boot the USB device.

    So now I would recommend you try with a different Windows computer, or even better, a Linux PC, on which you can use balenaEtcher or bmaptool. (BTY, I only use Linux, and with bmaptool.)

  • Hi Bin,

    Has it been verified that a USB memory created with balenaEtcher on EVM can be booted without any problems? If not, is it possible to try it in your environment? The following is a related thread.
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1118411/tmdsevm437x-usb-mass-storage-boot/4146717?tisearch=e2e-sitesearch&keymatch=balenaEtcher%252525252520wic#4146717

    Thanks,

    Conor

  • I Conor,

    I will find an AM437x EVM and test the USB MSC boot in a few days.

  • Hi Bin,

    OK, I look forward to your updates.

    Thanks,

    Conor

  • If you have any opinion on the Sitara class USB-MSC please let me know (specifically AM62xx). Thanks!

  • Hi Bin and RG,

    You have been testing whether USB MSC boot works properly on the EVM. What are the results?

    Thanks,

    Conor

  • Hi Conor,

    I confirmed the prebuilt u-boot binaries in the SDK doesn't print any message on the AM437x UART console. You would have to rebuilt the U-Boot source with defconfig am43xx_evm_usbhost_boot_defconfig to enable USB host boot support to be able to boot from USB MSC on AM437x USB1 port.

    Hi RG,

    Please create a new E2E thread if you have any specific question related to AM62x USB MSC boot.

  • FYI, here is the console log from USB1 MSC boot. (I didn't put a Linux rootfs on the thumb drive though.)

    U-Boot SPL 2023.04 (Jul 30 2024 - 15:49:14 -0500)
    Trying to boot from USB
    Bus usb@483d0000: Register 2000440 NbrPorts 2
    Starting the controller
    USB XHCI 1.00
    scanning bus usb@483d0000 for devices... 2 USB Device(s) found
           scanning usb for storage devices... 1 Storage Device(s) found
    SPL: Please implement spl_start_uboot() for your board
    SPL: Direct Linux boot not active!
    
    
    U-Boot 2023.04 (Jul 30 2024 - 15:49:14 -0500)
    
    CPU  : AM437X-GP rev 1.2
    Model: TI AM437x GP EVM
    DRAM:  2 GiB
    Core:  34 devices, 16 uclasses, devicetree: separate
    PMIC:  TPS65218
    NAND:  512 MiB
    MMC:   OMAP SD/MMC: 0
    Loading Environment from FAT... MMC: no card present
    ** Bad device specification mmc 0 **
    Net:   eth2: ethernet@4a100000
    Hit any key to stop autoboot:  0
    =>

  • No Need, USB-MSC did launch a WIC image on AM623x EVK But I have not configured it fully. Just confirmed SPL launches, no code to copy USB MSC to eMMC via uEnv.txt developed yet. (TBD). But I'm happy with this on the EVK.

    U-Boot SPL 2023.04-ti-gf9b966c67473 (Mar 19 2024 - 20:31:40 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)')
    SPL initial stack usage: 13408 bytes
    SPL: failed to boot from all boot devices
    ### ERROR ### Please RESET the board ###

    NOTE: AM623x

  • RG, thanks for the update.