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.

Linux/AM3358: NAND access on GP EVM

Part Number: AM3358

Tool/software: Linux

After booting from SD card, how to access NAND on the GPEVM daughter board?

did not find any mtd  with booting with pre-build image.

  • Hello Tony,

    Please, set the SW3, SW4 


    and SW8 switch as follows to be able to detect the NAND.


    Best regards,
    Kemal

  • Still the same.

    SW8 all on OFF side

    do I need to so something on command line?

    my board is REV 1.2A.

  • Kemal,

    I found a similar post your followed before: https://e2e.ti.com/support/processors/f/791/p/683793/2530829

    On my side, also can't recognize NAND on UBOOT:

    If it works on your side, please help to do a nand test: 

    /usr/bin/ nandtest  -k /dev/mtd**

    Because customer said on a OLD version SDK(Linux version 3.2.0+ ), there is bug on NAND driver:

    ECC corrections: 0
    ECC failures   : 0
    Bad blocks     : 0
    BBT blocks     : 0
    00020000: reading... 
    ECC failed at 00020000
    00020000: reading... 

    Now plan to upgrade SDK, wants to ensure the bug is fixed on latest SDK.

  • Tony,

    I'm afraid your EVM may just be too old. I booted my rev 2.1 board and was able to see the NAND with no problems.

    Here is the U-Boot output:

    U-Boot 2018.01-g9d984f4548 (Apr 06 2019 - 07:42:30 +0000)

    CPU : AM335X-GP rev 2.1
    Model: TI AM335x EVM
    DRAM: 1 GiB
    NAND: 256 MiB
    MMC: OMAP SD/MMC: 0
    *** Warning - bad CRC, using default environment

    And here is Linux:

    root@am335x-evm:~# dmesg | grep nand
    [ 0.184952] omap-gpmc 50000000.gpmc: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/nandflash_pins_s0, deferring probe
    [ 1.529280] omap2-nand 8000000.nand: GPIO lookup for consumer rb
    [ 1.529289] omap2-nand 8000000.nand: using device tree for GPIO lookup
    [ 1.529334] of_get_named_gpiod_flags: parsed 'rb-gpios' property of node '/ocp/gpmc@50000000/nand@0,0[0]' - status (0)
    [ 1.529523] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xda
    [ 1.535947] nand: Micron MT29F2G08ABAEAWP
    [ 1.540103] nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
    [ 1.547827] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
    [ 1.553315] 10 ofpart partitions found on MTD device omap2-nand.0
    [ 1.559461] Creating 10 MTD partitions on "omap2-nand.0":
    root@am335x-evm:~# cat /proc/mtd
    dev: size erasesize name
    mtd0: 00020000 00020000 "NAND.SPL"
    mtd1: 00020000 00020000 "NAND.SPL.backup1"
    mtd2: 00020000 00020000 "NAND.SPL.backup2"
    mtd3: 00020000 00020000 "NAND.SPL.backup3"
    mtd4: 00040000 00020000 "NAND.u-boot-spl-os"
    mtd5: 00100000 00020000 "NAND.u-boot"
    mtd6: 00020000 00020000 "NAND.u-boot-env"
    mtd7: 00020000 00020000 "NAND.u-boot-env.backup1"
    mtd8: 00800000 00020000 "NAND.kernel"
    mtd9: 0f600000 00020000 "NAND.file-system"

    I believe I had the board configured in it's default state, but to be most clear here is what I have:

    Profile Selection:

    Sysboot Pins:

    I hope this helps you.

  • Ron,

    Thanks, would you please help do below NAND test on your board,: 

    /usr/bin/ nandtest  -k /dev/mtd**

    Because customer said on a OLD version SDK(Linux version 3.2.0+ ), there is bug on NAND driver:

    ECC corrections: 0
    ECC failures   : 0
    Bad blocks     : 0
    BBT blocks     : 0
    00020000: reading... 
    ECC failed at 00020000
    00020000: reading... 

    Now plan to upgrade SDK, wants to ensure the bug is fixed on later/latest SDK.

  • Tony,

    Sure, Here are the results using the same board as above. I did change the sysboot settings as I was booting from the NAND above and didn't realize it. So, I switched to SD Card with the latest SDK and ran nandtest on each partition. Results are below, I did not see any unrecoverable errors.

    root@am335x-evm:~# nandtest -k /dev/mtd0
    ECC corrections: 0
    ECC failures : 0
    Bad blocks : 0
    BBT blocks : 0
    00000000: checking...of 1)...
    Finished pass 1 successfully
    root@am335x-evm:~# nandtest -k /dev/mtd1
    ECC corrections: 0
    ECC failures : 0
    Bad blocks : 0
    BBT blocks : 0
    00000000: checking...of 1)...
    Finished pass 1 successfully
    root@am335x-evm:~# nandtest -k /dev/mtd2
    ECC corrections: 0
    ECC failures : 0
    Bad blocks : 0
    BBT blocks : 0
    00000000: checking...of 1)...
    Finished pass 1 successfully
    root@am335x-evm:~# nandtest -k /dev/mtd3
    ECC corrections: 0
    ECC failures : 0
    Bad blocks : 0
    BBT blocks : 0
    00000000: checking...of 1)...
    Finished pass 1 successfully
    root@am335x-evm:~# nandtest -k /dev/mtd4
    ECC corrections: 0
    ECC failures : 0
    Bad blocks : 0
    BBT blocks : 0
    00020000: checking...of 1)...
    Finished pass 1 successfully
    root@am335x-evm:~# nandtest -k /dev/mtd5
    ECC corrections: 0
    ECC failures : 0
    Bad blocks : 0
    BBT blocks : 0
    000e0000: checking...of 1)...
    Finished pass 1 successfully
    root@am335x-evm:~# nandtest -k /dev/mtd6
    ECC corrections: 0
    ECC failures : 0
    Bad blocks : 0
    BBT blocks : 0
    00000000: checking...of 1)...
    Finished pass 1 successfully

    root@am335x-evm:~# nandtest -k /dev/mtd7

    ECC corrections: 0

    ECC failures : 0
    Bad blocks : 0
    BBT blocks : 0
    00000000: checking...of 1)...
    Finished pass 1 successfully
    root@am335x-evm:~# nandtest -k /dev/mtd8
    ECC corrections: 0
    ECC failures : 0
    Bad blocks : 0
    BBT blocks : 0
    007e0000: checking...of 1)...
    Finished pass 1 successfully

    root@am335x-evm:~# nandtest -k /dev/mtd9
    ECC corrections: 0
    ECC failures : 0
    Bad blocks : 0
    BBT blocks : 0
    00500000: reading... [ 134.799843] NET: Registered protocol family 15
    00500000: reading (1 of 1)...[ 135.042590] Initializing XFRM netlink socket
    01a40000: reading (1 of 4)...
    1 bit(s) ECC corrected at 01a40000
    01a40000: reading (2 of 4)...
    1 bit(s) ECC corrected at 01a40000
    01a40000: reading (3 of 4)...
    1 bit(s) ECC corrected at 01a40000
    01a40000: reading (4 of 4)...
    1 bit(s) ECC corrected at 01a40000
    03880000: reading (1 of 4)...
    1 bit(s) ECC corrected at 03880000
    03880000: reading (2 of 4)...
    1 bit(s) ECC corrected at 03880000
    03880000: reading (3 of 4)...
    1 bit(s) ECC corrected at 03880000
    03880000: reading (4 of 4)...
    1 bit(s) ECC corrected at 03880000
    07a20000: reading (1 of 4)...
    1 bit(s) ECC corrected at 07a20000
    07a20000: reading (2 of 4)...
    1 bit(s) ECC corrected at 07a20000
    07a20000: reading (3 of 4)...
    1 bit(s) ECC corrected at 07a20000
    07a20000: reading (4 of 4)...
    1 bit(s) ECC corrected at 07a20000
    0c7a0000: reading (1 of 4)...
    1 bit(s) ECC corrected at 0c7a0000
    0c7a0000: reading (2 of 4)...
    1 bit(s) ECC corrected at 0c7a0000
    0c7a0000: reading (3 of 4)...
    1 bit(s) ECC corrected at 0c7a0000
    0c7a0000: reading (4 of 4)...
    1 bit(s) ECC corrected at 0c7a0000
    0dc40000: reading (2 of 4)...
    1 bit(s) ECC corrected at 0dc40000
    0dc40000: reading (3 of 4)...
    1 bit(s) ECC corrected at 0dc40000
    0dc40000: reading (4 of 4)...
    1 bit(s) ECC corrected at 0dc40000
    0dfc0000: reading (1 of 4)...
    1 bit(s) ECC corrected at 0dfc0000
    0dfc0000: reading (2 of 4)...
    1 bit(s) ECC corrected at 0dfc0000
    0dfc0000: reading (3 of 4)...
    1 bit(s) ECC corrected at 0dfc0000
    0dfc0000: reading (4 of 4)...
    1 bit(s) ECC corrected at 0dfc0000
    0f5e0000: checking...of 1)...
    Finished pass 1 successfully

    And kernel version for others that might need this later:

    root@am335x-evm:~# uname -a
    Linux am335x-evm 4.14.79-ge669d52447 #1 PREEMPT Sat Apr 6 03:14:17 UTC 2019 armv7l GNU/Linux