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; };