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.

DM8168 NAND

Hi,

we use DM8168 and UdWorks based custom hardware design.

We try to use an alternative NAND FLASH for new hardware version.

In the past we did use 8 bit NAND SAMSUNG K9F2G08U0B and

16 bit NAND MICRON MT29F8G16ADADAH4. Both devices working fine for us.

Now we try to use SPANSION ML02G2000BHI00.

With nand-flash-writer we can write uboot into this NAND without problems. For uboot we set ECC scheme BCH 8.

But we can not start uboot from NAND. (The same hardware works fine if we change NAND and use MICRON MT29F8G16ADADAH4)

If we want to start uboot from NAND we can see access on data/address but uboot is not loaded into internal RAM of DM8168.

 

nand-flash-writer gives following information for SPANSION ML02G2000BHI00:

[CortxA8] ----------------------

[CortxA8]   NAND FLASH DETAILS

[CortxA8] ----------------------

[CortxA8]  Device ID : 0xda [CortxA8]  Manufacture ID : 0x1

[CortxA8]  Page Size : 2048 Bytes

[CortxA8]  Spare Size : 64 Bytes

[CortxA8]  Pages_Per_Block : 64

[CortxA8]  Number_of_Blocks : 2048

[CortxA8]  Device_width : 1 Byte

[CortxA8]  DeviceSize : 256 MB

nand-flash-writer gives following information for MICRON MT29F8G16ADADAH4:

[CortxA8] ----------------------

[CortxA8]   NAND FLASH DETAILS

[CortxA8] ----------------------

[CortxA8]  Device ID : 0xc3

[CortxA8]  Manufacture ID : 0x2c

[CortxA8]  Page Size : 2048 Bytes

[CortxA8]  Spare Size : 64 Bytes

[CortxA8]  Pages_Per_Block : 64

[CortxA8]  Number_of_Blocks : 8192

[CortxA8]  Device_width : 2 Byte

[CortxA8]  DeviceSize : 1024 MB

Of course size and 8/16bit are different but page size and pages per block are the same.

Does anybody have experience with this kind of NAND device?

Best regards Holger

 

  • Holger,

    Check if Spansion NAND is fully ONFI compatible (parameter page contains ONFI signature, compare this with Micron NAND ONFI).

    See also the below wiki pages:
    processors.wiki.ti.com/.../Debug_Tips_for_DM81xx_Boot_Fail - check trace vector
    processors.wiki.ti.com/.../AM335x_board_bringup_tips

    Make sure also you are working with the latest dvr rdk u-boot code base:
    http://arago-project.org/git/projects/?p=u-boot-dvr-rdk-dm81xx.git;a=shortlog;h=refs/heads/dvrrdk_uboot_int_branch

    BR
    Pavel

  • Hi Pavel,

    thanks for replay.

    I have checked both devices, MICRON MT29F8G16ADADAH4 and also SPANSION ML02G2000BHI00 are ONFI 1.0 compliant.

    I have captured the output of nand-flash-write. CCS nand-flash-write via JTAG can write uboot into both FLASH without problems.

    Let me explain the behavior again:

    After we had problems with SPANSION NAND we desoldered this device and soldered a MICRON NAND and changed width 8 to 16.

    With MICRON NAND the same board can start uboot without problems.

    So uboot itself seems not to be the problem, uboot is not loaded into internal RAM.

    Does the ROM loader support this SPANSION NAND ?

    Best regrad Holger

    nand-flash-writer-log.txt
    /////////////////////////////////////////////////////////////
    // nand-flash-writer output for SPANION NAND
    /////////////////////////////////////////////////////////////
    
    [CortxA8] 
    [CortxA8] Choose your operation 
    [CortxA8] Enter 1 ---> To Flash an Image
    [CortxA8] Enter 2 ---> To ERASE the whole NAND 
    [CortxA8] Enter 3 ---> To DDR Simple test
    [CortxA8] Enter 4 ---> To EXIT
    2
    [CortxA8] Starting NETRA NAND writer
    [CortxA8] 
    [CortxA8] The the NAND Flash is ONFI compatible 
    [CortxA8]  
    [CortxA8] 
    [CortxA8] ----------------------
    [CortxA8]   NAND FLASH DETAILS
    [CortxA8] ----------------------
    [CortxA8]  Device ID : 0xda
    [CortxA8]  Manufacture ID : 0x1
    [CortxA8]  Page Size : 2048 Bytes
    [CortxA8]  Spare Size : 64 Bytes
    [CortxA8]  Pages_Per_Block : 64
    [CortxA8]  Number_of_Blocks : 2048
    [CortxA8]  Device_width : 1 Byte
    [CortxA8]  DeviceSize : 256 MB
    [CortxA8] 
    [CortxA8]  
    [CortxA8] Performing Global Nand Erase
    [CortxA8] ... done
    [CortxA8] 
    [CortxA8] NAND boot preparation was successful!
    [CortxA8] Welcome to CCS Nand Flash Utility 
    [CortxA8] 
    [CortxA8] 
    [CortxA8] Choose your operation 
    [CortxA8] Enter 1 ---> To Flash an Image
    [CortxA8] Enter 2 ---> To ERASE the whole NAND 
    [CortxA8] Enter 3 ---> To DDR Simple test
    [CortxA8] Enter 4 ---> To EXIT
    1
    [CortxA8] Enter image file path 
    D:\uboot_bop_NAND_DM816X_DVR
    [CortxA8] Starting NETRA NAND writer
    [CortxA8] 
    [CortxA8] The the NAND Flash is ONFI compatible 
    [CortxA8]  
    [CortxA8] 
    [CortxA8] ----------------------
    [CortxA8]   NAND FLASH DETAILS
    [CortxA8] ----------------------
    [CortxA8]  Device ID : 0xda
    [CortxA8]  Manufacture ID : 0x1
    [CortxA8]  Page Size : 2048 Bytes
    [CortxA8]  Spare Size : 64 Bytes
    [CortxA8]  Pages_Per_Block : 64
    [CortxA8]  Number_of_Blocks : 2048
    [CortxA8]  Device_width : 1 Byte
    [CortxA8]  DeviceSize : 256 MB
    [CortxA8] 
    [CortxA8]  Setting the ECC scheme for U-Boot 
    [CortxA8]   Set the BCH 8 bit ECC scheme  .... done
    [CortxA8] Preparing to Flash Application image .... 
    [CortxA8] Opening image ... done. 
    [CortxA8] Erasing Required Blocks [start = 0, count = 2]...[CortxA8] Done
    [CortxA8] Flashing Application image ... 
    [CortxA8] Number of blocks needed for header and data: 0x2
    [CortxA8] Attempting to start write in block number 0x0.
    [CortxA8] Writing image data to Block 0 Page0x0
    [CortxA8] Writing image data to Block 0 Page0x1
    [CortxA8] Writing image data to Block 0 Page0x2
    [CortxA8] Writing image data to Block 0 Page0x3
    [CortxA8] Writing image data to Block 0 Page0x4
    [CortxA8] Writing image data to Block 0 Page0x5
    [CortxA8] Writing image data to Block 0 Page0x6
    [CortxA8] Writing image data to Block 0 Page0x7
    [CortxA8] Writing image data to Block 0 Page0x8
    [CortxA8] Writing image data to Block 0 Page0x9
    [CortxA8] Writing image data to Block 0 Page0xa
    [CortxA8] Writing image data to Block 0 Page0xb
    [CortxA8] Writing image data to Block 0 Page0xc
    [CortxA8] Writing image data to Block 0 Page0xd
    [CortxA8] Writing image data to Block 0 Page0xe
    [CortxA8] Writing image data to Block 0 Page0xf
    [CortxA8] Writing image data to Block 0 Page0x10
    [CortxA8] Writing image data to Block 0 Page0x11
    [CortxA8] Writing image data to Block 0 Page0x12
    [CortxA8] Writing image data to Block 0 Page0x13
    [CortxA8] Writing image data to Block 0 Page0x14
    [CortxA8] Writing image data to Block 0 Page0x15
    [CortxA8] Writing image data to Block 0 Page0x16
    [CortxA8] Writing image data to Block 0 Page0x17
    [CortxA8] Writing image data to Block 0 Page0x18
    [CortxA8] Writing image data to Block 0 Page0x19
    [CortxA8] Writing image data to Block 0 Page0x1a
    [CortxA8] Writing image data to Block 0 Page0x1b
    [CortxA8] Writing image data to Block 0 Page0x1c
    [CortxA8] Writing image data to Block 0 Page0x1d
    [CortxA8] Writing image data to Block 0 Page0x1e
    [CortxA8] Writing image data to Block 0 Page0x1f
    [CortxA8] Writing image data to Block 0 Page0x20
    [CortxA8] Writing image data to Block 0 Page0x21
    [CortxA8] Writing image data to Block 0 Page0x22
    [CortxA8] Writing image data to Block 0 Page0x23
    [CortxA8] Writing image data to Block 0 Page0x24
    [CortxA8] Writing image data to Block 0 Page0x25
    [CortxA8] Writing image data to Block 0 Page0x26
    [CortxA8] Writing image data to Block 0 Page0x27
    [CortxA8] Writing image data to Block 0 Page0x28
    [CortxA8] Writing image data to Block 0 Page0x29
    [CortxA8] Writing image data to Block 0 Page0x2a
    [CortxA8] Writing image data to Block 0 Page0x2b
    [CortxA8] Writing image data to Block 0 Page0x2c
    [CortxA8] Writing image data to Block 0 Page0x2d
    [CortxA8] Writing image data to Block 0 Page0x2e
    [CortxA8] Writing image data to Block 0 Page0x2f
    [CortxA8] Writing image data to Block 0 Page0x30
    [CortxA8] Writing image data to Block 0 Page0x31
    [CortxA8] Writing image data to Block 0 Page0x32
    [CortxA8] Writing image data to Block 0 Page0x33
    [CortxA8] Writing image data to Block 0 Page0x34
    [CortxA8] Writing image data to Block 0 Page0x35
    [CortxA8] Writing image data to Block 0 Page0x36
    [CortxA8] Writing image data to Block 0 Page0x37
    [CortxA8] Writing image data to Block 0 Page0x38
    [CortxA8] Writing image data to Block 0 Page0x39
    [CortxA8] Writing image data to Block 0 Page0x3a
    [CortxA8] Writing image data to Block 0 Page0x3b
    [CortxA8] Writing image data to Block 0 Page0x3c
    [CortxA8] Writing image data to Block 0 Page0x3d
    [CortxA8] Writing image data to Block 0 Page0x3e
    [CortxA8] Writing image data to Block 0 Page0x3f
    [CortxA8] Writing image data to Block 1 Page0x0
    [CortxA8] Writing image data to Block 1 Page0x1
    [CortxA8] Writing image data to Block 1 Page0x2
    [CortxA8] Writing image data to Block 1 Page0x3
    [CortxA8] Writing image data to Block 1 Page0x4
    [CortxA8] Writing image data to Block 1 Page0x5
    [CortxA8] Writing image data to Block 1 Page0x6
    [CortxA8] Writing image data to Block 1 Page0x7
    [CortxA8] Writing image data to Block 1 Page0x8
    [CortxA8] Writing image data to Block 1 Page0x9
    [CortxA8] Writing image data to Block 1 Page0xa
    [CortxA8] Writing image data to Block 1 Page0xb
    [CortxA8] Writing image data to Block 1 Page0xc
    [CortxA8] Writing image data to Block 1 Page0xd
    [CortxA8] Writing image data to Block 1 Page0xe
    [CortxA8] Writing image data to Block 1 Page0xf
    [CortxA8] Writing image data to Block 1 Page0x10
    [CortxA8] Writing image data to Block 1 Page0x11
    [CortxA8] Writing image data to Block 1 Page0x12
    [CortxA8] Writing image data to Block 1 Page0x13
    [CortxA8] Writing image data to Block 1 Page0x14
    [CortxA8] Writing image data to Block 1 Page0x15
    [CortxA8] Writing image data to Block 1 Page0x16
    [CortxA8] Writing image data to Block 1 Page0x17
    [CortxA8] Writing image data to Block 1 Page0x18
    [CortxA8] Writing image data to Block 1 Page0x19
    [CortxA8] Writing image data to Block 1 Page0x1a
    [CortxA8] Writing image data to Block 1 Page0x1b
    [CortxA8] Writing image data to Block 1 Page0x1c
    [CortxA8] Writing image data to Block 1 Page0x1d
    [CortxA8] Writing image data to Block 1 Page0x1e
    [CortxA8] Writing image data to Block 1 Page0x1f
    [CortxA8] Writing image data to Block 1 Page0x20
    [CortxA8] Writing image data to Block 1 Page0x21
    [CortxA8] Writing image data to Block 1 Page0x22
    [CortxA8] Writing image data to Block 1 Page0x23
    [CortxA8] Writing image data to Block 1 Page0x24
    [CortxA8] Writing image data to Block 1 Page0x25
    [CortxA8] Writing image data to Block 1 Page0x26
    [CortxA8] Writing image data to Block 1 Page0x27
    [CortxA8] Writing image data to Block 1 Page0x28
    [CortxA8] Writing image data to Block 1 Page0x29
    [CortxA8] Writing image data to Block 1 Page0x2a
    [CortxA8] Writing image data to Block 1 Page0x2b
    [CortxA8] Writing image data to Block 1 Page0x2c
    [CortxA8] Writing image data to Block 1 Page0x2d
    [CortxA8] Writing image data to Block 1 Page0x2e
    [CortxA8] Writing image data to Block 1 Page0x2f
    [CortxA8] Writing image data to Block 1 Page0x30
    [CortxA8] Writing image data to Block 1 Page0x31
    [CortxA8] Writing image data to Block 1 Page0x32
    [CortxA8] Writing image data to Block 1 Page0x33
    [CortxA8] Writing image data to Block 1 Page0x34
    [CortxA8] Writing image data to Block 1 Page0x35
    [CortxA8] Writing image data to Block 1 Page0x36
    [CortxA8] Application is successfully flashed
    [CortxA8] 
    [CortxA8] 
    [CortxA8] NAND boot preparation was successful!
    
    
    
    
    
    
    /////////////////////////////////////////////////////////////
    // nand-flash-writer output for MICRON NAND
    /////////////////////////////////////////////////////////////
    
    [CortxA8] Choose your operation 
    [CortxA8] Enter 1 ---> To Flash an Image
    [CortxA8] Enter 2 ---> To ERASE the whole NAND 
    [CortxA8] Enter 3 ---> To DDR Simple test
    [CortxA8] Enter 4 ---> To EXIT
    2
    [CortxA8] Starting NETRA NAND writer
    [CortxA8] 
    [CortxA8] The the NAND Flash is ONFI compatible 
    [CortxA8]  
    [CortxA8] 
    [CortxA8] ----------------------
    [CortxA8]   NAND FLASH DETAILS
    [CortxA8] ----------------------
    [CortxA8]  Device ID : 0xc3
    [CortxA8]  Manufacture ID : 0x2c
    [CortxA8]  Page Size : 2048 Bytes
    [CortxA8]  Spare Size : 64 Bytes
    [CortxA8]  Pages_Per_Block : 64
    [CortxA8]  Number_of_Blocks : 8192
    [CortxA8]  Device_width : 2 Byte
    [CortxA8]  DeviceSize : 1024 MB
    [CortxA8] 
    [CortxA8]  
    [CortxA8] Performing Global Nand Erase
    [CortxA8] FAIL!! to erase block number  0x14fe
    [CortxA8] ... done
    [CortxA8] 
    [CortxA8] NAND boot preparation was successful!
    [CortxA8] Welcome to CCS Nand Flash Utility 
    [CortxA8] 
    [CortxA8] 
    [CortxA8] Choose your operation 
    [CortxA8] Enter 1 ---> To Flash an Image
    [CortxA8] Enter 2 ---> To ERASE the whole NAND 
    [CortxA8] Enter 3 ---> To DDR Simple test
    [CortxA8] Enter 4 ---> To EXIT
    1
    [CortxA8] Enter image file path 
    D:\uboot_bop_NAND_DM816X_DVR
    [CortxA8] Starting NETRA NAND writer
    [CortxA8] 
    [CortxA8] The the NAND Flash is ONFI compatible 
    [CortxA8]  
    [CortxA8] 
    [CortxA8] ----------------------
    [CortxA8]   NAND FLASH DETAILS
    [CortxA8] ----------------------
    [CortxA8]  Device ID : 0xc3
    [CortxA8]  Manufacture ID : 0x2c
    [CortxA8]  Page Size : 2048 Bytes
    [CortxA8]  Spare Size : 64 Bytes
    [CortxA8]  Pages_Per_Block : 64
    [CortxA8]  Number_of_Blocks : 8192
    [CortxA8]  Device_width : 2 Byte
    [CortxA8]  DeviceSize : 1024 MB
    [CortxA8] 
    [CortxA8]  Setting the ECC scheme for U-Boot 
    [CortxA8]   Set the BCH 8 bit ECC scheme  .... done
    [CortxA8] Preparing to Flash Application image .... 
    [CortxA8] Opening image ... done. 
    [CortxA8] Erasing Required Blocks [start = 0, count = 2]...[CortxA8] Done
    [CortxA8] Flashing Application image ... 
    [CortxA8] Number of blocks needed for header and data: 0x2
    [CortxA8] Attempting to start write in block number 0x0.
    [CortxA8] Writing image data to Block 0 Page0x0
    [CortxA8] Writing image data to Block 0 Page0x1
    [CortxA8] Writing image data to Block 0 Page0x2
    [CortxA8] Writing image data to Block 0 Page0x3
    [CortxA8] Writing image data to Block 0 Page0x4
    [CortxA8] Writing image data to Block 0 Page0x5
    [CortxA8] Writing image data to Block 0 Page0x6
    [CortxA8] Writing image data to Block 0 Page0x7
    [CortxA8] Writing image data to Block 0 Page0x8
    [CortxA8] Writing image data to Block 0 Page0x9
    [CortxA8] Writing image data to Block 0 Page0xa
    [CortxA8] Writing image data to Block 0 Page0xb
    [CortxA8] Writing image data to Block 0 Page0xc
    [CortxA8] Writing image data to Block 0 Page0xd
    [CortxA8] Writing image data to Block 0 Page0xe
    [CortxA8] Writing image data to Block 0 Page0xf
    [CortxA8] Writing image data to Block 0 Page0x10
    [CortxA8] Writing image data to Block 0 Page0x11
    [CortxA8] Writing image data to Block 0 Page0x12
    [CortxA8] Writing image data to Block 0 Page0x13
    [CortxA8] Writing image data to Block 0 Page0x14
    [CortxA8] Writing image data to Block 0 Page0x15
    [CortxA8] Writing image data to Block 0 Page0x16
    [CortxA8] Writing image data to Block 0 Page0x17
    [CortxA8] Writing image data to Block 0 Page0x18
    [CortxA8] Writing image data to Block 0 Page0x19
    [CortxA8] Writing image data to Block 0 Page0x1a
    [CortxA8] Writing image data to Block 0 Page0x1b
    [CortxA8] Writing image data to Block 0 Page0x1c
    [CortxA8] Writing image data to Block 0 Page0x1d
    [CortxA8] Writing image data to Block 0 Page0x1e
    [CortxA8] Writing image data to Block 0 Page0x1f
    [CortxA8] Writing image data to Block 0 Page0x20
    [CortxA8] Writing image data to Block 0 Page0x21
    [CortxA8] Writing image data to Block 0 Page0x22
    [CortxA8] Writing image data to Block 0 Page0x23
    [CortxA8] Writing image data to Block 0 Page0x24
    [CortxA8] Writing image data to Block 0 Page0x25
    [CortxA8] Writing image data to Block 0 Page0x26
    [CortxA8] Writing image data to Block 0 Page0x27
    [CortxA8] Writing image data to Block 0 Page0x28
    [CortxA8] Writing image data to Block 0 Page0x29
    [CortxA8] Writing image data to Block 0 Page0x2a
    [CortxA8] Writing image data to Block 0 Page0x2b
    [CortxA8] Writing image data to Block 0 Page0x2c
    [CortxA8] Writing image data to Block 0 Page0x2d
    [CortxA8] Writing image data to Block 0 Page0x2e
    [CortxA8] Writing image data to Block 0 Page0x2f
    [CortxA8] Writing image data to Block 0 Page0x30
    [CortxA8] Writing image data to Block 0 Page0x31
    [CortxA8] Writing image data to Block 0 Page0x32
    [CortxA8] Writing image data to Block 0 Page0x33
    [CortxA8] Writing image data to Block 0 Page0x34
    [CortxA8] Writing image data to Block 0 Page0x35
    [CortxA8] Writing image data to Block 0 Page0x36
    [CortxA8] Writing image data to Block 0 Page0x37
    [CortxA8] Writing image data to Block 0 Page0x38
    [CortxA8] Writing image data to Block 0 Page0x39
    [CortxA8] Writing image data to Block 0 Page0x3a
    [CortxA8] Writing image data to Block 0 Page0x3b
    [CortxA8] Writing image data to Block 0 Page0x3c
    [CortxA8] Writing image data to Block 0 Page0x3d
    [CortxA8] Writing image data to Block 0 Page0x3e
    [CortxA8] Writing image data to Block 0 Page0x3f
    [CortxA8] Writing image data to Block 1 Page0x0
    [CortxA8] Writing image data to Block 1 Page0x1
    [CortxA8] Writing image data to Block 1 Page0x2
    [CortxA8] Writing image data to Block 1 Page0x3
    [CortxA8] Writing image data to Block 1 Page0x4
    [CortxA8] Writing image data to Block 1 Page0x5
    [CortxA8] Writing image data to Block 1 Page0x6
    [CortxA8] Writing image data to Block 1 Page0x7
    [CortxA8] Writing image data to Block 1 Page0x8
    [CortxA8] Writing image data to Block 1 Page0x9
    [CortxA8] Writing image data to Block 1 Page0xa
    [CortxA8] Writing image data to Block 1 Page0xb
    [CortxA8] Writing image data to Block 1 Page0xc
    [CortxA8] Writing image data to Block 1 Page0xd
    [CortxA8] Writing image data to Block 1 Page0xe
    [CortxA8] Writing image data to Block 1 Page0xf
    [CortxA8] Writing image data to Block 1 Page0x10
    [CortxA8] Writing image data to Block 1 Page0x11
    [CortxA8] Writing image data to Block 1 Page0x12
    [CortxA8] Writing image data to Block 1 Page0x13
    [CortxA8] Writing image data to Block 1 Page0x14
    [CortxA8] Writing image data to Block 1 Page0x15
    [CortxA8] Writing image data to Block 1 Page0x16
    [CortxA8] Writing image data to Block 1 Page0x17
    [CortxA8] Writing image data to Block 1 Page0x18
    [CortxA8] Writing image data to Block 1 Page0x19
    [CortxA8] Writing image data to Block 1 Page0x1a
    [CortxA8] Writing image data to Block 1 Page0x1b
    [CortxA8] Writing image data to Block 1 Page0x1c
    [CortxA8] Writing image data to Block 1 Page0x1d
    [CortxA8] Writing image data to Block 1 Page0x1e
    [CortxA8] Writing image data to Block 1 Page0x1f
    [CortxA8] Writing image data to Block 1 Page0x20
    [CortxA8] Writing image data to Block 1 Page0x21
    [CortxA8] Writing image data to Block 1 Page0x22
    [CortxA8] Writing image data to Block 1 Page0x23
    [CortxA8] Writing image data to Block 1 Page0x24
    [CortxA8] Writing image data to Block 1 Page0x25
    [CortxA8] Writing image data to Block 1 Page0x26
    [CortxA8] Writing image data to Block 1 Page0x27
    [CortxA8] Writing image data to Block 1 Page0x28
    [CortxA8] Writing image data to Block 1 Page0x29
    [CortxA8] Writing image data to Block 1 Page0x2a
    [CortxA8] Writing image data to Block 1 Page0x2b
    [CortxA8] Writing image data to Block 1 Page0x2c
    [CortxA8] Writing image data to Block 1 Page0x2d
    [CortxA8] Writing image data to Block 1 Page0x2e
    [CortxA8] Writing image data to Block 1 Page0x2f
    [CortxA8] Writing image data to Block 1 Page0x30
    [CortxA8] Writing image data to Block 1 Page0x31
    [CortxA8] Writing image data to Block 1 Page0x32
    [CortxA8] Writing image data to Block 1 Page0x33
    [CortxA8] Writing image data to Block 1 Page0x34
    [CortxA8] Writing image data to Block 1 Page0x35
    [CortxA8] Writing image data to Block 1 Page0x36
    [CortxA8] Application is successfully flashed
    [CortxA8] 
    [CortxA8] 
    [CortxA8] NAND boot preparation was successful!
    
    
    
    
    

  • Holger Eberhard102906 said:
    Does the ROM loader support this SPANSION NAND ?

    Refer to DM816x TRM, chapter 25 ROM Code

    BR
    Pavel

  • Hi Pavel,

    of course we did read "ROM Code Memory and Peripheral Booting" of TRM.

    But we can not imagine why SPANSION NAND does not work.

     

    I have capture tracing vectors:

     0x4031D040 0000907F

      0x4031D044 0000F000

      0x4031D048 00010420

      0x4031D04C 00000000

      0x4031D050 00000000

      0x4031D054 00000000

      0x4031D058 00000009

    This is a mirror of the boot sequence, but I can not see a reason why boot from NAND does not occur.

     

    Best regrards Holger

     

  • Holger,

    Compare these tracing vectors with the working case (Micron NAND) and see if there is any difference.

    BR
    Pavel
  • Compare also CONTROL_STATUS and BOOTSTAT registers between working and non-working case.

    BR
    Pavel
  • One way to debug with JTAG is to look at the GPMC data lines and see if sector zero of block 0 is being read. That would mean that the identification has been completed successfully.
  • Hi Pavel,

    thank You for the hints.

    I have captured and compared registers for both NAND.

    The main difference is that the "GP header TOC found Bit" does not occur for SPANSION.

    It seems that reading from NAND fails in this case. I will go on investigate GPMC lines as You suggest.

     

    //Micron

    0x4031D040  0000009E                              1001 1110

    0x4031D044  00018000         1 1000 0000 0000 0000

    0x4031D048  00000020                                  10 0000

    0x4031D04C  00000000

    0x4031D050  00000000

    0x4031D054  00000000

    0x4031D058  00000009                                       1001

     

    0x48140040  00030312        11 0000 0011 0001 0010

    0x48140044  00000000

     

    //Spansion

    0x4031D040  0000907F            1001 0000 0111 1111

    0x4031D044  0000F000            1111 0000 0000 0000

    0x4031D048  00010420         1 0000 0100 0010 0000

    0x4031D04C  00000000

    0x4031D050  00000000

    0x4031D054  00000000

    0x4031D058  00000009                                       1001  

    0x48140040  00020312        10 0000 0011 0001 0010

    0x48140044  00000000

     

    Best regards Holger

  • Last but not least we have found the reason why ML02G200... does not work.

    Reading NAND parameter with Flash tool retrieves:

     

    [CortxA8] ----------------------

    [CortxA8]   NAND FLASH DETAILS

    [CortxA8] ----------------------

    [CortxA8]  Device ID : 0xda

    [CortxA8]  Manufacture ID : 0x1

    [CortxA8] Page Size : 2048 Bytes

    [CortxA8]  Spare Size : 64 Bytes

    [CortxA8]  Pages_Per_Block : 64

    [CortxA8] Number_of_Blocks : 2048

    [CortxA8]  Device_width : 1 Byte

    [CortxA8]  DeviceSize : 256 MB

     

    But Spare Size of this device is not 64 Byte but 128 Byte! This is not supported.

    BR Holger

     

  • Holger,

    You might find the below e2e thread useful:

    e2e.ti.com/.../454707

    BR
    Pavel
  • Pavel, thanks for this link.

    Now we have desided to use other NAND, we have tested 3 types of devices with success.

    BR Holger