天天看点

海思3559A平台SPI NAND flash调试验证

1. 概述

SPI NAND flash 一般用来存放启动镜像,就看使用场景;

也可以直接放到emmc上

2. SPI接口说明

这里SPI NAND flash使用的SPI接口不是通用SPI接口;

是专用SPI接口【SFC】,不占用SPI通用接口的

3. 修改硬件

为了不和emmc 8bit MODE冲突;

这里设置成 4 wire模式

海思3559A平台SPI NAND flash调试验证

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!