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.

How to set up an extra AEMIF?

Other Parts Discussed in Thread: AM1808

Hi all,

I am trying to set up an AEMIF for a 16MiB register space on an fpga that we have.

The only samples I can find involve the flash. Are they valid samples to base such a thing.
Their setup seem to involve structures that are specific to non-volatile storage.

Would it be enough to make a call to davinci_aemif_setup_timing?
Does anyone know any documentation for this function?

Any help would be much appreciated.

Thanks,
Philipp

  • Hi Philipp,

    Which Davinci processor are you using? For DM6467, Asynchronous EMIF has two cases - general EMIF and Flash. You can use general EMIF timings for your case. The link to valid documentation can be provided only after you tell your processor name :)

    Regards,

    Sid

  • Oh, I just saw that you have put Sitara ARM processor  as your tags. Then why are you referring davinci functions for it? Because of the ARM9 processor core that davinci has?

    -- Sid

  • Hi Sid,

    I'm using the AM1808 which, from what I gather, is based on a processor called DA850 which I think is a DaVinci processor.
    And the sitara tag I added because the AM1808 is, as I understand it, part of the Sitara line.

    Either way, TI's wiki states that the DaVinci PSP SDK should be used for this processor so that's why I was referring to the davinci functions.

    So setting a general EMIF can be done by simply setting up the timings?

    Thanks,
    Philipp

  • Hi Philipp,

    When I used DM6467 to set up a 16-bit EMIF communication with Virtex4 FPGA in one of my projects, I used what is called as Configuration Space - CS4 which is reserved for EMIF of DM6467. This space is a block of memory used for EMIF communication (starts from 42000000h in blocks of 200000h) . This space is defined in the linker file.

    Then using this address and making register settings for appropriate timings should help you perform EMIF communication.Check out for equivalent operation for your processor.

    Hope this helps.

    Regards,

    Sid

  • Hi Sid,

    Thank you for your replies!

    My setup is very similar it seems: I'm also using CS4 etc.
    Am I understanding you correctly that you set up your device through register writes as outlined in your processor spec?

    I was hoping to use a kernel-provided function such as davinci_aemif_setup_timing() -- for which I can't find any documentation -- to set up the timings instead of setting the registers manually.
    Did you use any such kernel-provided functions?

    Thanks again,

    Philipp

  • Hi Phillip,

    I used CCS4 to setup my EMIF so I didnt need to use any kernel related stuff. I have used Linux on Davinci but unfortunately, never did any EMIF stuff on that.

    When used other kernel related functions, the best way I did was to read the source code and determine what the function did, and accordingly passed parameters to it.I think the best way would be to do the same. I dont think you would find any documentation for specific functions. There would be only general purpose documentation and functions to support the behavior.

    Regards,

    Sid