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.

AM2632: Can't implement of No-Init Ram using AM2632

Part Number: AM2632

We need a no-init variable defined in RAM which not changed after a software reset.

Below pictrues are syscfg. Including region section and code. We set the section to 'NOLOAD'.

uint32_t u32_factory_reset __attribute__((aligned(8U))) __attribute__((section(".factory_reset_data")));
And we used SOC_generateSwWarmReset(); to reset MCU.
But the value of u32_factory_reset is always reset to 0 after sofware reset. 

image.png

image.png

 

  • Hi Yao Wei,

    Could you confirm if you're running the program in QSPI boot mode?

  • Yes, We are run in QSPI - 1S mode. We flash the mcelf image to NOR and test after power on reset.

  • Hi Yao Wei, 

    L2 memory initialization is done by ROM code for banks 0 and 1, and the SBL performs the memory initialization on banks 2 and 3, which could be resetting the variable value. 

    Also see the following excerpt present in the device TRM regarding this:

    Regards,

    Sahana

  • Hello, Sahana, 

    In your opinion, bank 0-3 will all be reset after ROM and SBL two processes in any PORz. And Warm Reset doesn't affect these fore banks.

    But we used SOC_generateSwWarmReset(); to trigger warm reset in our code. and the memory 0x701FFF00 still be reset.

    Do you know the reason. 

  • Hi Yao Wei,

    In your opinion, bank 0-3 will all be reset after ROM and SBL two processes in any PORz.

    ROM and SBL runs during every PORz and Warm Reset as well, and hence the memory initialization API " Bootloader_socInitL2MailBoxMemory();" called in the SBL is affecting the memory 0x701FFF00.

    If you really don't want the address to be affected across warm resets, then you should skip the memory initialization, which is not recommended as it is always necessary to perform memory initialization before using ECC-protected memory to avoid spurious ECC errors and potential system faults.

    Regards,

    Sahana

  • Hello Sahana,

     Do you mean the only way is delete Bootloader_socInitL2MailBoxMemory(); in SBL.

    But it isn't recommended because potential  ECC errors and system faults.

  • Hi Yao Wei,

    Do you mean the only way is delete Bootloader_socInitL2MailBoxMemory(); in SBL.

    But it isn't recommended because potential  ECC errors and system faults.

    Yes, thats correct.

    Regards,

    Sahana