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.

Boot C5515 to Execute from 16-bit-wide asynchronous memory

How can I execute code directly from external flash on C5515? My code size is larger than 320K. VC5507 and VC5509A supports this by configuring GPIO at power up.

Thanks.

  • Hello Yogin,

    In VC5509A there exists an boot option to support  Direct Execution From External Asynchronous Memory, When BOOTM[3:0] = 1000b is selected at reset. Where as In C5515 - there is no direct boot mode option support. The function of the boot-loader is to transfer user code from an external source to RAM. The C5515 has a fixed order in which it checks for a valid boot-image on each supported boot device. The device order is NOR Flash, NAND Flash, 16-bit SPI EEPROM, I2C EEPROM, and MMC/SD. The first device with valid boot-image is used to load and execute user code.

     In the case where image needs to be copied to external memory due increased size and so on,  then its suggested to follow the below procedure:

    • As a first step user has to enable the EMIF and configure the EMIF to the required settings in the register file. The optional register configuration can be seen in C5515 Boot-loader application code (below is the link).

                  C5515 Bootloader App notes

    • This boot image can reside in any of the flash / EEPROMs interfaced to SPI/I2C (C5515 support 16/24 bit SPI flash/EEPROM boot).
    • The boot-loader will then copy all the code sections to the assigned addresses.
    • After all code sections have been copied, the boot-loader waits to ensure that at least 200 ms has elapsed since the trim setup, re-enables the low-voltage detection circuit, and then branches to the entry-point address specified in the boot-image

    Caution: Observation is Executing from external RAM is expected to be slow, so care must be taken to have critical section of the code in internal memory and non-critical section in external memory.

    Hope the above information helps.

    Regards

     Vasanth

  • Yogin,

    With careful design of the FLASH contents, you could have the bootloader load a small program, the sole purpose of which would be to jump to your start address in the FLASH memory.

    All the caveats expressed by Vasanth apply (particularly the slow random access of FLASH).

    Regards,

    Bill