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.

EMIF registers displaying all zeros on the OMAP-L138 exp board using CCS

Other Parts Discussed in Thread: SYSBIOS

Trying to get some peripherals up that we sky-wired into the Logic PD board.  It looks like I can not write to any of the EMIF registers.

I looked on the Forums and found lots of posts but nothing seems to work for me.  I do have the MMU off and caches.  I am just using the JTAG emulator to dump the registers and the REVID is returning 0x00000000.

When I was running code I noticed that the registers went from all 0 to unreadable by the time the code got to main.  So I dumped all the configuration for SYSBIOS and not I can get to main with the all 0.

So what am I missing?  I could not find any dip switch settings that would cause issues.  I couldn't find anything that locks the reading of the registers.

  • Today I turn on my dev board and emulator and spin up code composer and I can read the registers just fine.

    Guess I will find out if I can write them now...

    sigh - kind of scary...

  • I disconnected CCS from the emulator and power cycled everything reconnected and now I am back to the state where everthing is 0x00000000.

    I now am back to were I was Friday.

  • Reading zeros for rev-id typically implies that you might have not enabled the clock to the module via the on chip power sleep controller (PSC). Typically the gel file that comes with the boards/devices will do this for you. Can you make sure you enabling the clock to EMIFA , via a GEL file (I think when it worked, CCS might've run the GEL file by default on target connect etc).

  • Could you be more specific as to what registers I am to look at?

    When I run the GEL file for setting up the Frequency Settings I get the following:

    ARM9_0: Output: PLL0 init done for Core:300MHz, EMIFA:25MHz

    ARM9_0: Output: mDDR initialization is in progress....

    ARM9_0: Output: PLL1 init done for DDR:150MHz

    ARM9_0: Output: Using mDDR settings

    ARM9_0: Output: mDDR init for 150 MHz is done

    ARM9_0: Output: ---------------------------------------------

     

    Kind of implies that the EMIF is setup?

     

  • I seem to have stumbled on to something...

    If I run the Full_EVM/PSC_All_On_Full_EVM, the registers seem to be readable.

    If I run the Experimenter/PSC_All_On_Full_Experimenter they are not?

    I am on the exp version of the card so I never ran the EVM before.  Whats the differenece and maybe I should be running the EVM stuff?

    Thanks so much for your time, I think this will do it.

    Mikie

     

  • Mike

    I am not sure what version of the GEL file you have, but please look for a functions like (the snapshots that i paste below could be slightly different)


      PSC0_LPSC_enable(0, LPSC_EMIFA);

     in

    menuitem "Experimenter"

    hotmenu PSC_All_On_Experimenter()

    or

    menuitem "Full EVM"

    hotmenu PSC_All_On_Full_EVM() {

    This should get executed if you have a GEL file function that does the following in its on target connect

    OnTargetConnect( )
    {
        Clear_Memory_Map();
        Setup_Memory_Map();

        /* You can choose to run this if you only have the experimenter kit        */
        /* It will not turn PSC on for the peripherals on the user interface board */
        /* But it does not hurt if you choose to run PSC_All_On_Full_EVM() even if */
        /* you only have the experimenter kit                                      */
        /* PSC_All_On_Experimenter(); */

        PSC_All_On_Full_EVM();
        
       Core_300MHz_mDDR_150MHz();

     

       Wake_DSP();
    }

    If


      PSC0_LPSC_enable(0, LPSC_EMIFA); is not being called as part of your gel file initialization, the clocks to EMIFA module might not be enabled.

  • Thats the line that made me go run that function.  I just dont know how that funciton "OnTagetConnet" gets run, So I started to run all the pieces individually and when I came to that one it ran.

    Thanks,

     

     

  • Mike Geppert said:
    I am on the exp version of the card so I never ran the EVM before.  Whats the differenece and maybe I should be running the EVM stuff?

    The difference is that likely the EMIFA LPSC enable function is commented out on the experimenter board PSC setup because EMIFA on the EVM is available for NOR/NAND which are on a daughtercard that you would get with the full kit, with the experimenter kit you just have the base board, so the GEL file tries to enable the modules that are in use on the base board alone.

  • Awwww! I seeee!! That makes complete sense.  We just have an addon card that our subcontractor made that goes on one of the connectors for wich we now need to turn on all that stuff so we can get to the chip they added for us.

    Ok life is good now!  Thanks so much for your time and quick response.

     

  • Now I got to put SYSBIOS back in and something in the initalization (before the main break point) is making the EMIF give an error "Error: unable to read".

    I put in some startup code from the vendor of the board that looked like it was tring to setup the clocks for the EMIFA and it seems that the register alrady has the value they are trying to set.

    So where do I go look now?

    Thanks

  • I've been unable to use the emifa until I stumbled upon this post.

    Writing/reading the emifa registers doesn't work when the clock isn't running. Start the clock, and then it works...