imx6q[pop] : LPDDR2 Interleaving by software

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

imx6q[pop] : LPDDR2 Interleaving by software

988 Views
amanueltibebu
Contributor I

I have a custom board based on the imx6q pop with 2GB LPDDR2. The default configuration boots the device with the lpddr2 memory in 2x32 fixed mode. I now have a requirement to enable 4KB interleaving for the memory. 

I want to be able to do this without hardware modification. I've tested/confirmed that by chaining (rework) the boot config pins I'm able to use the interleaving mode, but this is the least desired method. 

I also know that I can blow the fuses with settings for interleaving, i'm leaving this option as a last resort.

Is there a way to enable this functionality entirely by some software mechanisms?  Below are the options i'm wondering about now, in order of preference.  


1 - Can I use some DCD configurations to enable interleaving? If so, would you have an example?

2 - How about OTP shadow registers? Is there some mechanism that'd allow me to modify and use the updated values to enable interleaving? I've seen in the reference manual that I can reload shadow registers but I'm not sure what this actually does, or if it's even applicable to what i'm trying to do. 

3 - Use PERSIST_OVERRIDE_SBMR1 (SRC_GPR10[28]) after setting SRC_GPR9 to correct values for interleaving. This would require a WDOG reset so it's my least preferred of the software methods. 

Please advise on best route. 

Thanks

Labels (2)
Tags (3)
0 Kudos
3 Replies

817 Views
igorpadykov
NXP Employee
NXP Employee

Hi AMANUEL

one can look at below lpddr2 script example (Dual channel/Interleaved mapping)

which could be implemented in plugin, not dcd configuration:

/* Switch PL301_FAST2 to DDR Dual-channel mapping*/

https://community.nxp.com/message/407461?commentID=407461#comment-407461 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

817 Views
amanueltibebu
Contributor I

Hi Igor,
I've tried to set this value in the include files I tried using the imx ddr stress tools. The tools complain that this address is outside of allowed address ranges. 
I've also tried to set this value in the uboot .cfg file but the board hangs. 
What do you mean by "could be implemented in plugin"?

0 Kudos

817 Views
igorpadykov
NXP Employee
NXP Employee

Hi AMANUEL

for "address is outside of allowed address ranges" one can check FAQ

i.MX6/7 DDR Stress Test Tool V3.00 

>I've also tried to set this value in the uboot .cfg file but the board hangs. 

right, as stated in first answer:

"lpddr2 script example (Dual channel/Interleaved mapping)

which could be implemented in plugin, not dcd configuration:"

uboot .cfg file is dcd configuration.

For "plugin" mode one can check Boot Chapter of Reference Manual.

Best regards
igor

0 Kudos