From a48a5e6d94dc98cf69d15be133ae7b8283126bbe Mon Sep 17 00:00:00 2001 From: drath Date: Wed, 11 Apr 2007 14:25:12 +0000 Subject: - disabled excessive debug output in jtag.h - output all of EmbeddedICE version register in error message - update OpenOCD's idea of the current core mode, and immediately change core mode, on CPSR changes - added support for CFI cmdset 0002 (patch by Andrew Dyer, thanks a lot) - enhanced CFI cmdset 0002 support to Atmel AT49 flashes (thanks to Joerg Krein for providing test hardware) git-svn-id: svn://svn.berlios.de/openocd/trunk@138 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/flash/cfi.h | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'src/flash/cfi.h') diff --git a/src/flash/cfi.h b/src/flash/cfi.h index d9700be2..fa53f0d8 100644 --- a/src/flash/cfi.h +++ b/src/flash/cfi.h @@ -28,6 +28,11 @@ typedef struct cfi_flash_bank_s struct target_s *target; working_area_t *write_algorithm; working_area_t *erase_check_algorithm; + + int x16_as_x8; + + u16 manufacturer; + u16 device_id; char qry[3]; @@ -83,4 +88,55 @@ typedef struct cfi_intel_pri_ext_s u8 extra[0]; } cfi_intel_pri_ext_t; +/* Spansion primary extended query table as defined for and used by + * the linux kernel cfi driver (as of 2.6.15) + */ +typedef struct cfi_spansion_pri_ext_s +{ + u8 pri[3]; + u8 major_version; + u8 minor_version; + u8 SiliconRevision; /* bits 1-0: Address Sensitive Unlock */ + u8 EraseSuspend; + u8 BlkProt; + u8 TmpBlkUnprotect; + u8 BlkProtUnprot; + u8 SimultaneousOps; + u8 BurstMode; + u8 PageMode; + u8 VppMin; + u8 VppMax; + u8 TopBottom; + int _reversed_geometry; +} cfi_spansion_pri_ext_t; + +/* Atmel primary extended query table as defined for and used by + * the linux kernel cfi driver (as of 2.6.20+) + */ +typedef struct cfi_atmel_pri_ext_s +{ + u8 pri[3]; + u8 major_version; + u8 minor_version; + u8 features; + u8 bottom_boot; + u8 burst_mode; + u8 page_mode; +} cfi_atmel_pri_ext_t; + +typedef struct cfi_fixup_s +{ + u16 mfr; + u16 id; + void (*fixup)(flash_bank_t *flash, void *param); + void *param; +} cfi_fixup_t; + +#define CFI_MFR_AMD 0x0001 +#define CFI_MFR_ATMEL 0x001F +#define CFI_MFR_ST 0x0020 /* STMicroelectronics */ + +#define CFI_MFR_ANY 0xffff +#define CFI_ID_ANY 0xffff + #endif /* CFI_H */ -- cgit v1.2.3