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.

AM4379: RAM-less app boot issue

Part Number: AM4379
Other Parts Discussed in Thread: AMIC110

Hi,

I build MotorDriver application from this path "PRU-ICSS-Industrial_Drives_01.00.02.03/examples/motor_control/projects/motor_control_AM437x_arm" and convert .bin to ti .bin by using following commnad

tiimage 0x40500000 NONE motor_control_AM437x_arm.bin motor_control_AM437x_arm_ti.bin


Then copyed conveted binary into SDCard and renamed as app

After booad boot up I got following output from UART0

StarterWare Boot Loader
BOARDInit status [0x0]
SoC : [AM43XX]
Core : [A9]
Board Detected : [IDKEVM]
Base Board Revision : [UNKNOWN]
Daughter Card Revision: [UNKNOWN]
MMC/SD Card found
Copying application image from MMC/SD card to RAM
Jumping to StarterWare Application...

After "Jumping to StarterWare Application..." I didn't get any output from console.

Regards,

Ravi

  • Ravi,

    Please review the boot debugging tips that I have shared on your other E2E post and let me know if you are able to connect to the core and determine the state of CortexA9 program counter.

    One additional tip that I want to share here is that the secondary bootloader also runs from SRAM/OCMC memory so ensure that the application memory map doesn`t overlap the memory regions that are used by the secondary bootloader. This will require you to compare linker command file or map files for the SD card and the motor control application and ensure that the bootloader doesn`t load the application in a memory region where secondary bootloader code is executing from.

    Given that the secondary bootloader is loading correctly on the platform, you can load the symbols and step through the sbl_main.c to check if the SBL code detects the entry point and the value matches what you have used with tiimage tool

    Regards,

    Rahul

  • Rahul,

    For EEPROM I hardcoded board ID and we use IDK schematic as referance so I hope no pinmuxing need for MMC interface

    Can you specify which linker file should chage for internel RAM.?

    I checked entry point by following command

    readelf -h motor_control_AM437x_arm.out

    ELF Header:
    Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
    Class: ELF32
    Data: 2's complement, little endian
    Version: 1 (current)
    OS/ABI: UNIX - System V
    ABI Version: 0
    Type: EXEC (Executable file)
    Machine: ARM
    Version: 0x1
    Entry point address: 0x80000000
    Start of program headers: 52 (bytes into file)
    Start of section headers: 2590560 (bytes into file)
    Flags: 0x5000400, Version5 EABI, hard-float ABI
    Size of this header: 52 (bytes)
    Size of program headers: 32 (bytes)
    Number of program headers: 2
    Size of section headers: 40 (bytes)
    Number of section headers: 40
    Section header string table index: 39

    It showing entry point address as 0x80000000 it seems application build for DDR

    And also I do some changes in am437x_app.cfg like below

    //Program.sectMap[".c_int00"].loadAddress = 0x80000000;
    Program.sectMap[".c_int00"].loadAddress = 0x40500000; //L2SRAM mem addr

    Cache.configureL2Sram = true;//L3 build
    //Cache.configureL2Sram = false;//DDR build

    Still application entrypoint is 0x8000000

    Regards,

    Ravi

  • Ravi,

    Do you still have this issue or have you been able to modify the entry point to OCMC or SRAM memory ? We have a demonstration of RAMless boot with AMIC110 DDRless with UART DDRless diagnostic that you can use for reference. The AMIC110 EtherCAT TI Design on ti.com and AM437x DDRless app notes will also be useful reference if you are still running into issues with this setup.

    Regards,

    Rahul