IMX6 - EIM/DDR3 interface

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

IMX6 - EIM/DDR3 interface

1,936 Views
vijeshreddy
Contributor I

Hi,

I am new to linux,I am using Phyboard MIRA iMX6. My application is to read data from external SRAM and load it in DDR3 and process it.

We are using EIM module of iMX6 to read/write data from FPGA SRAM with chipselect 0, 16 address and datalines (multiplexed),read, write signals for this interface. 1GB DDR3 RAM is connected via MMDC.  I have gone through iMX6 data available on Internet and understood the following,  1. EIM Module should be enabled by doing the required pin muxing. 2. Address range of CS0 can be configured in the pin muxing itself. 3. A simple memory read/write functions supported by linux can be used to read and write the external memory.  Please clarify whether the above statements or valid, if not what is the usual method of accessing a memory over EIM Module. If you have any application note or sample code on EIM, please provide it will be very helpful for us.

Also how to create buffers in DDR3 ram. I want to create 3 buffers of size   128KB each starting from some fixed location. 

Thanks in advance.
Labels (1)
0 Kudos
Reply
1 Reply

974 Views
Yuri
NXP Employee
NXP Employee

Hello,

 Please look at my comments below.

 

1.

> EIM Module should be enabled by doing the required pin muxing.


In addition to reserving the needed pins, using pin mux-ing, it is required
to configure the EIM module. Please look at section 22.6 (Initialization Information) of the i.MX6 D/Q Reference Manual, linked below.

 

http://www.nxp.com/assets/documents/data/en/reference-manuals/IMX6DQRM.pdf 

 

 

2.

> Address range of CS0 can be configured in the pin muxing itself.

  No, please look at section 22.4 (Chip Select Memory Map) about

EIM memory map configuring.


3.

> A simple memory read/write functions supported by linux can be used
> to read and write the external memory.

 

  Generally - yes.

 

4.

 > how to create buffers in DDR3 ram. I want to create 3 buffers of size
> 128KB each starting from some fixed location.

 

 Linux memory allocation strategy does not allow to fix buffer addresses.

But this relates to DRAM memory. To support EIM address range, You may

design own EIM driver. As driver example :

 

Kernel_Unico/board-mx6q_sabreauto.c at master · UDOOboard/Kernel_Unico · GitHub 

 

Have a great day,
Yuri

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

0 Kudos
Reply