Edit online

添加驱动索引

通过两级列表,设置支持的 SPI NAND 设备和驱动的关联。
  1. 检查 source/linux-5.10/drivers/mtd/nand/spi/core.c 中的 spinand_manufacturers 信息,查看新设备的厂商是否在列表之中,示例如下:
    static const struct spinand_manufacturer *spinand_manufacturers[] = {
        &gigadevice_spinand_manufacturer,
        &macronix_spinand_manufacturer,
        &micron_spinand_manufacturer,
        &paragon_spinand_manufacturer,
        &toshiba_spinand_manufacturer,
        &winbond_spinand_manufacturer,
        &fmsh_spinand_manufacturer,
        &foresee_spinand_manufacturer,
    };

    spinand_manufacturer 数据结构为第一级索引,用来描述厂商的系列器件信息,是 SPI NAND 驱动的核心。

  2. 检查具体的设备厂商文件,查看具体的型号是否在列表之中,以 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 在文件中添加相应配置,详情可查看配置新设备