SRAM ECC Initialization for S32K344

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

SRAM ECC Initialization for S32K344

292 Views
aadyaa
Contributor II

Hello NXP Team,

Is their any example code of avoiding SRAM ECC Initialization for S32k344 if reset type is not destructive reset?

Any example project or start code would be really helpful.

 

Thank you,

 

0 Kudos
1 Reply

271 Views
danielmartynek
NXP TechSupport
NXP TechSupport

Hello @aadyaa,

We need to modify the default startup_cm7.s file, so that SRAM ECC intialization can be skipped in case of Functional reset.

Something like this:

RamInit:
/* Check MC_RGM DES register, if it's non-zero, jump to RAMInit_Start. (RAM init is needed if Destructive reset occurred) */
/* To make it work, customer should clear the MC_RGM DES register in application code. */
ldr r4, =MC_RGM_BASE_ADDR   /* 0x4028C000 */ 
ldr r4, [r4, #0x0]
cmp r4, #0x0
bne RamInit_Start
/* Check MC_RGM FES register, if the F_EXR bit or ST_DONE bit is set, jump to RAMInit_Start. */
/* RAM init is needed if external reset occurred, or BIST Done functional reset occurred. */
/* To make it work, customer should clear the MC_RGM FES F_EXR register bit in application code. */
ldr r4, =MC_RGM_BASE_ADDR
ldr r4, [r4, #0x8]
ldr r5, =MC_RGM_FES_MASK_RAM_INIT
and r4, r4, r5
cmp r4, #0x0
bne RamInit_Start
b SRAM_LOOP_END
RamInit_Start:
/* Initialize SRAM ECC */
ldr r0, =__RAM_INIT
cmp r0, 0
/* Skip if __SRAM_INIT is not set */
beq SRAM_LOOP_END
ldr r1, =__INT_SRAM_START
ldr r2, =__INT_SRAM_END

 

Regards,

Daniel