X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Fflash%2Fnor%2Fcfi.h;h=ed858a9de5772eb2bddbca74a37d6e192dc64976;hb=1b864d6e49d634a382ba1ed13f650898872627cf;hp=565a2b6cf64878a27230fcba64ed2b8edf20024a;hpb=2b2d5ec1e38efdd10ec64f8e880588350fb4edea;p=openocd.git diff --git a/src/flash/nor/cfi.h b/src/flash/nor/cfi.h index 565a2b6cf6..ed858a9de5 100644 --- a/src/flash/nor/cfi.h +++ b/src/flash/nor/cfi.h @@ -13,31 +13,28 @@ * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * along with this program. If not, see . * ***************************************************************************/ -#ifndef CFI_H -#define CFI_H -#include +#ifndef OPENOCD_FLASH_NOR_CFI_H +#define OPENOCD_FLASH_NOR_CFI_H #define CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7 0xE0 /* DQ5..DQ7 */ #define CFI_STATUS_POLL_MASK_DQ6_DQ7 0xC0 /* DQ6..DQ7 */ -struct cfi_flash_bank -{ - struct working_area *write_algorithm; - +struct cfi_flash_bank { int x16_as_x8; int jedec_probe; int not_cfi; int probed; + enum target_endianness endianness; + int data_swap; + uint16_t manufacturer; uint16_t device_id; - char qry[3]; + uint8_t qry[3]; /* identification string */ uint16_t pri_id; @@ -70,15 +67,20 @@ struct cfi_flash_bank void *pri_ext; void *alt_ext; + + /* calculated timeouts */ + unsigned word_write_timeout; + unsigned buf_write_timeout; + unsigned block_erase_timeout; + unsigned chip_erase_timeout; }; /* Intel primary extended query table * as defined for the Advanced+ Boot Block Flash Memory (C3) * and used by the linux kernel cfi driver (as of 2.6.14) */ -struct cfi_intel_pri_ext -{ - char pri[3]; +struct cfi_intel_pri_ext { + uint8_t pri[3]; uint8_t major_version; uint8_t minor_version; uint32_t feature_support; @@ -96,8 +98,7 @@ struct cfi_intel_pri_ext /* Spansion primary extended query table as defined for and used by * the linux kernel cfi driver (as of 2.6.15) */ -struct cfi_spansion_pri_ext -{ +struct cfi_spansion_pri_ext { uint8_t pri[3]; uint8_t major_version; uint8_t minor_version; @@ -120,8 +121,7 @@ struct cfi_spansion_pri_ext /* Atmel primary extended query table as defined for and used by * the linux kernel cfi driver (as of 2.6.20+) */ -struct cfi_atmel_pri_ext -{ +struct cfi_atmel_pri_ext { uint8_t pri[3]; uint8_t major_version; uint8_t minor_version; @@ -136,18 +136,16 @@ enum { CFI_UNLOCK_5555_2AAA, }; -struct cfi_unlock_addresses -{ +struct cfi_unlock_addresses { uint32_t unlock1; uint32_t unlock2; }; -struct cfi_fixup -{ +struct cfi_fixup { uint16_t mfr; uint16_t id; - void (*fixup)(struct flash_bank *flash, void *param); - void *param; + void (*fixup)(struct flash_bank *bank, const void *param); + const void *param; }; #define CFI_MFR_AMD 0x0001 @@ -157,8 +155,9 @@ struct cfi_fixup #define CFI_MFR_AMIC 0x0037 #define CFI_MFR_SST 0x00BF #define CFI_MFR_MX 0x00C2 +#define CFI_MFR_EON 0x007F #define CFI_MFR_ANY 0xffff #define CFI_ID_ANY 0xffff -#endif /* CFI_H */ +#endif /* OPENOCD_FLASH_NOR_CFI_H */