Address mapping of IMX6 memory space to external RAM

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

Address mapping of IMX6 memory space to external RAM

Jump to solution
3,346 Views
hamzafarooq
Contributor II

Hello all,

I am using IMX6 SDK with the same RAM configuration as Sabre Ai board (i.e. 4 DDR IC's in x64 mode having 4 GBits capacity each). Each IC has 10 coulumns, 15 rows and 8 banks to store 16-bit words in each location. I am having trouble mapping this address space to the virtual address space as seen by the IMX6 (3840 MBytes ranging from 0x10000000 to 0xFFFFFFFF).

From "Table 44-4. Address decoding - bank interleaving off" of the IMX6 reference manual, I have found out the mapping for x32 system but even it has a little confusion. The 3 bits to address banks A[29:27] have initial value 3'b010 since RAM address range is starting from 0x10000000. How does this map to the zeroth bank? and how are all 8 banks accessed with this configuration?

Any help in this regard will be highly appreciated.

Hamza

Labels (2)
0 Kudos
1 Solution
1,462 Views
Yuri
NXP Employee
NXP Employee

Please take into account two features when considering address decoding :

1. Mapping scheme uses zero address offset and it is assumed that base memory
address of 0x1000_0000 should be added to get real address.

2. When address range of memory is 2G (per CS) low 256 MB memory are not used.

So, total memory available for DDR is 4GB-256MB.


Have a great day,
Yuri

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

View solution in original post

0 Kudos
2 Replies
1,463 Views
Yuri
NXP Employee
NXP Employee

Please take into account two features when considering address decoding :

1. Mapping scheme uses zero address offset and it is assumed that base memory
address of 0x1000_0000 should be added to get real address.

2. When address range of memory is 2G (per CS) low 256 MB memory are not used.

So, total memory available for DDR is 4GB-256MB.


Have a great day,
Yuri

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

0 Kudos
1,462 Views
hamzafarooq
Contributor II

Hi,

I will elaborate it with the the answer from Freescale support, that the internal address starting from 0x1000_0000 is mapped to 0x0000_0000. I was confusing the so-called internal address with the external memory addresses. Thank you for kind answer

0 Kudos