NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

NAND 8bit support

From Texas Instruments Wiki
Jump to: navigation, search

The u-boot & x-loader are written & tested only with 16 bit NANDs. Customers reported problems integrating OMAP3 with 8-bit NAND, Primarily the issue is that the GPMC registers are not configured properly. This causes the ECC engine in u-boot to generate incorrect values. Please ensure that you are configuring the GPMC registers properly for the particular type of NAND flash.

There is one more issue – 8 bit NAND’s use only 1 byte to mark bad blocks, while 16 bit NANDs use 2 bytes to mark bad blocks. The net result is that ECC bytes start from offset 1 in 8 bit NANDs whereas they start from offset 2 in 16 bit NANDs.

Refer to the NAND_8bit_OMAP3.zip contains, a simple image that you could use to write to NAND flash, a dump to show how it should look like so that you can see the ECC values (0x23, 0x23, 0). Note however that this was a 16 bit NAND, so on your NAND, only one byte in the spare area will be used for bad block information. The .s file is the source file used to build the binary.

Way to proceed:

Write the attached sec-x-loader.bin.ift into NAND using u-boot. Take a dump of sector 0 on NAND. Compare with the attached text file.

If you find any differences in the CRC in the spare area, do the following


  1. Cross check that you are calling the nand_ecc_hw function before writing the x-loader to NAND flash. Make usre the function omap_nand_switch_ecc() is getting called
  2. Cross check the GPMC register values – make sure that the NAND width is set to 8-bit and all the other register parameters are correct for your customers NAND…
  3. You will know you have the correct GPMC settings when you get a CRC value of 0x23, 0x23, 0

Now, the fist two ff in the spare are reserved for bad block markers in 16 bit NANDs. For 8 bit NANDs only one byte is used for marking bad blocks. To do this, you will have to modify the code of u-boot.

You will need to modify the nand_oobinfo data structure in nand.c in the board specific file for your board. Make sure the .eccps field starts from 1,2,3 for 8 bit nand (it will be 2,3,4 for 16 bit NAND)

Search for NAND_BUSWIDTH_16 macro and make sure it is being used properly in the u-boot driver code

Finally make sure you are suing the correct bad-block descriptors . (llok at mtd->priv, typecast to nand_chip nad look at the badblock_pattern field)

E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article NAND 8bit support here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article NAND 8bit support here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article NAND 8bit support here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article NAND 8bit support here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article NAND 8bit support here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article NAND 8bit support here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article NAND 8bit support here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article NAND 8bit support here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article NAND 8bit support here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity