i.MX RT1064 AHB / QSPI address offset register...?

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

i.MX RT1064 AHB / QSPI address offset register...?

Jump to solution
1,548 Views
np
Contributor IV

Hi everyone (and particularly @jay_heng ),

I've been asked to see if there's a way to make at least some of our new RT1064 binaries (which execute from a QSPI at 0x70000000) execute from the same address as our old RT106x binaries (which execute from a QSPI at 0x60000000).

(1) I'm pretty sure that the RT106x has a special (AHB?) register to offset certain QSPI addresses (this is to enable bootloader code to switch between two (or more) separate binary images). However, I can't find the right combination of keywords to find it. What is this register called? I

(2) Would this special register be able to offset both of the QSPI address ranges (i.e. 0x60000000... and 0x70000000...) to a shared address, e.g. to 0x68000000?

Thanks,

Tags (1)
0 Kudos
Reply
1 Solution
1,541 Views
jay_heng
NXP Employee
NXP Employee

(1). I think you want AHB remap registers: IOMUXC_GPR_GPR30/31/32

https://www.cnblogs.com/henjay724/p/13510275.html

(2). No, Remap register can only work for one address region.

View solution in original post

3 Replies
1,542 Views
jay_heng
NXP Employee
NXP Employee

(1). I think you want AHB remap registers: IOMUXC_GPR_GPR30/31/32

https://www.cnblogs.com/henjay724/p/13510275.html

(2). No, Remap register can only work for one address region.

1,538 Views
np
Contributor IV

Hi Technical Ruffian @jay_heng 

Thank very much for your answers - now I know that this is called "flash remapping", I have found (again) AN12255.pdf ( https://www.nxp.com/docs/en/application-note/AN12255.pdf ), as well as your very useful blog posts.

However, in the i.MX RT1060 Reference Manual, these three registers are global registers, i.e. not part of the AHB:

  • IOMUXC_GPR_GPR30: "Start address of flexspi1 and flexspi2"
  • IOMUXC_GPR_GPR31: "End address of flexspi1 and flexspi2"
  • IOMUXC_GPR_GPR32: "Offset address of flexspi1 and flexspi2.When ADDR_START[31:12] ≦ Addr_i[31:12] < ADDR_END[31:12], remapped address Addr_o = Addr_i[31:12] + {OFFSET[31:12],12’h0}; Otherwise Addr_o = Addr_i."

And because of this, I think the remapping would apply to both flexspi regions. So I am fairly sure I can use these three registers to do what I want:

  • On an old RT1062 board, remap a set of binary images in FLEXSPI1 to 0x68000000
  • On a new RT1064 board, remap a set of binary images in FLEXSPI2 to 0x68000000

So I think my problem is (potentially) solved.

Thanks very much!, Nick

0 Kudos
Reply
1,542 Views
jay_heng
NXP Employee
NXP Employee

RT106x contains two FlexSPIs, AHB start of FlexSPI(1) is 0x6000_0000, AHB start of FlexSPI2 is 0x7000_0000, it is defined by chip system.

RT1061/1062 XIP app can only start from 0x6000_0000 via FlexSPI1, RT1064 XIP app can only start from 0x7000_0000 via FlexSPI2, it is defined by chip BootROM.