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.

AM4378: UART0 issue

Part Number: AM4378
Other Parts Discussed in Thread: TMDSEVM437X

Hi ,

I trying to boot from usb using  SDK v5.3 ,I have compiled the u-boot with am437x_evm_usbhost_defconfig (I didn't do any changes on the code)and copied the MLO and u-boot.img under /boot/ partition on usb storage.I don't see any SPL logs.

I thought of using the default uart0 which is configured. I have checked for the base address of the UART0 (its found to be fine from datasheet).

Can you please help us like are we missing out some configurations for default UART0?

Board used:AM4378

  • Hello casper,

    First you need to hardcode the EEPROM content in U-Boot, depending on which board your custom board is based on. See this post and this thread for more details.

    If you want to change the UART port, please refer to this post.

    Best regards,
    Kemal

  • Hi,

    Actually we are using AM4378 and we don't have EEPROM on our custom board,Am trying to boot board from USB storage.

    Will the above patch and changes will help me out for the above scenario too?

    Can you please guide me in this scenario.

  • First, make sure that your board's SYSBOOT [4:0] settings are selected as 10101b. The real USB FLASH device (not SD card on a USB card cage) is properly formatted and directly connected to the board without using any external HUB or extension cord. The USB FLASH device must contain a MLO and u-boot.img with the hardcoded EEPROM content in them, depending on which board your custom board is based on, since you do not have an EEPROM on it.

  • HI,

    My strapping option is same as you mentioned 10101b

    Am using usb storage device(pendrive) where I used sd_card.sh script provided by TI for creating partitions and under /boot partition I have copied my MLO and u-boot.img.

    I compiled the SDK provided by TI 5.XX with default uart0 ,applying your changes ,patch shared by you in the previous thread for EEPROM.

    Changes made -->hard coding the EEPROM ,/board/ti/common/board_detect.c as AM43__GP

    And flashed the images on sd card and checked for uart logs from uart0

    am I missing out something else?

  • casper netsui said:
    Changes made -->hard coding the EEPROM ,/board/ti/common/board_detect.c as AM43__GP


    Is your custom board based on TMDSEVM437X?


    casper netsui said:
    am I missing out something else?

    No.

  • Hi,

    Our part number -> AM4378ZDN

    Can you please check above is the info you are looking for?

    else is there any way to confirm this case --> Is your custom board based on TMDSEVM437X? for our AM4378 board

  • Hi,

    Do you use the second USB port on AM437x (USB1)? Have you checked if the USB port works in Linux? Just wanted to rule out if you have any hardware design problem on USB1 port.

  • HI,

    Yes we are using USB1 (host mode).And USB1 is working fine,we tested it by booting the board from nand flash and stopping at u-boot console we tried reading usb contents from usb mass storage and tried writing it to Nand flash.

    Note:

    Default (uart0) is been used as of now.

  • Hello casper,

    What is your SYSBOOT [15:14] settings? Does it match the crystal frequency used in your board?

    Best regards,
    Kemal

  • Hi,

    Please do find the configurations

    SYSBOOT 15 is pulled down

    SYSBOOT 14 is pulled up

    SYSBOOT [15:14] - 01b,Its 24 MHz.
  • Casper,

    a couple of things you can try:

    1) Use JTAG and CCS to see the status of the boot process. See related suggestion that was provided on a different E2E thread on how to do that: https://e2e.ti.com/support/processors/f/791/p/864044/3197516#3197516

    2) Use a protocol-decoding logic analyzer (such as from https://www.saleae.com/) or a dedicated USB analyzer tool to see what activity on the USB bus you get to check if USB boot is even being attempted

    3) Perform USB-based boot on the official TI evaluation module for the AM437x, P/N TMDSEVM437X to give you a known-good starting point for comparison

    Regards, Andreas

  • Caspter,

    also for reference, here is how a USB based-boot should look like on the TI EVM:

    U-Boot SPL 2019.01-00010-g03be1db (Nov 14 2019 - 07:38:44 -0600)
    Trying to boot from USB
    USB0:   Register 2000440 NbrPorts 2
    Starting the controller
    USB XHCI 1.00
    scanning bus 0 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 2019.01-00010-g03be1db (Nov 14 2019 - 07:38:44 -0600), Build: jenkins-ti-uboot-compile-test-562
    
    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... OK
    Net:   eth0: ethernet@4a100000
    Hit any key to stop autoboot:  0
    => ls usb 0
    => usb info
    USB is stopped. Please issue 'usb start' first.
    => usb start
    starting USB...
    USB0:   Register 2000440 NbrPorts 2
    Starting the controller
    USB XHCI 1.00
    scanning bus 0 for devices... 2 USB Device(s) found
           scanning usb for storage devices... 1 Storage Device(s) found
    => usb dev
    
    IDE device 0: Vendor: Kingston Rev: PMAP Prod: DataTraveler 2.0
                Type: Removable Hard Disk
                Capacity: 14766.0 MB = 14.4 GB (30240768 x 512)
    => ls usb 0
       162914   MLO
       726976   u-boot.img
    
    2 file(s), 0 dir(s)

    Regards,
    Andreas

  • Hi,

    Thanks a lot for the reference.The issue is resolved.