FreeCalypso > hg > freecalypso-sw
diff loadtools/flash.h @ 400:f027c6fbe37e
fc-loadtool flash: first round of refactoring for CFI
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sun, 15 Jun 2014 20:05:54 +0000 |
parents | 99c234bf6a9b |
children | a212b4968b29 |
line wrap: on
line diff
--- a/loadtools/flash.h Sun Jun 15 00:47:06 2014 +0000 +++ b/loadtools/flash.h Sun Jun 15 20:05:54 2014 +0000 @@ -12,16 +12,27 @@ unsigned nsectors; }; +#define CFI_MAX_REGIONS 4 + +/* The info in struct cfi_info can be either gathered from CFI or hard-coded. */ +struct cfi_info { + uint16_t cmdset_style; + uint32_t total_size; + unsigned nregions; + struct flash_region_desc regions[CFI_MAX_REGIONS]; + unsigned total_sectors; +}; + struct flash_idcheck { uint16_t offset; uint16_t expect_val; }; struct flash_bank_desc { - struct flash_region_desc *regions; - uint32_t prog_base_mask; - struct flash_idcheck *idcheck_table; - unsigned idcheck_num; + uint32_t align_size; + struct cfi_info *hard_cfi; + struct flash_idcheck *idcheck_table; + unsigned idcheck_num; }; struct flash_device_desc { @@ -39,9 +50,8 @@ struct flash_bank_info { uint32_t base_addr; - uint32_t total_size; struct flash_bank_desc *bank_desc; + struct cfi_info *cfi; struct sector_info *sectors; - unsigned nsectors; int idcheck_done; };