openocd/src/flash/nor
Jeff Ciesielski 33b048d456 flash: New driver for XMC4xxx microcontroller family
This is a complete flash driver for the Infineon XMC4xxx family of
microcontrollers, based on the TMS570 driver by Andrey Yurovsky.
The driver attempts to discover the particular variant of MCU via a
combination of the SCU register (to determine if this is indeed an
XMC4xxx part) and the FLASH0_ID register (to determine the variant).
If this fails, the driver will not load.
The driver has been added to the README and documentation.

Tests:
* Hardware: XMC4500 (XMC4500_relax), XMC4200 (XMC4200 enterprise)
* SWD + JTAG
* Binary: 144k, 1M

Note:
* Flash protect only partly tested. These parts only allow the flash
  protection registers (UCB) to be written 4 times total, and my devkits
  have run out of uses (more on the way)

Future Work:
* User 1/2(permalock) locking support via custom command
* In-memory flash loader bootstrap (flashing is rather slow...)

Change-Id: I1d3345d5255d8de8dc4175cf987eb4a037a8cf7f
Signed-off-by: Jeff Ciesielski <jeffciesielski@gmail.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
Reviewed-on: http://openocd.zylin.com/2488
Tested-by: jenkins
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
2015-11-11 12:08:35 +00:00
..
aduc702x.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
aducm360.c flash: Analog Devices ADuCM360 support 2015-09-30 22:12:16 +01:00
at91sam3.c flash/nor/at91sam3: remove sam3_page_write_opcodes 2014-04-08 11:34:53 +00:00
at91sam4.c flash : Add support for Atmel at91sam4sa16b 2015-08-06 13:16:33 +01:00
at91sam4l.c AT91SAM4L: handle reset run/halt in SMAP 2015-04-14 15:47:43 +01:00
at91sam7.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
at91samd.c at91samd: add chip IDs for SAMC20 and SAMC21 families 2015-08-06 13:15:19 +01:00
atsamv.c flash: driver for Atmel SAMV, SAMS, and SAME 2015-11-10 20:27:09 +00:00
avrf.c atmega: add support for the at90usb128 flash 2015-03-09 06:25:52 +00:00
cfi.c cfi: Fix fallback to memory writes 2015-11-10 08:13:15 +00:00
cfi.h Support for SST 39VF3201C NOR flash 2013-07-01 08:39:36 +00:00
core.c fix flash bank auto_probe() fail with multiple targets 2013-12-17 23:04:01 +00:00
core.h flash: add padded_value cmd 2013-10-07 19:28:19 +00:00
driver.h flash: Constify write buffer 2014-03-17 12:47:18 +00:00
drivers.c flash: New driver for XMC4xxx microcontroller family 2015-11-11 12:08:35 +00:00
dsp5680xx_flash.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
efm32.c flash: efm32: Add support for EZR32LG and EZR32WG. 2015-04-16 20:28:56 +01:00
em357.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
faux.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
fm3.c flash: constify driver data structures 2014-10-06 11:57:32 +00:00
imp.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
jtagspi.c flash/nor/jtagspi: 'retval' may be used uninitialized 2015-08-19 21:35:10 +01:00
kinetis.c Kinetis: properly pad flash section writes 2015-11-05 22:14:46 +00:00
lpc288x.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
lpc2000.c Fix several format specifiers errors exposed by arm-none-eabi 2015-04-16 20:24:50 +01:00
lpc2900.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
lpcspifi.c flash/nor/lpcspifi.c: fix bug that prevented clean reset after flash write 2014-11-24 22:14:38 +00:00
Makefile.am flash: New driver for XMC4xxx microcontroller family 2015-11-11 12:08:35 +00:00
mdr.c flash/nor/mdr: add docs, remove memory leak on probe() 2015-04-16 20:29:06 +01:00
mrvlqspi.c flash/nor: mrvlqspi: fix printf formatting issues 2015-03-25 21:39:48 +00:00
non_cfi.c flash: constify driver data structures 2014-10-06 11:57:32 +00:00
non_cfi.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
nrf51.c nrf51: recognize hwid 0084 2015-10-09 13:45:07 +01:00
numicro.c numicro: Integrate Nuvoton NuMicro flash driver. 2015-09-30 22:12:39 +01:00
ocl.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
ocl.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
pic32mx.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
psoc4.c psoc4: add support for Cypress CCG1 family 2015-05-17 21:18:48 +01:00
sim3x.c sim3x: fix build failure with clang 3.6 2015-08-06 13:14:45 +01:00
spi.c flash/nor/spi: Add GigaDevice gd25q16c/32c/128c flash support 2015-11-05 22:28:24 +00:00
spi.h flash: declare fixed arrays const 2014-02-06 22:17:51 +00:00
stellaris.c Fix several format specifiers errors exposed by arm-none-eabi 2015-04-16 20:24:50 +01:00
stm32f1x.c Add more STM32F3 IDs in target/stm32f3.cfg. 2015-02-02 10:29:01 +00:00
stm32f2x.c flash/nor/stm32f2x: Add STM32F469 part 2015-11-03 21:37:54 +00:00
stm32l4x.c Add handling for STM32L4. 2015-10-30 23:20:29 +00:00
stm32lx.c flash/nor/stm32lx: add all the IDs and revisions from current RM 2015-02-12 12:56:46 +00:00
stmsmi.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
str7x.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
str9x.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
str9xpec.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
tcl.c helper/fileio: Use size_t for file size. 2015-11-03 22:14:07 +00:00
tms470.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
virtual.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
xmc4xxx.c flash: New driver for XMC4xxx microcontroller family 2015-11-11 12:08:35 +00:00