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.

RTOS/AM3357: SD card boot fails

Part Number: AM3357
Other Parts Discussed in Thread: AMIC110

Tool/software: TI-RTOS

Dear TI-RTOS support team,

I had built an EtherCAT slave application, and I have to boot our AM3357 custom development board, and run the EtherCAT slave application.

I follow the steps from Processor SDK RTOS BOOT AM335x/AM437x, generated and copied MLO and app file to SD card.

I tried to boot via SD card, but nothing happened, and nothing showed up on the UART terminal.

It seems that the MLO file is not loaded.

I'm wondering that is it right to boot the board only with these two files MLO and app ?

or it also need u-boot.img and uEnv to boot like linux kernel ?

Regards,

Eric

  • The RTOS team have been notified. They will respond here.
  • Eric,

    Is your custom board using the same UART as the TI evaluation platform AM335x ICE or AMIC110 ICE ? Can you elaborate on what changes have you made on the custom board. The bootloader in Processor SDK RTOS configures the UART, DDR and sets up the clocks based on the configuration on TI evaluation platform. Inorder to do the same you need to modify the source to account for the hardware chnages that you may have introduced on your custom platform.

    The SBL is like any other application that can also be loaded through an emulator to debug. To get it ported to your platform instead of putting the MLO on the SD card. Load the .out corresponding to the bootloader using an emulator to see where the code hangs.

    Another critical part is to ensure that you have the SYSBOOT pins configured correctly for SD boot so that the ROM bootloader that is on the SOC can identify, initialize and read the secondary bootloader from the correct boot media.

    Regards,
    Rahul
  • Rahul,

    Our custom board is designed to focus on etherCAT communication. It has two ethernet connectors. Except for that are almost same as beaglebone black.

    I followed the step from Preparing SD card. I used the bootloader image which is located at PDK package for now. So, which source should I modify to generate the bootloader I need ?

    Regards,

    Eric

  • Did you pick the version of the bootloader that corresponds to beagle bone black ? Do you have the same DDR part and UART and clock ?

    The source files for bootloader on AM335x are located at :
    pdk_am335x_1_0_x\packages\ti\starterware\bootloader\src
    If you open the makefile under pdk_am335x_1_0_x\packages\ti\starterware\bootloader, you can see all the files that are built as part of the bootloader.

    the pinmux and board specific configuration is located at :
    pdk_am335x_1_0_x\packages\ti\starterware\board\am335x
  • Rahul,

    I'm not sure if I picked the right version of the bootloader. I rebuilt the pdk package. But, I can only find am335x-evm under pdk_am335x_1_0_7/packages/ti/starterware/binary/bootloader/bin .

    I was wondering how to generate the beaglebone black version ?

    Regards,

    Eric

  • Eric,

    The bootloader binary provided in the PDK is a common binary that can be used on the all TI evaluation platforms as it has an mechanism to detect the BoardID based on the EEPROM programming. Refer to the function SBLPlatformConfig in the file "pdk_am335x_1_0_x\packages\ti\starterware\bootloader\src\am335x\sbl_am335x_platform.c ", this detects the BOARD ID using a function BOARDGetId (Refer to file : pdk_am335x_1_0_x\packages\ti\starterware\board\am335x\board_am335x.c )

    If the Board ID read from the EEPROM is BOARD_AM335X_BEAGLEBONE_BOARD_NAME, then it will set the PLL and DDR accordingly. If you have a custom platform, then you can remove the BoardGetId function and populate the gBoardDataEeprom structure so that the bootloader detects this as beagleboard.

    Hope this insight helps.

    Regards,
    Rahul