i.MXRT1175: ECC activation for the M7 FlexRAM used for ITCM/DTCM

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

i.MXRT1175: ECC activation for the M7 FlexRAM used for ITCM/DTCM

1,024 Views
Codeguru
Contributor I

Hello,

i try to enable/use ECC for the M7 FlexRAM as ITCM/DTCM.

I can't use the SDK directly, but reuse the register/value setup sequence.

After allocate FlexRAM (256kB DTCM / 256kB ITCM) & enable

FLEXRAM->FLEXRAM_CTRL |= FLEXRAM_FLEXRAM_CTRL_TCM_ECC_EN_MASK;

the M7 runs in different hardfaults (e.g. usage/bus/...) if executing code from the ITCM accordingly the the exception stack frame.

Q1: Is really no additional ECC memory (write access) initialization required?
(e.g. like MECC64 / RM 38.5 Initialization)

Q2: Is any FlexRAM bank mapping required for the ECC banks?
Usage shall be 512kB for TCM and the 128kB for ECC.

The used example sample code (from SDK) uses IOMUXC_GPR->GPR16/17/18.

In the RM i.MX RT1170 Processor Reference Manual, Rev. 0, 12/2020

12.4.3.18 GPR16 General Purpose Register (GPR16)
12.4.3.19 GPR17 General Purpose Register (GPR17)
12.4.3.20 GPR18 General Purpose Register (GPR18)

Q3:
I can't found any description of the FlexRAM function for this registers in the manual?

Also AN12077 "Using the i.MX RT FlexRAM, Application Note, Rev. 3, 01/2021" is using GPR14? on page 29 ?  (Seems be invalid for the i.MXRT117x!)

Any useful suggestions?

Tags (2)
0 Kudos
Reply
3 Replies

1,004 Views
victorjimenez
NXP TechSupport
NXP TechSupport

Hello, 

In the RT1170-EVK SDK, we have an example project that demonstrates how to enable the ECC for the OCRAM. The name of the example is flexram_ecc_cm7. 

victorjimenez_0-1615419271097.png

Also, keep in mind that the ECC is only available in certain OCRAM regions. 

victorjimenez_0-1615420621825.png

Be aware of the following note as well. 

victorjimenez_1-1615420679293.png

Regarding how to reallocate FlexRAM, please check section 39.3.2 of the reference manual, as well as the application note that you already mentioned. For more information regarding the GPR registers please check sections 12.4.5.19 and 12.4.5.18. 

Regards,
Victor 

 

0 Kudos
Reply

994 Views
Codeguru
Contributor I

Thanks Victor,

the example utilizes directly the reserved ECC memory region for the OCRAM ECC example/test.

File: \boards\evkmimxrt1170\driver_examples\flexram\flexram_ecc\cm7\flexram_ecc.c

#define APP_FLEXRAM_OCRAM_START_ADDR 0x20360000
How shall this work for the ECC test?

Without reallocate FlexRAM and enabled ECC, only the TCM is available. (default fuse setting)


I don't found any code/driver with using of GPR16/17/18 to reallocate/mapping one or more FlexRAM-bank in the SDK 2.9.1?
(grep FLEXRAM_BANK_CFG found only definitions)

Regards,
Codeguru

 

Tags (1)
0 Kudos
Reply

963 Views
victorjimenez
NXP TechSupport
NXP TechSupport

Hello, 

Unfortunately, right now there isn't an example that demonstrates how to reallocate the FlexRAM during runtime. I apologize for the inconvenience that this might cause you. 

Regards,
Victor 

0 Kudos
Reply