uboot 中Nand flash 常用操作命令解析

uboot 支持nand flash的数据及oob数据的读写显示操作,也至此手动标记坏块的命令,当一般不建议手动修改flash的坏块标志。这里介绍在uboot中操作和查看flash数据的常用命令及方法。

说明:

本文测试使用的flash信息如下:

SPI Nand(cs 0) ID: 0xc2 0x12 Name:"MX35LF1GE4AB"
Block:128KB Page:2KB Chip:128MB*1 OOB:64B ECC:4bit/512 

 (一)常用命令:

(1)nand info

    查看nandflash 信息
Wisdom # nand info
Device 0: MX35LF1GE4AB, sector size 128 KiB

(2)nand device

    在我的Uboot里与nand info 的信息是一样的。
Wisdom # nand device
Device 0: MX35LF1GE4AB, sector size 128 KiB

(3)nand read(.oob) [addr] [off] [size]

    读取命令,这里是两条命令:
    nand read [addr] [off] [size]
    nand read.oob [addr] [off] [size]
    不管是读取data, 使用nand read,还是读取oob,使用命令nand read.oob, 后面跟的地址addr,都是ram的地址, off指的是nand flash的地址, size:指要读取nand flash的数据大小, 但是如果是读取oob, size不能超过一个page的oob size, 如果page size为512个字节, oob size就是16个字节.
    如果一次想读取完整的一个page 的值,包含oob, 使用下面将的命令, nand dump. 

(4)nand dump [addr] [size]

    读取flash addr地址开始的size 大小数据出来。最小单位是一个page.也就是说size小于一个page,也会读出一个page的数据。该数据包括oob数据。

(5)nand write [addr] [off] [size]

    与nand read 命令类似,将内存地址addr的size大小数据写入到flash的off偏移地址去,该命令会自动跳过坏块。

(6)nand erase/clean [off] [size]

    清除flash off偏移地址开始的size大小的数据,最小单位是一个page。

(二)不常用命令:

 "nand scrub - really clean NAND erasing bad blocks (UNSAFE)\n"
 "nand markbad off - mark bad block at offset (UNSAFE)\n"
 "nand biterr off - make a bit error at offset (UNSAFE)\n"
 "nand lock [tight] [status]-  bring nand to lock state or display locked pages\n"
 "nand unlock [offset] [size] - unlock section\n");

(三)数据查看操作

    nand dump 0 100

    直接输出flash 0地址开始的0x100字节数据及它所在page的OOB数据。从实际输出我们可以看出它实际输出了一个page 的数据。 

Wisdom # 
Wisdom # 
isdom # nand dump 0x100000 0x100
Page 00100000 dump:
        27 05 19 56 11 f0 e6 37  5c 97 4f bc 00 30 ae e8
        80 00 80 00 80 00 80 00  e9 70 d4 3f 05 02 02 00
        77 73 64 5f 6b 65 72 6e  65 6c 5f 76 31 2e 30 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 a0 e1 00 00 a0 e1  00 00 a0 e1 00 00 a0 e1
        00 00 a0 e1 00 00 a0 e1  00 00 a0 e1 00 00 a0 e1
        02 00 00 ea 18 28 6f 01  00 00 00 00 e8 ae 30 00
        00 90 0f e1 59 0d 00 eb  01 70 a0 e1 02 80 a0 e1
        00 20 0f e1 03 00 12 e3  01 00 00 1a 17 00 a0 e3
        56 34 12 ef 00 00 0f e1  1a 00 20 e2 1f 00 10 e3
        1f 00 c0 e3 d3 00 80 e3  04 00 00 1a 01 0c 80 e3
        0c e0 8f e2 00 f0 6f e1  0e f3 2e e1 6e 00 60 e1
        00 f0 21 e1 09 f0 6f e1  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        e4 47 9f e5 30 0f 11 ee  40 00 80 e3 30 0f 01 ee
        6a 00 00 eb 5b 0f 8f e2  4e 1c 90 e8 1c d0 90 e5
        01 00 40 e0 00 60 86 e0  00 a0 8a e0 00 90 da e5
        01 e0 da e5 0e 94 89 e1  02 e0 da e5 03 a0 da e5
        0e 98 89 e1 0a 9c 89 e1  00 d0 8d e0 01 a8 8d e2
        00 50 a0 e3 01 a9 8a e2  0a 00 54 e1 1e 00 00 2a
        09 a0 84 e0 70 90 8f e2  09 00 5a e1 1a 00 00 9a
        09 ac 8a e2 ff a0 ca e3  6c 50 4f e2 1f 50 c5 e3
        00 00 4f e1 1f 00 00 e2  1a 00 50 e3 03 00 00 1a
        2f 0d 00 eb 05 00 40 e0  0a 00 80 e0 2d 0d 00 eb
        05 90 46 e0 1f 90 89 e2  1f 90 c9 e3 05 60 89 e0
        0a 90 89 e0 0f 5c 36 e9  05 00 56 e1 0f 5c 29 e9
        fb ff ff 8a 06 60 49 e0  06 d0 8d e0 5b 01 00 eb
        c4 00 4f e2 06 00 80 e0  00 f0 a0 e1 05 10 90 e1
        0d 00 00 0a 00 b0 8b e0  00 c0 8c e0 00 20 82 e0
        00 30 83 e0 00 10 9b e5  00 10 81 e0 02 00 51 e1
        01 00 53 21 05 10 81 80  04 10 8b e4 0c 00 5b e1
        f7 ff ff 3a 05 20 82 e0  05 30 83 e0 00 00 a0 e3
        04 00 82 e4 04 00 82 e4  04 00 82 e4 04 00 82 e4
        03 00 52 e1 f9 ff ff 3a  04 00 a0 e1 0d 10 a0 e1
        01 28 8d e2 07 30 a0 e1  ec 01 00 eb 3b 01 00 eb
        12 01 00 eb 07 10 a0 e1  08 20 a0 e1 00 00 4f e1
        1f 00 00 e2 1a 00 50 e3  ac 01 00 1a 10 c0 8f e2
        00 00 9c e5 0c 00 80 e0  f6 0c 00 eb 70 00 40 e1
        fe ff ff ea 7c 06 00 00  28 02 00 00 e8 ae 30 00
        00 af 30 00 e8 ae 30 00  a9 ae 30 00 bc ae 30 00
        e0 ae 30 00 00 bf 30 00  00 f0 20 e3 00 f0 20 e3
        00 f0 20 e3 00 f0 20 e3  00 f0 20 e3 00 f0 20 e3
        08 30 a0 e3 88 00 00 ea  3f 00 a0 e3 17 0f 06 ee
        37 0f 06 ee 80 00 a0 e3  10 0f 02 ee 30 0f 02 ee
        10 0f 03 ee 03 09 a0 e3  30 0f 05 ee 10 0f 05 ee
        00 00 a0 e3 9a 0f 07 ee  15 0f 07 ee 16 0f 07 ee
        10 0f 11 ee 2d 00 80 e3  01 0a 80 e3 10 0f 01 ee
        00 00 a0 e3 15 0f 07 ee  16 0f 07 ee 0e f0 a0 e1
        3f 00 a0 e3 17 0f 06 ee  80 00 a0 e3 10 0f 02 ee
        10 0f 03 ee 03 09 a0 e3  10 0f 05 ee 00 00 a0 e3
        10 0f 07 ee 10 0f 11 ee  0d 00 80 e3 00 00 a0 e3
        10 0f 01 ee 10 0f 07 ee  0e f0 a0 e1 01 39 44 e2
        ff 30 c3 e3 3f 3c c3 e3  03 00 a0 e1 20 99 a0 e1
        09 99 a0 e1 01 a2 89 e2  12 10 a0 e3 03 1b 81 e3
        01 29 83 e2 09 00 51 e1  01 00 5a 21 1c 10 c1 e3
        10 10 81 33 06 10 81 21  04 10 80 e4 01 16 81 e2
        02 00 30 e1 f6 ff ff 1a  04 10 86 e3 03 1b 81 e3
        0f 20 a0 e1 22 2a a0 e1  02 1a 81 e1 02 01 83 e0
        04 10 80 e4 01 16 81 e2  00 10 80 e5 0e f0 a0 e1
        10 0f 11 ee 02 00 c0 e3  01 05 80 e3 10 0f 01 ee
        ff ff ff ea 0e c0 a0 e1  1e 60 a0 e3 da ff ff eb
        00 00 a0 e3 9a 0f 07 ee  17 0f 08 ee 10 0f 11 ee
        05 0a 80 e3 30 00 80 e3  2e 00 00 eb 00 00 a0 e3
        17 0f 08 ee 0c f0 a0 e1  0e c0 a0 e1 91 bf 10 ee
        0f 00 1b e3 0e 60 a0 13  cb ff ff 1b 00 00 a0 e3
        9a 0f 07 ee 0f 00 1b e3  17 0f 08 1e 10 0f 11 ee
        01 02 c0 e3 05 0a 80 e3  3c 00 80 e3 02 00 c0 e3
        01 05 80 e3 50 6f 12 1e  01 00 80 13 02 10 e0 13
        02 61 c6 e3 03 60 c6 e3  10 3f 02 1e 17 0f 08 1e
        95 0f 07 ee 10 1f 03 1e  50 6f 02 1e 95 0f 07 ee
        10 0f 01 ee 10 0f 11 ee  00 00 a0 e3 95 0f 07 ee
        0c f0 a0 e1 0e c0 a0 e1  1e 60 a0 e3 ae ff ff eb
        00 00 a0 e3 17 0f 07 ee  9a 0f 07 ee 17 0f 08 ee
        10 0f 11 ee 01 0a 80 e3  02 00 00 eb 00 00 a0 e3
        17 0f 08 ee 0c f0 a0 e1  0d 00 80 e3 00 10 e0 e3
        10 3f 02 ee 10 1f 03 ee  00 00 00 ea 00 f0 20 e3
        10 0f 01 ee 10 0f 11 ee  20 f0 4e e0 1c c0 8f e2
        10 9f 10 ee 00 10 9c e5  04 20 9c e5 09 10 21 e0
        02 00 11 e1 03 f0 8c 00  14 c0 8c e2 f8 ff ff ea
        00 00 00 41 00 f0 00 ff  0e f0 a0 e1 0e f0 a0 e1
        0e f0 a0 e1 00 70 00 41  00 fe f8 ff 0e f0 a0 e1
        0e f0 a0 e1 0e f0 a0 e1  00 72 80 41 00 ff ff ff
        a7 ff ff ea 65 00 00 ea  0e f0 a0 e1 00 74 00 41
        00 ff 00 ff 71 ff ff ea  5a 00 00 ea df 00 00 ea
        00 94 00 41 00 ff 00 ff  56 ff ff ea 4d 00 00 ea
        74 00 00 ea 60 92 06 41  f0 ff 0f ff 98 ff ff ea
        56 00 00 ea b7 00 00 ea  00 70 00 00 00 f0 00 00
        0e f0 a0 e1 0e f0 a0 e1  0e f0 a0 e1 00 a1 01 44
        e0 ff ff ff 8e ff ff ea  4c 00 00 ea b2 00 00 ea
        10 b1 01 69 f0 ff ff ff  89 ff ff ea 47 00 00 ea
        ad 00 00 ea 00 69 05 56  00 ff ff ff 84 ff ff ea
        42 00 00 ea a8 00 00 ea  00 80 15 56 00 f0 ff ff
        7f ff ff ea 3d 00 00 ea  9e 00 00 ea 00 00 05 56
        00 00 0f ff 7a ff ff ea  38 00 00 ea 99 00 00 ea
        61 52 01 66 f1 ff 01 ff  a1 ff ff ea 33 00 00 ea
        5a 00 00 ea 00 00 02 00  00 00 0f 00 70 ff ff ea
        2e 00 00 ea 94 00 00 ea  00 00 05 00 00 00 0f 00
        6b ff ff ea 29 00 00 ea  8f 00 00 ea 00 00 06 00
        00 00 0f 00 66 ff ff ea  24 00 00 ea 85 00 00 ea
        00 b0 07 00 00 f0 0f 00  5c ff ff ea 1f 00 00 ea
        4b 00 00 ea 00 00 0f 00  00 00 0f 00 69 ff ff ea
        21 00 00 ea 4c 00 00 ea  00 00 00 00 00 00 00 00
        0e f0 a0 e1 0e f0 a0 e1  0e f0 a0 e1 00 f0 20 e3
        00 f0 20 e3 00 f0 20 e3  00 f0 20 e3 00 f0 20 e3
        0c 30 a0 e3 90 ff ff ea  10 0f 11 ee 0d 00 c0 e3
        10 0f 01 ee 00 00 a0 e3  9a 0f 07 ee 16 0f 07 ee
        15 0f 07 ee 0e f0 a0 e1  10 0f 11 ee 0d 00 c0 e3
        10 0f 01 ee 00 00 a0 e3  10 0f 07 ee 0e f0 a0 e1
        10 0f 11 ee 0d 00 c0 e3  10 0f 01 ee 00 00 a0 e3
        17 0f 07 ee 17 0f 08 ee  0e f0 a0 e1 10 0f 11 ee
        0d 00 c0 e3 10 0f 01 ee  0e c0 a0 e1 26 00 00 eb
        00 00 a0 e3 17 0f 08 ee  d5 0f 07 ee 9a 0f 07 ee
        95 0f 07 ee 0c f0 a0 e1  00 f0 20 e3 00 f0 20 e3
        00 f0 20 e3 00 f0 20 e3  00 f0 20 e3 00 f0 20 e3
        10 30 a0 e3 68 ff ff ea  01 20 a0 e3 00 30 a0 e3
        16 cf 07 ee e0 10 a0 e3  3f 33 81 e3 5e 3f 07 ee
        01 33 53 e2 fc ff ff 2a  20 10 51 e2 f9 ff ff 2a
        00 00 32 e3 15 cf 07 1e  9a cf 07 ee 0e f0 a0 e1
        00 10 a0 e3 1e 1f 07 ee  15 1f 07 ee 9a 1f 07 ee
        0e f0 a0 e1 00 10 a0 e3  1e 1f 07 ee 15 1f 07 ee
        1f 1f 07 ee 9a 1f 07 ee  0e f0 a0 e1 b1 af 10 ee
        0f 08 1a e3 00 a0 a0 e3  01 00 00 0a 1e af 07 ee
        23 00 00 ea ba af 07 ee  ff 0e 2d e9 30 0f 30 ee
        07 34 10 e2 a3 3b a0 e1  1a 00 00 0a 00 a0 a0 e3
        aa 20 8a e0 30 12 a0 e1  07 10 01 e2 02 00 51 e3
        11 00 00 ba 10 af 40 ee  95 af 07 ee 10 1f 30 ee
        07 20 01 e2 04 20 82 e2  e0 40 9f e5 a1 41 14 e0
        14 5f 6f e1 d8 70 9f e5  a1 76 17 e0 04 90 a0 e1
OOB:
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff
Wisdom # 
Wisdom # 

注意Page 00100000 dump 表示的是0x00100000 偏移地址开始的数据,并不是表示第00100000 个page。

可以直接读取flash 数据到内存来验证该问题:

mw.b 0x82000000 ff 100000;   #清除内存
nand read 0x82000000 0x100000 0x100  #读数据到内存
md 0x82000000 50    #显示内存

Wisdom # 
Wisdom # 
Wisdom # 
Wisdom # mw.b 0x82000000 ff 100000;
Wisdom # nand read 0x82000000 0x100000 0x100
NAND read: device 0 offset 0x100000, size 0x100
 256 bytes read: OK
Wisdom # md 0x82000000 50 
82000000: 56190527 37e6f011 bc4f975c e8ae3000    '..V...7\.O..0..
82000010: 00800080 00800080 3fd470e9 00020205    .........p.?....
82000020: 5f647377 6e72656b 765f6c65 00302e31    wsd_kernel_v1.0.
82000030: 00000000 00000000 00000000 00000000    ................
82000040: e1a00000 e1a00000 e1a00000 e1a00000    ................
82000050: e1a00000 e1a00000 e1a00000 e1a00000    ................
82000060: ea000002 016f2818 00000000 0030aee8    .....(o.......0.
82000070: e10f9000 eb000d59 e1a07001 e1a08002    ....Y....p......
82000080: e10f2000 e3120003 1a000001 e3a00017    . ..............
82000090: ef123456 e10f0000 e220001a e310001f    V4........ .....
820000a0: e3c0001f e38000d3 1a000004 e3800c01    ................
820000b0: e28fe00c e16ff000 e12ef30e e160006e    ......o.....n.`.
820000c0: e121f000 e16ff009 00000000 00000000    ..!...o.........
820000d0: 00000000 00000000 00000000 00000000    ................
820000e0: e59f47e4 ee110f30 e3800040 ee010f30    [email protected]...
820000f0: eb00006a e28f0f5b e8901c4e e590d01c    j...[...N.......
82000100: ffffffff ffffffff ffffffff ffffffff    ................
82000110: ffffffff ffffffff ffffffff ffffffff    ................
82000120: ffffffff ffffffff ffffffff ffffffff    ................
82000130: ffffffff ffffffff ffffffff ffffffff    ................
Wisdom # 

可以看到nand dump 与nand read 指定地址到内存中的数据是一样的。

 

你可能感兴趣的:(linux,uboot,海思方案开发)