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!