错误
在烧录u-boot 时候出现Invalid nand flash block size!
解决方法
我是打算将EMA的sdk移植到EBN上,但是在烧录boot_image时出现这个问题。
EMA的和EBN的对比
在opensource/uboot/u-boot-2016.11/drivers/mtd/nand/raw/fmc100/fmc_spi_nand_ids.c里增加NAND Flash 芯片 型号。
/* Dosilicon 3.3V DS35Q4GA-IB 1Gb */
{
.name = "DS35Q4GA-IB",
.id = {0xe5, 0xf4},
.id_len = _2B,
.chipsize = _512M,
.erasesize = _128K,
.pagesize = _2K,
.oobsize = _64B,
.badblock_pos = BBP_FIRST_PAGE,
.read = {
&read_std(1, INFINITE, 24), /* 24MHz */
&read_fast(1, INFINITE, 104), /* 104MHz */
&read_dual(1, INFINITE, 104), /* 104MHz */
&read_quad(1, INFINITE, 104), /* 104MHz */
0
},
.write = {
&write_std(0, 256, 80), /* 80MHz */
&write_quad(0, 256, 104), /* 104MHz */
0
},
.erase = {
&erase_sector_128k(0, _128K, 104), /* 104MHz */
0
},
.driver = &spi_driver_general,
},
文件的作用是:
-
识别和解析 SPI 接口的 NAND Flash 芯片 ID。
-
为不同型号的 SPI NAND Flash 芯片提供相应的配置信息。
包含的一些关键点:
-
芯片 ID 表: 存储各种 SPI NAND Flash 芯片的 ID 和型号信息。
-
芯片 ID 解析函数: 根据读取到的芯片 ID,查找芯片 ID 表,确定芯片型号并设置相应的配置信息。
-
芯片配置信息: 包括芯片容量、页大小、块大小等参数,用于控制数据读写操作。
文件用途:
-
u-boot 在启动过程中,需要识别并配置系统中的 NAND Flash 芯片。
-
该文件提供了识别 SPI NAND Flash 芯片 ID 和获取芯片配置信息的功能。
-
通过解析芯片 ID,u-boot 可以确定芯片型号并设置相应的参数,从而正确地访问和管理 NAND Flash 芯片。
总结:
文件是 u-boot 项目中用于识别和配置 SPI 接口的 NAND Flash 芯片的关键文件。它提供了芯片 ID 解析和配置信息,确保 u-boot 能够正确地访问和管理 SPI NAND Flash 芯片。