On Sunday 11 May 2008 20:58, Carl-Daniel Hailfinger wrote:
I'd like to introduce another field into struct flashchip: u32 flags. flags would hold a bit for every supported (and important) opcode and one bit for every variant of a supported opcode. Example follows:
#define SPIFLAG_CHIP_ERASE_60 (1<<0) #define SPIFLAG_CHIP_ERASE_C7 (1<<1) #define SPIFLAG_BLOCK_ERASE_52 (1<<2) #define SPIFLAG_BLOCK_ERASE_D8 (1<<3) #define SPIFLAG_SECTOR_ERASE_20 (1<<4) #define SPIFLAG_BYTE_PROGRAM_BYTE (1<<16) //only one byte per command #define SPIFLAG_BYTE_PROGRAM_PAGE (1<<17) //256 bytes per command
AT45DB321D 32Mb (4MB) device has user configurable page size of 512 or 528 bytes.