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