Part Number:AM3517
We are using AM3517 CPU with a 4Gb x16 NAND flash from Micron (MT29F4G16) on a custom board. For flashing the image to this memory we are using TI flashtool (v1.6). This is working fine, the NAND flash is properly detected by the flashtool and programmed accordingly. This is part of the ONFI detection trace:
» Sending data (41008 bytes) :::::::::::::::::::: [41008] Interface 'OMAPFLASH DRIVER v5' Driver 'NAND ONFI 16/8 BIT' Driver configuration: gpmc = 0x6E000000 Driver configuration: cs = 0x00000000 Driver configuration: address = 0x30000000 Driver configuration: bberase = 0x00000000 NAND HW ECC NAND BCH Mode = 0 NAND HWECC offset = 2, size = 12 NAND ONFIv2 VENDOR 0x2C MICRON NAND 16 BIT DEVICE 0xBC MT29F4G16ABBDAHC NAND NAND CYCLES 0x23 (3 ROW, 2 COLUMN) NAND 2048 BYTES/PAGE (SPARE 64) NAND 64 PAGES/BLOCK (131072 BYTES/BLOCK) NAND 4096 BLOCKS/UNIT (536870912 BYTES/UNIT) NAND 4 BIT(S) ECC REQUIRED NAND 512 MB TOTAL SIZE NAND ONFI DRIVER INIT COMPLETE » Downloading complete » Elapsed time: 0:00.480 (85433 bytes/s)
Now this Micron flash got obsolete and we are looking for alternative components. One of the possible candidate is a NAND flash from Cypress/Spansion (S34MS04G2). But here the problem starts: The flashtool doesn't properly detect the page size, spare part and total size of this NAND flash. This is the trace when trying to flash the board with the Cypress/Spansion NAND flash:
» Sending data (40768 bytes) :::::::::::::::::::: [40768] Interface 'OMAPFLASH DRIVER v5' Driver 'NAND ONFI 16/8 BIT' Driver configuration: gpmc = 0x6E000000 Driver configuration: cs = 0x00000000 Driver configuration: address = 0x30000000 Driver configuration: bberase = 0x00000000 NAND HW ECC NAND BCH Mode = 0 NAND HWECC offset = 2, size = 12 NAND ONFIv2 VENDOR 0x01 SPANSION NAND 16 BIT DEVICE 0xBC S34MS04G2 NAND NAND CYCLES 0x23 (3 ROW, 2 COLUMN) NAND -256 BYTES/PAGE (SPARE 65408) NAND -192 PAGES/BLOCK (49152 BYTES/BLOCK) NAND -256 BLOCKS/UNIT (-12582912 BYTES/UNIT) NAND 4 BIT(S) ECC REQUIRED NAND 4084 MB TOTAL SIZE» Download failed (final data response error): Remote: : Driver init error 0x000 00011 - DRIVER PAGE MEMORY ALLOCATION ERROR DURING INITIALIZATION » Elapsed time: 0:00.438 (93077 bytes/s) » Operation FAILED (Remote: : Driver init error 0x00000011 - DRIVER PAGE MEMORY ALLOCATION ERROR DURING INITIALIZATION) » Elapsed time: 0:00.000
It looks like the NAND flash driver included in the flashtool (nand_onfi_16bit_8bit.bin) is not able to determine the correct size of the Cypress/Spansion flash. The only difference between the Micron and the Cypress/Spansion flash is the spare area (64byte vs 128byte). But this should be detected by the NAND driver from the flashtool because it is defined by ONFI specification which both NAND flash chips supports.
Any idea why the NAND flash driver from flashtool (nand_onfi_16bit_8bit.bin) is struggling with the Cypress/Spansion NAND flash?
Regards,
Bruno