8 #define CFI_FLASH_MAX_ERASE_REGIONS 4
10 /* structure of erase region descriptor */
14 } __attribute__((packed));
17 /* structure of cfi query response */
28 uint8_t word_write_timeout_typ;
29 uint8_t buf_write_timeout_typ;
30 uint8_t block_erase_timeout_typ;
31 uint8_t chip_erase_timeout_typ;
32 uint8_t word_write_timeout_max;
33 uint8_t buf_write_timeout_max;
34 uint8_t block_erase_timeout_max;
35 uint8_t chip_erase_timeout_max;
37 uint16_t interface_desc;
38 uint16_t max_buf_write_size;
39 uint8_t num_erase_regions;
40 struct cfi_region erase_regions[CFI_FLASH_MAX_ERASE_REGIONS];
41 } __attribute__((packed));
51 struct cfi_query f_query;
54 typedef uint8_t flash_lock;
56 void flash_init(cfi_flash_t *flash, void *base_addr);
58 void flash_dump_info(cfi_flash_t *flash);
60 flash_lock flash_block_getlock(cfi_flash_t *base_addr, uint32_t block_offset);
62 void flash_block_unlock(cfi_flash_t *base_addr, uint32_t block_offset);
63 void flash_block_lock(cfi_flash_t *base_addr, uint32_t block_offset);
64 void flash_block_lockdown(cfi_flash_t *base_addr, uint32_t block_offset);
66 void flash_block_erase(cfi_flash_t *base_addr, uint32_t block_addr);