comparison 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
comparison
equal deleted inserted replaced
399:d26a9e3de626 400:f027c6fbe37e
10 struct flash_region_desc { 10 struct flash_region_desc {
11 uint32_t sector_size; 11 uint32_t sector_size;
12 unsigned nsectors; 12 unsigned nsectors;
13 }; 13 };
14 14
15 #define CFI_MAX_REGIONS 4
16
17 /* The info in struct cfi_info can be either gathered from CFI or hard-coded. */
18 struct cfi_info {
19 uint16_t cmdset_style;
20 uint32_t total_size;
21 unsigned nregions;
22 struct flash_region_desc regions[CFI_MAX_REGIONS];
23 unsigned total_sectors;
24 };
25
15 struct flash_idcheck { 26 struct flash_idcheck {
16 uint16_t offset; 27 uint16_t offset;
17 uint16_t expect_val; 28 uint16_t expect_val;
18 }; 29 };
19 30
20 struct flash_bank_desc { 31 struct flash_bank_desc {
21 struct flash_region_desc *regions; 32 uint32_t align_size;
22 uint32_t prog_base_mask; 33 struct cfi_info *hard_cfi;
23 struct flash_idcheck *idcheck_table; 34 struct flash_idcheck *idcheck_table;
24 unsigned idcheck_num; 35 unsigned idcheck_num;
25 }; 36 };
26 37
27 struct flash_device_desc { 38 struct flash_device_desc {
28 char *name; 39 char *name;
29 struct flash_bank_desc *bank_desc; 40 struct flash_bank_desc *bank_desc;
37 uint32_t size; 48 uint32_t size;
38 }; 49 };
39 50
40 struct flash_bank_info { 51 struct flash_bank_info {
41 uint32_t base_addr; 52 uint32_t base_addr;
42 uint32_t total_size;
43 struct flash_bank_desc *bank_desc; 53 struct flash_bank_desc *bank_desc;
54 struct cfi_info *cfi;
44 struct sector_info *sectors; 55 struct sector_info *sectors;
45 unsigned nsectors;
46 int idcheck_done; 56 int idcheck_done;
47 }; 57 };