This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

EMIFA on OMAP-L138 Linux

Other Parts Discussed in Thread: OMAP-L138

Hello

I am a newbie to OMAP, but chose it for our next project.

The project requires connecting the OMAP to a FPGA, I chose to do it through EMIFA, using CS2, a 16 bit wide data bus and the data structure on the xilinx is 32 registers of 32 bits.

Project is to use the ARM core under linux.

 

My questions are:

1. Physical connection: How should I treat the BA bits and address bus? I think I understood that OMAP memory space uses byte addressing so a write to address 6,0000,0000 will be translated to EMIFA address of ADDR = 000..000 and BA = 00 (this will write the lower 16 bits to my input buffer), then do a second write to address 6,0000,0002 which will be translated to EMIFA address of ADDR = 000..000 and BA = 10 (this will write the higher16 bits to my input buffer), and so on, correct?

2. LINUX addressing of the EMIFA: ARM uses MMU, so how do I make a memory write to a specific physical address?

3. Init: How should I init the EMIFA registers?

Thanks

Uri

  • Hi Uri,

    1. My understanding is as you are planning to use 16-Bit data bus, BA[0] will become EM_A[22]. Please refer the EMIFA Use Guide from OMAP-L138 URL.

    2. I don't know about Linux.

    3. One of the register that you shall program is CE2CFG, which tells EMIFA data bus and timing parameters.

    Thank You & Regards,

    GSR

  • Thanks for the reply GSR.

    For #2, I would repost or search for your question in the Linux forums, as it is probably asked quite often.

    Jeff