添加驱动索引
通过两级列表,设置支持的 SPI NAND 设备和驱动的关联。
- 检查 source/linux-5.10/drivers/mtd/nand/spi/core.c
中的 spinand_manufacturers
信息,查看新设备的厂商是否在列表之中,示例如下:
static const struct spinand_manufacturer *spinand_manufacturers[] = { &gigadevice_spinand_manufacturer, ¯onix_spinand_manufacturer, µn_spinand_manufacturer, ¶gon_spinand_manufacturer, &toshiba_spinand_manufacturer, &winbond_spinand_manufacturer, &fmsh_spinand_manufacturer, &foresee_spinand_manufacturer, };
spinand_manufacturer
数据结构为第一级索引,用来描述厂商的系列器件信息,是 SPI NAND 驱动的核心。 - 检查具体的设备厂商文件,查看具体的型号是否在列表之中,以 WINBOND
为例:
static const struct spinand_info winbond_spinand_table[] = { SPINAND_INFO("W25M02GV", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xab), NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 2), NAND_ECCREQ(1, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, &write_cache_variants, &update_cache_variants), 0, SPINAND_ECCINFO(&w25m02gv_ooblayout, NULL), SPINAND_SELECT_TARGET(w25m02gv_select_target)), };
若在列表中找到了相应颗粒型号,表示 SPI NAND 可以直接使用该型号,否则需要根据颗粒的 DATASHEET 在文件中添加相应配置,详情可查看配置新设备。