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.

DSP won't wake ARM after power on reset

Other Parts Discussed in Thread: OMAP-L138

I am using a custom board based around an OMAP-L138. I have a pull down resistor on TRST and a pull up on RESETn. When the board powers on, it does a power on reset and latches the boot pins (I can confirm this by connecting with my JTAG and looking at the SYSCFG0 register). The DSP then comes out of RESET. I would then expect it to wake the ARM core and follow the steps laid out in this wiki:

http://processors.wiki.ti.com/index.php/OMAP-L138_Bootloader#After_Reset

However, after I power on, I connect to the DSP and use the debug GEL script and I notice that the DSP did not wake up the ARM. When I manually wake the ARM from a GEL file I can view its registers. If I run any GEL scripts on the ARM core, the ARM seems to go into reset again and I get 0x0BAD0BAD in all of the memory locations. After this, if I run the debug GEL on the DSP core, it says the ARM is powered on. If I try to reconnect to the ARM core after this, CCS crashes and restarts my computer for me (how nice of it...). My suspicion is that the DSP bootloader is bad, or the ARM is being woken up on power up but is going into RESET for some reason. Has anyone seen similar behavior before?

Thanks,

Rob

  • Rob,

    From your other post, I assume that your issue is resolved.

    Regards

    Rahul

  • No not at all. I am still having this issue. The DSP powers up and never initializes the ARM. I can wake it up with a GEL file but it disconnects and CCS crashes my computer soon thereafter. When I look at registers while connected to the ARM I see 0x0BAD0BAD as the value for all registers. I just verified the reset timing and it is exactly as expected, all power supplies come up, and then RESET goes high with TRST low. I would expect this to start a POR. However it seems that the POR freezes somewhere after latching the boot pins and somewhere before the arm is woken up. The steps in between involve processes with the PRU loading the ARM reset vector. Is there a way that I can verify that this is happening?

    EDIT: My DSP L2 ROM is all IDLEs. I have USB and SATA powered (I'm on silicon rev 2.1 so that shouldn't affect me anyway). My DIEID registers are not zero. But when I connect to the DSP after I power it on, the Program counter is at 0x00700000 with all IDLE's in the ROM. This would indicate something like a bad initialization sequence happened. 

    Thanks,

    Rob

  • Rob,

    You are using OMAP l138 (DSP + ARM) with your custom board.

    For connecting DSP and ARM through CCS with external emulator, follow the below link, which is support EVM board.

    http://processors.wiki.ti.com/index.php/GSG:_OMAP-L138_DVEVM_Additional_Procedures#DSP_wakeup_in_U-Boot

    http://processors.wiki.ti.com/index.php/How_to_connect_to_the_OMAP-L138/C6748_EVM_board_using_CCS%3F

    You can get the idea from this link and apply on your custom board.

    Regards,

    Pubesh.

    --------------------------------------------------------------------------------------------------------

    Please click the Verify Answer button on this post if it answers your question.

    --------------------------------------------------------------------------------------------------------

     

  • Hi Pubesh, 

    I am able to connect to my board via JTAG with CCS. I have not been able to flash an AIG image to my board because the ARM core is not being initialized. My issue is similar to this issue: http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/224672.aspx

    Except that I am using silicon revision 2.1 so the suggested solution does not apply to me. However the behavior I am seeing is almost identical. This would indicate that the chip is not coming out of its initialization procedure correctly. It is latching the boot pins but is not loading the reset vector into the PRU to wake up the arm. Is there a way that I can tell from looking at registers with the JTAG where the chip is aborting the initialization? I have verified my design with the LogicPD reference design and I do not see where my issue is coming from. My only lead is that there is a cold solder or bad connection on the BGA and I would like to verify this before sending my board for rework.  Is there a way to tell where in the initialization sequence I am having an issue? 

    Thanks,

    Rob

  • Rob,

     I understand, you able to connect the DSP only using CCS and run the applications.

    However the ARM binary did not boot from your custom board using OMAP L138.

    The below wiki page gives, how to boot suitable binaries from ARM and DSP.

    http://processors.wiki.ti.com/index.php/Boot_Images_for_OMAP-L138

  • Hi Pubesh,

    It is not possible to boot a binary from a chip that has not completed its power on initialization procedure because there is no instruction code in the ROM. I am looking for information on register states during the chips initial power up. Is it possible to find out which module is not getting powered and is aborting the power on initialization?

    Thanks,

    Rob

  • Rob,

    DSP side software is responsible for enabling the clock and releasing the reset to the ARM at power-on reset.
    For the DSP to wake up ARM, See section -10.6.3 in OMAP-L138 DSP+ARM Processor TRM.
    http://www.ti.com/lit/ug/spruh77a/spruh77a.pdf