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 AECLKIN During Boot

Is the EMIF AECLKIN signal required when booting the C6455/C6457 when set to external EMIF clock mode? We are using a Lyrtech Dual C6457 board and have found that CCS cannot connect to this board unless there is a valid AECLKIN signal present at boot.

 

  • What boot mode are you using?  If you're using an EMIF boot mode and not supplying a clock to the EMIF then yeah that sounds like a show stopper...

  • The board is in the emulation mode, which puts the C6457 in the No Boot mode. We are using the Lyrtech's embedded USB emulator connection for debugging. When the board is in the external EMIF clock mode, CCS can connect to the board without the external EMIF clock. When in external EMIF clock mode, CCS cannot connect to the board, and reports an error that says that the CPU is continually saying that it is not ready. Once the EMIF external clock is supplied, it connects fine.

    Error Message:

    Error 0x00000006/-1202

    Error during: Memory, Register, 

    CPU continually indicated it was 'not ready'

  • Hmmm, I wouldn't have expected that, but based on your observations it looks that a clock is required.  Perhaps an easier solution is to change to the internal EMIF clock (i.e. pullup GPIO[15]).  Also, where is the PC when you connect in "no boot" mode?  I don't know off hand how "no boot" was implemented, i.e. does it spin in the boot ROM or what. 

  • The PC connects to the Lyrtech board via a USB cable. The board uses a TI C5509 DSP and some other circuitry to implement the USB to JTAG interface. None of those USB to JTAG details are on their schematic, so I don't know how it is all connected.  I am not sure what the DSP is doing once it comes out of reset in the no-boot mode. My guess is that it's just waiting for an emulator to connect to.

  • After you have successfully connected where is program counter (PC) pointing?

  • The program counter is set to 0x3C001300, which is an IDLE instruction.

     

     

  • Michael,

    Michael Courtney said:
    The board is in the emulation mode, which puts the C6457 in the No Boot mode.

    What does this mean? Are you changing DIP switches to put the DSP into No Boot Mode vs. EMIFA Boot Mode?

    When you apply the external AECLKIN and you can connect CCS, what is the hex value in DEVSTAT register at 0x0288 0820 ?

    Regards,
    RandyP

  • This board does have a series of DIP switches to change the Boot Mode for the C6457. These go to a CPLD which then controls the GPIO states when the C6457 is in reset. There are several choices for the DIP switches, which give these boot choices:

    • Emulation
    • I2C Master
    • EMAC Master
    • Serial RapidIO
    • HPI

    We use the Emulation setting, as we are not booting the board independently of the emulator.

    Once we have the Emulator attached and the board powered up, DEVSTAT has a value of 0x4001. So, we are selecting an external source for the EMIF clock, which is currently 25-MHz for the test bench coming in on AECLKIN, but will be 100 MHz in the normal board.

  • DEVSTAT = 0x0000 4001 indicates that you are in Big Endian mode with AECLKIN selected and BOOT MODE = Host Boot (HPI). This is not Emulation/No Boot mode.

    If you remove the GEL file and try to connect, will the emulator connect without showing this error message? That might still not happen since the DSP would be waiting for the HPI port to enable it after the Host loads code.

    Can the CPLD be configured to set the BOOT MODE pins to 0000b?

    If the emulator connects and then tries to run an automatic GEL function called OnTargetConnect(), that function might try to configure the EMIF registers and those operations could stall without an AECLKIN source. This could be the case no matter the boot mode, but it would not be preventing the emulator from connecting, just preventing it from executing some additional GEL commands once it has connected.

    Regards,
    RandyP

  • I'm confused, as I'm looking at the Table 3-4 in the C6457 Data Manual (SPRS582B) and it says that bit 0 being 1 is Little Endian, followed by bits 1-4 being the boot mode, where all zeros is a No Boot mode. Is this not correct?

  • No, I was the one being confused. Your original email said C6455/C6457, and the C6455 datasheet was at my fingertips.

    It is odd that the DEVSTAT definition changed so much between the two devices, but you are correct. Sorry for the wrong interpretation.

    The questions on GEL files and autofunctions may still be valid, so please let us know if you can try that to help us understand the sequence of events better.

    Randy

  • If I remove the GEL file and connect, the debugger seems happy, until I attempt to load the program, at which point I get the following Error message:

    Error: File Loader

    Data verification failed at address 0xE0000000.

    Please verify target memory and memory map.

     

  • This means that connecting the emulator is not a problem.

    That same auto-GEL script initializes the DDR2, so that explains the error message since you are trying to load to DDR2 space without initializing the DDR2 EMIF (different from the EMIFA).

    Your original question was about CCS connecting without the AECLKIN being active. We now know that AECLKIN is not required for CCS to connect to the target.

    Before going any further, let me ask whether you actually care about using CCS without AECLKIN active? Since you can make it active and then successfully go through the full GEL initialization and then successfully load your program and get some work done, is that acceptable? You have gained some knowledge about the process, but do you need to dig further into that or just go on with your project and always make sure AECLKIN is provided?

    The alternative is to edit out portions of your GEL script that are not needed (EMIFA init) while retaining the parts that are needed (maybe everything else but especially the PLL and DDR2 init parts.

    Regards,
    RandyP

     

    If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.