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.

reenter BOOTROM and BOOTROM source code

We are trying to start our own PCIe bootloader on our custom board without IBL. The PCIe booting works for the bootloader. After the bootloader configures DDR3, we would like the bootloader to jump back to BOOTROM so that we can use the same procedure to download the DSP application code once more. We also cleared the BOOTMAGIC and the last 0xD23f bytes (RAM used by BOOTROM) before we jump back to BOOTROM.

We could single step and trace the code branched back to 0x20b0000 and executing. But the bootrom eventually brings the code to some strange places (such as L2SRAM for corePack1). It is very difficult to trace code by dissemble. Is the source code for C6657 bootrom available?

Do we also have to clear the BOOTCOMPLETE register before we branch back to BOOTROM?

thanks

Weichun

  • Hi Yuan,

    For C6657, you can do the DDR configuration and boot in single step. I did an exmple for SPI boot, you can use this as reference to do your PCIe boot example.

    Thanks,

    Arun.

    2703.SPIboot_ddr.zip

  • Thank you Arun.

    If I understand correctly, you use the DDR table to configure the DDR after POR, then jump to _c_int00 and main which is in DDR. If I understand properly, the bootloader should transfer the DDR_CONFIG section first, wait till ROM bootloader to configure DDR after the enable bitmap is written, then download .text, .bss and .cinit to DDR.

    So we have to have a special host bootloader to this (download DDR_CONFIG section, wait for DDR is configured, then download the DDR bootloader and write BOOTMAGIC). How do we know that DDR is configured properly and we can download code to DDR?

    In our case, we will first run some independent diagnostic code at host uboot start which also configures DDR, then, we will drop those code (in our case, DSP bootloader), and start our DSP application through PCIe again. We therefore need to re-download the dsp application. We just try to avoid static allocate memory maps accross different applications

    thanks

    Weichun