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.

Booting from nand flash C5505

Other Parts Discussed in Thread: TMS320VC5505

Hi,

  We have a TMS320VC5505 processor. In our board NAND is connected via EMIF 8 bit interface. Now We want to boot from the NAND.

I have written the simple code to glow the LED(LED.out)

I converted the .out file to binary using the hex55.exe utility (refferred TMS320C55x Assembly Language Tools User’s Guide) with the options " hex55.exe -b -boot -serial8 LED.out " and i have written the same to NAND(starting from PAGE 0)..

But its not booting form the NAND flash when i reset the board.  It may be problem with the format.

Can somebody suggest  options to convert the file and is there any specific format (Binary OR hex OR any other format) to program the NAND.???

and also Do we have any tool to program the NAND.??

 

Thank you,

Jayaprakash

 

 

 

  • Jayaprakash,

    Here are some details on how to create a boot image for the C5505 DSP:

    Creating a Boot Image with Hex55 Utility

    To create the boot table, proceed through the following steps:
    1. Use the hex conversion utility (hex55.exe) revision 4.3.3 or later.  Earlier versions may not support the boot table features correctly.
    2. Use the –boot option to cause the hex conversion utility to create a boot table.
    3. Use the –v5505 option.  This option is very important since some early versions of the C55x hex conversion utility supported a different boot table format.  The wrong boot table format will cause the bootloader to fail.
    4. Specify the boot type –parallel8, –parallel16, -serial16 or –serial8.
    5. Specify the desired output format.  See the TMS320C55x DSP Assembly Language Tools User’s Guide (SPRU280) for detailed information on the available hex conversion utility output formats. -a for ASCII-Hex, -b for binary. (-serial8 should be used for binary format)
    6. Specify the output filename using the –o output_filename option.  If you do not specify an output filename, the hex conversion utility will create a default filename based on the output format.

    You say that you are able to write to NAND.  How are you doing that?  Can you verify that your code is correct in the NAND memory?

    Regards,
    Tom

  • Hi Tommy,

    We followed these steps only.

    We have a simple NAND driver(uses CSL library), we are using that to program the NAND.

    But the problem what we have is our NAND driver is connected to EMIF 8 bit interface, so when we read the data back from NAND and compare with the binary file, its not matching. Bec If i have written value 0x08 to the NAND, when reading back it shows 0x0008 in the memory as data is word addressable.

    Is this will not cause any problem to the bootloader.??

    So we are not sure how to verify the data written to the NAND.

    My queries are,

    1.Do we have any tool to program the NAND.?

    2.Do we need to write the Bootloader to the NAND in hex format OR binary format.??

    3.What is the default address specified in the DSP ROM bootloader for booting form the NAND flash(Address for the Secondary bootloader in the NAND).?

     

    Regards,

    Jayaprakash

     

     

     

  • Jayaprakash,

    Which CSL are you using?  Where did you get it?  The CSL for C5505/4 is different from CSL used for previous C5500 DSPs.  You need to correct version for the device you are programming.  The version of CSL here (http://focus.ti.com/docs/toolsw/folders/print/sprc133.html) is for the C5500 DSPs prior to C5505/4.

    If the device is programmed correctly the memory is read in Program mode which should cause a problem like you are seeing for Data reads.

    I have not seen a NAND flashing tool for C5505 yet.  I will check and see if there are any plans to produce one.

    Here is some info on NAND boot from preliminary bootloader app note for C5505.  Not sure when the app note will go public.  It is under review now as far as I know.

    The bootloader supports booting from a NAND flash attached to any of the four EMIF chip-selects. The NAND flash must use an 8-bit data bus, and its chip-enable and ready/busy signal must be connected to the C5505. The bootloader supports both small-block and large-block NAND flash devices.

    The NAND flash must use the SSFDC format. The bootloader will read the Boot Image Page Pointer (BIPP) from each of the first 256 physical pages until a non-0 value is found. If the BIPP on page-0 is 0, all other pages must start with the 3-byte signature "0xE9 0x00 0x00" in order to use the BIPP from that page. The BIPP is located in bytes 0xC4 through 0xC6 of the page.

    Once a valid BIPP is found, this value will then be used by the bootloader to determine which page contains the boot-image to load. Note that the boot-image cannot reside on the same page as the BIPP.

    Supported NAND Device IDs are: 01h, 33h, 35h, 36h, 39h, 43h, 45h, 46h, 53h, 55h, 56h, 6Bh, 72h, 73h, 74h, 75h, 76h, 78h, 79h, A1h, B1h, C1h, E3h, E5h, E6h, F1h.

    The bootloader is programmed to embedded ROM that runs automatically at Power on.  The bootloader requires that a boot table be located in the memory that you want to boot from.  The hex55 utility can be used to generate the boot table.  The information in my above post defines how to configure the conversion process.  One other point is that code sections must be aligned on a word boundary to be read correctly at boot time.  The hex55 utilility should alert you if a section which is not aligned properly.

    Here is an example DOS Command Line syntax for hex55:   hex55 -i <filename>.out -o <filename>.bin -boot -v5505 -b -serial8.  This indicates binary format.  Chapter 14 of the TMS320C55x Assembly Languard Tools User's Guide has more details on the hex55 utility.

    Hopes this helps some.

    Regards.