工具/软件:Linux
我们使用 MT29F16G08AJADAWP 作为我们具有两个 CS 信号的 nand 芯片。 我们修改了 k2e SDK 中的器件树、如下所示:
aemif{(&A)
cs0{
#address-cells =<2>;
大小单元格=<1>;
时钟范围;
范围;
TI、cs-chipselect =<0>;
/*以纳秒为单位的所有时序*/
TI、cs-min-c翻转-ns =<12>;
ti、cs-read-hold-ns =<6>;
ti、cs 读取选通-ns =<23>;
TI、cs-read-setup-ns =<9>;
TI、cs-write-hold-ns =<8>;
ti、cs-write-strobe -ns =<23>;
TI、cs-write-setup-ns =<8>;
NAND@0、0x0{
兼容="ti、keystone-nand"、"ti、davinci-nand";
#address-cells =<1>;
大小单元格=<1>;
REG =<0 0x4000000
1 0 0x00000100>;
TI、Davinci-chipselect =<0>;
TI、Davinci-mask-ale =<0x2000>;
TI、Davinci-mask-cle =<0x4000>;
TI、Davinci-mask-chipsel =<0>;
NAND-ECC-MODE ="HW";
TI、Davinci-ECC-BITS =<4>;
闪存上的 NAND-BBT;
分区@0{
标签="u-boot";
寄存器=<0x0 0x100000>;
只读;
};
分区@100000{
标签="params";
REG =<0x100000 0x80000>;
只读;
};
分区@180000{
标签="ubifs";
REG =<0x180000 0x3FE80000>;
};
};
};
CS1{
#address-cells =<2>;
大小单元格=<1>;
时钟范围;
范围;
TI、cs-chipselect =<1>;
/*以纳秒为单位的所有时序*/
TI、cs-min-c翻转-ns =<12>;
ti、cs-read-hold-ns =<6>;
ti、cs 读取选通-ns =<23>;
TI、cs-read-setup-ns =<9>;
TI、cs-write-hold-ns =<8>;
ti、cs-write-strobe -ns =<23>;
TI、cs-write-setup-ns =<8>;
NAND@0、0x4000000{
兼容="ti、keystone-nand"、"ti、davinci-nand";
#address-cells =<1>;
大小单元格=<1>;
寄存器=<0 0x4000000 0x4000000
1 0 0x00000100>;
TI、Davinci-chipselect =<1>;
TI、Davinci-mask-ale =<0x2000>;
TI、Davinci-mask-cle =<0x4000>;
TI、Davinci-mask-chipsel =<0>;
NAND-ECC-MODE ="HW";
TI、Davinci-ECC-BITS =<4>;
闪存上的 NAND-BBT;
分区@40000000{
标签="nand2";
REG =<0x40000000 0x40000000>;
};
};
};
};
当我们刻录 Nand 并启动内核时,会出现错误 :nand: device found,Manufacturer ID: 0x2C,Chip ID: 0xd3
[17.057983] 和:Micron MT29F16G08AJADAWP
[17.062086] nand:2048 MIB、SLC、擦除大小:128 KiB、页面大小:2048、OOB 大小:64
[17.070063] 第1048512页、版本0x01中发现错误的块表
[17.076513] 在第1048448页、版本0x01中找到错误的块表
[17.082999] nand_Read_BBT:0x000024820000处的块错误
[17.088258] 在 MTD 器件30000000.nand 上找到3个部件分区
[17.094362] 在"30000000.nand"上创建3个 MTD 分区:
[17.099783] 0x000000000000 0x000000100000:“u-boot”
[17.105530]0x000000100000-0x000000180000 :"params"
[17.111217]0x000000180000-0x000040000000 :"ubifs"
[17.117544] DaVinci_nand 30000000。nand:控制器修订版2.5
[17.123883] DaVinci_nand:探测34000000.nand 失败、出现错误-16
[17.131063] 平台 snd-so-dummy:设置 dma_pfn_offset00780000
[17.138020] NET:注册协议系列10.
[17.143121] SIT:IPv6 over IPv4隧道驱动程序
[17.148172] NET:注册协议系列17.
[17.152775] 注册的密钥类型 DNS_旋 变传感器
[17.157174] 正在注册 SWP/SWPB 仿真处理程序
[17.163238] ubi0:连接 mtd4
[17.354977] (NULL net_device):链路断开
[17.359168] (NULL net_device):链路断开
[17.363357] (NULL net_device):链路断开
[17.36757] (NULL net_device):链路已断开
[17.371746] (NULL net_device):链路断开
[17.375944] (NULL net_device):链路断开
[21.454044] ubi0错误:SCAN_PEB:PEB 8176中的错误图像序列号1864223580,预期为1078639942
[21.463471] 擦除计数器报头转储:
[21.467235] 魔术 0x55424923
[21.470987] 版本 1
[21.473954] EC 1.
[21.476933] vid_hdr_offset 2048
[21.480162] DATA_OFFSET 4096
[21.483391] 图像序列 1864223580
[21.487152] HDR_CRC 0xf63135e2
[21.490903] 擦除计数器头六转储:
[21.497589] ubi0错误:ubi_attach_MTD_dev:无法连接 mtd4,错误-22
[21.504663] UBI 错误:无法连接 mtd4
[21.508661] hctosys:无法打开 RTC 器件(rtc0)
[21.524950] ALSA 器件列表:
[21.527933] 未找到声卡。
[21.531787] UBIFS 错误(pid:1):无法打开“ubi0:rootfs”,错误-19VFS:无法打开根设备“ubi0:rootfs”或未知块(0、0):错误-19
我们如何正确修改器件树。