!先觉条件
0:确保硬件设计和使用正确!(中枪)
1:确保SD卡的boot分区有用于烧写到nand flash的Uboot文件
2:确保EVM的SW4 的NAND FLASH选通开关正确
3:确保NAND FLASH 的位宽设置正确(中枪)
在设置过程中,官方文档的描述:http://processors.wiki.ti.com/index.php/TI81XX_PSP_UBOOT_User_Guide#Flashing_TI816X_U-Boot_to_NAND_using_SD_boot
Ps:Flashing TI816X U-Boot to NAND using SD boot
Before proceeding with any of the commands given in this section please make sure that NAND is enabled on the EVM. The switch for enabling NAND on TI8168 EVM is SW4.
Copy the U-Boot image u-boot.noxip.bin built for NAND as described [#U-Boot_for_NAND_boot here] in the FAT partition on the SD card. (The release package contains a pre-built image u-boot.noxip.bin which can be used for this purpose)
Once the second stage of SD boot comes up use the following commands to flash to NAND
TI8168_EVM# mmc rescan 0
TI8168_EVM# fatload mmc 0 0x81000000 u-boot.noxip.bin
TI8168_EVM# nand erase 0x0 0x260000
TI8168_EVM# nand write.i 0x81000000 0x0 0x33800
After this the EVM switch settings can be changed to [#NAND_boot NAND boot mode] if boot out of NAND is required.
官方的这最新的wiki上全部的描述就是这样,但是在实际的烧写过程中:
TI8168_EVM# nand erase 0x0 0x1c0000命令返回的结果是
No available device
但是,通过nand device命令可以看到有nand flash设备存在
Device 0:
各种百度,各种手册,弄了半个上午,一无所获,一气之下,google之,在第一条结果就给出了有用的信息,原来除了wiki上的 SW4需要设置正确之外,在SW3上的CS0BW位也需要设置成16bit模式,这样才能正确的烧写,鄙视一下TI的这篇WIKI 和我大天朝的Baidu。
所以完全正确的方式步骤是:
1:拷贝你想要烧写的u-boot.noxip.bin到SD卡的boot分区
2:SW4拨到nand flash启动的位
3:SW3的CS0BW位拨到16bit模式【左边】
4:按照wiki上的步骤烧写即可,在新版本的修改中,对ecc校验做了少许修改,所以在实际的烧写中,有的前辈给出的烧写代码中添加了 【设置硬件ECC校验模式为BCH8】 的设置指令
Boot Pin Settings |
|||||||
|
SW-1/SW-3 |
SW-2/SW-4/SW-5* |
|||||
Boot Mode |
BTM 4 |
BTM 3 |
BTM 2 |
BTM 1 |
BTM 0 |
NAND |
SPI |
NAND |
1 |
0 |
0 |
1 |
0 |
1 |
X |
SPI |
1 |
0 |
1 |
1 |
0 |
X |
1 |
UART |
0 |
0 |
0 |
0 |
1 |
X |
X |
SD |
1 |
0 |
1 |
1 |
1 |
X |
X |
NOR |
1 |
0 |
0 |
0 |
0 |
0 |
X |
EMAC |
0 |
0 |
1 |
0 |
0 |
X |
X |
SW3设置为SD mode[1:10]=1110100100;同时SW4 mode[1:2]=10 nand使能(16bit nand flash)
mmc rescan 0
mw.b 0x81000000 0xFF 0x260000 //初始化内存区域,全部置1烧写文件系统
mw.b 0x81000000 0xFF 0x0C820000关机重启,SW3设置为Nand mode[1:10]=0100100100;同时SW4 mode[1:2]=10 nand使能(16bit nand flash)
Nand启动进入Uboot命令行输入以下指令设置env变量:本文主要参照 http://blog.csdn.net/luhao806/article/details/7341439
http://blog.csdn.net/aihu_1201/article/details/8963919