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.

EVm6678L NAND Write Fail

Hi,

I'm tring to program the NAND flash but I'm having some problems.

With CCS 5.1 and MCSDK 2.0.1.12 I cannot find the evmc66xxl.gel script that is supposed to do the required setup and initialize the DDR. I have tried other scripts without success.

So I move the the norWrite buffer to MCSM and rebuild it (my .out, elf format,  is only 170K).When I run it, it fails to write the first byte (at least):

[C66xx_0] NAND Writer Utility Version 01.00.00.03
[C66xx_0]
[C66xx_0] Flashing block 1 (0 bytes of 178141)
[C66xx_0] Flashing block 2 (16384 bytes of 178141)
[C66xx_0] Flashing block 3 (32768 bytes of 178141)
[C66xx_0] Flashing block 4 (49152 bytes of 178141)
[C66xx_0] Flashing block 5 (65536 bytes of 178141)
[C66xx_0] Flashing block 6 (81920 bytes of 178141)
[C66xx_0] Flashing block 7 (98304 bytes of 178141)
[C66xx_0] Flashing block 8 (114688 bytes of 178141)
[C66xx_0] Flashing block 9 (131072 bytes of 178141)
[C66xx_0] Flashing block 10 (147456 bytes of 178141)
[C66xx_0] Flashing block 11 (163840 bytes of 178141)
[C66xx_0] Reading and verifying block 1 (0 bytes of 178141)
[C66xx_0] Failure in block 1, at byte 0, (at byte 0 in the data file) expected 0x0000007f, read 0x00000000

(The expected byte 0x7f is correct, that is is the first byte oif my .out file, loaded into MCSM ad a bin file)

I'm using the configuration switch as per http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/113883.aspx#410728, that is:

"No Boot" mode is:

SW6 [position 4, 3, 2, 1] = On, On, On, On = 4b0000

SW5 [position 4, 3, 2, 1] = Off, On, On, On = 4b1000

SW4 [position 4, 3, 2, 1] = On, On, On, On = 4b0000

SW3 [position 4, 3, 2, 1] = On, On, On, OFF (little endian)


  • The EVM gel file is located here for me:

    ccsv5/ccs_base/emulation/boards/evmc6678l/gel/evmc6678l.gel

    I suspect that your problem is due to DDR not being initialized.  If I recall correctly, the nandwriter instructions have you load the nand-contents to DDR before flashing.  If DDR is not initialized, each read of DDR may receive garbage data.

  • Thanks,

    I get it! I have launched a search for *.gel but without including the ccs_base directory.

    Anyway, I have moved the buffer to MCSM just o workaround on the DDR initialization.

    Now I have tried with the gel file now, the initialization seems good but the failure is always present (exactly the same as before).

    I tried to look at the NAND with the memory browses but it show all 0 or oxE0.

  • Not sure if you're still having this problem, but in case it helps:

    1.  You moved the 'write' buffer to MCSM, to work around the DDR init issue, but did you also modify the code to move the 'read' buffer?  Where in memory is the writer utility reading the contents of the flash to?

    2. What address did you enter in the memory browser to look at the NAND?  You won't be able to look at the memory that way (AFAIK), as it is not 'directly addressable memory'.

  • 1. I changed the address of the buffer used to hold the binary image to write on the NAND. It is the only one that was mapped in DDR. Anyway, this the right initialization (via evm6678.gel) and the buffer in the original position nothing change (the NAND write fails)

    2. You are right, I cannot read it directly.