1. 概述
SPI NAND flash 一般用来存放启动镜像,就看使用场景;
也可以直接放到emmc上
2. SPI接口说明
这里SPI NAND flash使用的SPI接口不是通用SPI接口;
是专用SPI接口【SFC】,不占用SPI通用接口的
3. 修改硬件
为了不和emmc 8bit MODE冲突;
这里设置成 4 wire模式
4. Uboot制作
make CROSS_COMPILE=aarch64-himix100-linux- hi3559av100_defconfig
【别使用hi3559av100_nand_defconfig, 这个是针对并口NAND】
make CROSS_COMPILE=aarch64-himix100-linux- -j 20
make CROSS_COMPILE=aarch64-himix100-linux- u-boot-z.bin
5. 拨码开发
启动介质拨到SPI NAND启动
6. Hitool烧写uboot
启动正常,验证ok
描述下之前启动失败的问题:
这个就是上述说的,uboot的config配置使用错了,导致uboot编译的镜像不对
System startup
Uncompress Ok!
U-Boot 2016.11 (Oct 14 2020 - 17:05:18 +1100)hi3559av100
Relocation Offset is: 176f9000
Relocating to 5fef9000, new gd at 5fe58e00, sp at 5fe58df0
NAND: hifmc_ip_ver_check(44): Check Flash Memory Controller v100 ...hifmc_ip_ver_check(50): Found
hifmc100_host_init(916): Error: Flash type isn't Nand flash. reg[0x11822]
Special NAND id table Version 1.40
hifmc100_send_cmd_reset(371): Error: Wait cmd cpu finish timeout!
hifmc100_send_cmd_readid(345): Error: Wait cmd cpu finish timeout!
hifmc100_send_cmd_readid(345): Error: Wait cmd cpu finish timeout!
Nand ID: 0xCA 0x3C 0xB5 0x68 0xCA 0x3C 0xB5 0x68
hifmc100_send_cmd_readid(345): Error: Wait cmd cpu finish timeout!
hifmc100_send_cmd_readid(345): Error: Wait cmd cpu finish timeout!
drivers/mtd/nand/hifmc100_nand/hifmc100_nand.c(786): BUG: Driver does not support. the pagesize(1024) and oobsize(16).
等待boot启动超时,单板上无fastboot或当前fastboot无法启动。
Failed to download fastboot!