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.

Re: Linux EMIF driver for AM1808

Other Parts Discussed in Thread: AM1808

Hi,

I have a customer that is using an AM1808 which wants to know what is the technique we use or recommend when we need to access fixed HW addresses (FPGA registers in this case) from a linux application?

Also, I wanted to know if you have any referece design on how to interface an FPGA with the AM1808?

Regards,

Ivan Calzada

 

 

  • Technically the EMIF justs adds an addressable area to the memory map. So there is no need for a driver.

    However you need to make sure that the EMIF is correctly initialized (timing...). The used chip select then defines the address range where you can normally read/write to your device. In Linux you can only read/write the area in a kernel driver which might handle additional functions related to the FPGA. For application space you first need to map the physical address into virtual address range.

    Regards.

  • Hi Frank,

    Could you please elaborate on how to map the physical address into virtual address range?

    Regards.

  • You need to use mmap(). The man page contains an example. The public PRU driver for AM18xx also uses this technique (see __prussdrv_memmap_init(void) ). The init function sets up the driver internal pointers which then can be accessed through a function call.

    Regards.

  • Hi Frank,

    Since how to access fpga via emif has been a topic for a long time period, does Ti has documented a complete solution on how to work this issue at Linux world?  I searched this topic on this forum, at last one of  methods on this topic doesn't work by mapping to virtual address. Of course, I knew if can map to virtual address that will be easy for programming, therefore, I would like to see a easy way work on this topic.

    Regards,

    Joe