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.

AM2631: Regarding External Flash Memory Image Update

Part Number: AM2631

Hi experts,

Is it possible to rewrite the external flash memory that stores the AM2631 program (image) while the CPU is running?
I understand that AM263Px supports this as described below.
It would be  helpful thay you provide alternative methods or application notes on how to achieve this with AM263x.
Best regards,
O.H
  • Hi,

    Yes its possible to rewrite the flash memory in am263, as the program execution happens from RAM

  • AM263Px supports execute in place so an additional accelerator is needed to update the firmware image,

  • Hi Nilabh Anand,

    Thank you for your reply.

    Let me confirm one more thing. Is it possible to have two images (programs), one before the update and one after the update, by dividing the external flash area into two?
    (Specifically, placing two images at 0x000_0000 and 0x000F_0000 in the external Flash and intentionally destroying one of the images.)

    Or do I need to prepare two external flash drives?
    (Specifically, since only CS_0 can be selected from the CPU side, switching is done using an external circuit.)

    I would like to confirm if there is a way to select one of two programs to launch when booting with the AM263x.

    Best regards,
    O.H

  • Let me confirm one more thing. Is it possible to have two images (programs), one before the update and one after the update, by dividing the external flash area into two?
    (Specifically, placing two images at 0x000_0000 and 0x000F_0000 in the external Flash and intentionally destroying one of the images.)

    Yes, this is definitely possible, you can pick the offset from where to boot based on if a firmware update was successful i.e

    Lets say initially you are booting from seg A(0x0000_0000), then you can do a fimrware update, now you have a new image in SegB(0xF000_0000), maintain a state variable(new_fw) which SBL will read and try to boot from Seg B, if boot succeeds, all good, if it does not it falls back to Seg A.

  • I would like to confirm if there is a way to select one of two programs to launch when booting with the AM263x.

    This logic needs to be built in SBL, and you will need to state a variable in flash at a predefined offset, which SBL can read before booting the firmware.

  • Thank you for your kind support. I understood.

    Best regards,
    O.H

  • Sure will close this thread now.