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.

Does AM1808 boot rom support 4KBytes/page, 128 pages/block NAND Flash?

Other Parts Discussed in Thread: AM1808

I have a 1G NAND Flash device from Hynix, chip ID: 0xD3, oobsize: 128, page size: 4096, block size: 512Kbyte. I have problem in making it boot from that device.

I start the board by booting it through the UART, and use "nand write" to program the UBL to block 1 (address 0x8,0000), program the uboot code to block 2 (address 0x10,0000). Then set the boot option to boot from NAND (BOOT[4:1] = 0111), but nothing happend.

I have defined "CONFIG_SYS_NAND_PAGE_4K", "CONFIG_SYS_NAND_4BIT_HW_ECC_OOBFIRST" and "CONFIG_SYS_NAND_CS" to 3 in the da850evm.h. I have dump the content of what I written to block 1 and block 2, they seems looking good. I am wondering how the AM1808 boot rom knows which CS pin is attached to the NAND flash. There are 8 boot option pins, but the datasheet only defined four of them.

Does AM1808 support this flash type, or I have miss something, or I need to modify the UBL code?

Regards,

Colman

 

  • Please post the output of this debug GEL file so we can see what the error might be:

    http://processors.wiki.ti.com/index.php/OMAP-L1x_Debug_Gel_Files

    The boot rom always uses CS[3] for NAND boot. Is that where you've connected your NAND device?

    Jeff

  • Dear Jeff,

    The NAND Flash is connected at CS[3]. But I don't have any JTAG tools to work with CCS, so at this monent, I cannot get the debug output. I can only guess what is happening.

    Regards,

    Colman

  • Dear Jeff,

    After studying the "Using the OMAP-L1x8 Bootloader", the sprab41c.pdf,  I discover that the ECC Bytes stored on the Spare Area are not consistent with  the u-boot code.

    From what the doc. says, the ECC Bytes are splited and stored in each segment of spare bytes (each segment conatins 16 bytes). But the u-boot code store the ECC Bytes continuously started at an offset of 48 in the Spare Area, I think this is the problem because I use u-boot's "nand write" to write the target boot code to the flash which make the ECC bytes and the "Test Bytes" not correctly match to the bootloder. May be I have to fix this problem in u-boot.

    Regards,

    Colman

     

  • Additionally you could use the TI-provided serial flashing tool and modify the source to match your NAND type. This would probably be the easiest way to guarantee the ROM boot loader will correctly read the flash.

    Jeff

  • After serveral trials, I can successfully write to the nand flash both through the UART and under u-boot and that can boot up correctly.

    Thank you.

    Colman

     

  • Hi Colman,

    I am designing new board with AM1808.

    we are planning to use Micron NAND device with page size : 4K. Block size : 512 K. This NAND is ONFI compliant.

    Can you please tell me Rom boot loader for AM1808 support 4K page size NAND ?

    Can you tell me what changes you have made in serial flasher utility to make it work ?

    Thank you.

    Nirav

     

  • Yes the max page size for ARM boot parts is 4K, while for DSP boot parts it is 8K, so you are fine. The block size is not an issue, and since it is ONFI the ROM will be able to identify it correctly.

    The serial flasher should also automatically detect the NAND, but you can check "device_nand.c" to make sure the devID for your part is listed and set right.

    Jeff

  • Hi Jeff,

    Thanks for your prompt response.

    My NAND is MT29F32G08AECBB with Device ID 48h.

    I have check device_nand.c But my Device ID is not there in the table.

    So Should I add the entry in the table manually ?

    Does ROM boot loader check ECC ? For the first block does it check ECC ?

    Thanks you

    Nirav