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.

Strange behavior in nor flash boot

Hi, I'm currently working with the C6746 custom board and CCS5.3
The project that I made working well with the emulator XDS560v2.
So I made rom image with AISgen for NOR FLASH boot. After programming NOR FLASH I found the board  works strange.
I heard it's becayse that I made a inproper AISgen configuration. Is it the only reason ?

  • With the emulator, HW initialization is done in the GEL script code. For standalone, the GEL script must be translated to equivalent AIS settings or the GEL script code must be moved to actual code. A certain amount of AIS initialization is required to read the AIS image (eg. init NOR flash access). If the destination is DDR RAM, then DDR RAM access must be initialized.


  • Norman Wong

     I think there's some improper configration withe DDR2. So I did following

     1) Erase NOR FLASH
     2) Connect the Emulator and save the register values
     3) Modifyint AISgen by refering 2)
     4) Programming the NOR FLASH
     5) NOR FLASH BOOT
     6) EDIT the GEL file by modifying onTarget() function to do nothing about the configuration.
     7) Check the Registers.

     But I couldn't find any differences. -_-;

     What should I do ?

  • A suggestion. After NOR boot, connect with the emulator without loading an image. See what the ROM bootloader put in DDR. I've never gotten CCSv5 to connect without loading an image. So I can't say how to do that. CCSv3.3 was just a click to do so.

    Perhaps the AIS NOR config is not quite right. Compare GEL script NOR settings with the AIS settings. The ROM bootloader may not be reading the NOR flash correctly. When you say the "board works strange", what does that mean? A corrupt AIS image would cause the ROM bootloader to stop.

    There may be other HW init that your code is dependent on. I usually move GEL script code to actual code. That way emulator runs are very close to standalone runs.

  • When you say the "board works strange", what does that mean?

     

    Actually, I checked my board with the RS-422 SDLC communication. (implemented SDLC IP-core in FPGA)

    With the same environment, when I connect with the emulator the board works good.

    (peer-to-peer communication, when I send "00010100", my board sent me "00010100")

    But, the board boots in NOR FLASH mode, my board send me "00018000"

     

    Tx

    Rx (with Emulator)

    Rx (NOR FLASH BOOT)

    00010100

    00010100

    00018000

    00010200

    00010200

    00014000

    00010400

    00010400

    00012000

    00010800

    00010800

    00011000

    00011000

    00011000

    00010800

    00012000

    00012000

    00010400

    00014000

    00014000

    00010200

    00018000

    00018000

    00010100


  • Since you are able to test the FPGA UART, does that mean your code is running successfully from DDR? How is the FPGA connected? EMIF? Initialization for FPGA connection should be moved from the GEL script to the code.