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.

CCS/PROCESSOR-SDK-AM437X: Bootloader debug issue

Part Number: PROCESSOR-SDK-AM437X


Tool/software: Code Composer Studio

I am testing the bootloder source codes. when I load the .out file to board thougth XDS100V3 in the CCS6, it show :

CortexA9: File Loader: Verification failed: Values at address 0x30007FF0 do not match Please verify target memory and memory map.
CortexA9: GEL: File: C:\ti\pdk_am437x_1_0_4\packages\ti\starterware\binary\bootloader\bin\am43xx-evm\ccs\bootloader_boot_qspi_a9host_debug.out: a data verification error occurred, file load failed.

please tell me what happen?

How can I debug the bootloder source codes?

  • The RTOS team have been notified. They will respond here.
  • The bootloader binary that your trying to load over emulator is QSPI bootloader binary that is built using Execute in place mode from QSPI direct addressing space. this binary can`t be loaded directly over emulator and needs to be flashed to the QSPI flash memory using a flash writer as described in the following article.

    processors.wiki.ti.com/.../AM437x

    Emulation drivers in CCS don`t allow for images to be loaded to execute in place memory space directly and reading back the data, this requires users to flash the images to XIP boot media and then configuring the device in XIP boot mode so that the ROM configures that mode and reads/executes code from flash memory. The write operations still require use of flash protocol.

    Regards,
    Rahul
  • Hi Rahul,

    Thank you for your answer.

    I have noticed this in the lds file am43xx_boot_xip_ccs.lds:

    MEMORY
    {
        DDR0 :   o = 0x80000000,  l = 0x10000000  /* 256MB external DDR Bank 0 */
        OCMCRAM :   o = 0x40300000,  l = 0x2FC00    /* 256KB of internal RAM */
        NOR_MEM :   o = 0x30000000,  l = 0x3FFFFFF  /* 64 MB of NOR flash memory */
    }

    and this:

            .startcode :
            {
                . = ALIGN(4);
                *sbl_init.o      (.text)
            } >NOR_MEM

    if I change it to this:

    MEMORY
    {
        DDR0 :   o = 0x80000000,  l = 0x10000000  /* 256MB external DDR Bank 0 */
        OCMCRAM :   o = 0x40300000,  l = 0x2FC00    /* 256KB of internal RAM */
    }

    and this:

            .startcode :
            {
                . = ALIGN(4);
                *sbl_init.o      (.text)
            } >OCMCRAM

    Can I load the program into DDR to debug with CCS?

  • Please refer to bootloader debugging steps here:
    software-dl.ti.com/.../Foundational_Components.html

    You can always modify the XIP bootloader and debug it over emulator from RAM memory. Instead of booting, just load the boot loader .out over the emulator to test the logic. just ensure that there are no write operations during the execution as those will not work using XIP mode.
  • Yes,
    I get it.
    Thank you very much.