Edit online

SPI NAND 库数据结构设计

Read time: 1 minute(s)
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 表示 SPINAND 设备信息 use_continuous_read 表示 SPINAND 使能了连续读取模式 (部分厂家芯片支持) 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;
};