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

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

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

1,145 次查看
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?

标记 (2)
0 项奖励
回复
3 回复数

1,125 次查看
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 项奖励
回复

1,115 次查看
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

 

标记 (1)
0 项奖励
回复

1,084 次查看
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 项奖励
回复