Edit online

SPI NAND 库数据结构设计

  • struct aic_spinand:定义了 SPINAND 控制器管理信息
    struct aic_spinand {
        const struct aic_spinand_info *info;
        struct spinand_id id;
        void *user_data;
        void *lock;
        u8 use_continuous_read;
        u8 qspi_dl_width;
        u8 IsInited;
        u8 *databuf;
        u8 *oobbuf;
        struct nand_bbt bbt;
    };

    info 表示 NAND 设备信息 use_continuous_read 表示 NAND 使能了连续读取模式(部分厂家芯片支持) qspi_dl_width 表示 qspi 总线数据宽度 bbt 表示坏块管理信息

  • struct aic_spinand_info:定义了 SPINAND 设备配置信息
    /* SPI NAND flash information */
    struct aic_spinand_info {
        u32 devid;
        u16 page_size;
        u16 oob_size;
        u32 block_per_lun;
        u32 pages_per_eraseblock;
        u8 is_die_select;
        const char *sz_description;
        struct spi_nand_cmd_cfg *cmd;
    };
  • struct spi_nand_cmd_cfg:定义了 SPINAND 操作命令配置的格式
    struct spi_nand_cmd_cfg {
        u8 opcode;
        u8 opcode_bits;
        u8 addr_bytes;
        u8 addr_bits;
        u8 dummy_bytes;
        u8 data_bits;
    };