RT1064 Flash Remapping both FlexSPI addess spaces

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

RT1064 Flash Remapping both FlexSPI addess spaces

Jump to solution
1,654 Views
scornelius
Contributor III

The issue:
On the i.MX RT1064, how do I individually set different address offsets for both the FlexSPI controllers?

I am using i.MX RT1064, and currently have a single bootloader in the internal 4MB FLASH (0x70000000 to 0x701FFFFF) off of FlexSPI2.
I also have two external 32MB QuadSPI FLASHes connected to FlexSPI1 (A1: 0x60000000 and A2: 0x620000000) loaded with different version of the same application.

From the bootloader, I can select the desired application using the IOMUXC_GPR_GPR30 - IOMUXC_GPR_GPR32.
We can also update any of the three images remotely.

All of that works seamlessly.

Now, I’m trying to change the bootloader to also support two versions in the internal memory.
One would start at 0x70000000, and the second at 0x70200000
From the second, I will still need to select between the two application, 0x60000000 and 0x62000000.

Again, the issue:
On the i.MX RT1064, how do I individually set different address offsets for both the FlexSPI controllers?

Are there separate control registers for FlexSPI2?

Thanks for any guidance.
  Steve

PS: I have read these documents: 
https://www.nxp.com/docs/en/application-note/AN12240.pdf
https://www.nxp.com/docs/en/application-note/AN12255.pdf

Labels (1)
0 Kudos
1 Solution
1,587 Views
scornelius
Contributor III

Thanks Melissa,

That's what I was afraid of: the hardware just can't do it.

I've been experimenting, and couldn't work around it.
My next attempt is to change the offset using a ram_funct.
So that I can offset within the internal QuadSPI, and select the external QuadSPI for application.

Thanks for the verification,
  Steve

View solution in original post

0 Kudos
2 Replies
1,593 Views
melissa_hunter
NXP Employee
NXP Employee

Hi Steve,

RT106x only has one set of FlexSPI remap registers. The intended usage is to only remap for FlexSPI1 or FlexSPI2 (not both). I guess in theory you could set the start address at 0x6000_0000 and the end address as 0x7000_0000 + flash size to cover both FlexSPI areas, but then there is still only one offset, so the offset you use would have to be the same for both FlexSPI controllers.

 

Regards,

Melissa

 

0 Kudos
1,588 Views
scornelius
Contributor III

Thanks Melissa,

That's what I was afraid of: the hardware just can't do it.

I've been experimenting, and couldn't work around it.
My next attempt is to change the offset using a ram_funct.
So that I can offset within the internal QuadSPI, and select the external QuadSPI for application.

Thanks for the verification,
  Steve

0 Kudos