Andreas Bolsch
e44539d66c
Flash, FRAM and EEPROM driver for STM32 QUAD-/OCTOSPI interface
...
- write speed up to 150 kByte/s on STM32F469I-disco (due to
SWD clock and USB connection), up to 1 MByte/s on Nucleo-F767ZI
with external STLink-V3 or Nucleo-G474RE with two W25Q256FV in
dual 4-line mode or STM32H73BI-Disco in octal mode
- tested with STM32L476G-disco (64MBit flash, 3-byte addr),
STM32F412G-Disco, STM32F469I-Disco, STM32F746G-Disco, and
STM32L476G-Disco (all 128Mbit flash, 3-byte addr),
STM32F723E-Disco, STM32F769I-Disco (512Mbit flash, 4-byte addr)
STM32L4R9I-Disco, STM32L4P5G-Disco (512MBit octo-flash, DTR, 4-byte addr)
STM32H745I-Disco, STM32H747I-Disco (two 512MBit flash, 4-byte addr)
STM32H73BI-Disco, STM32H735G-Disco (512MBit octo-flash, DTR, 4-byte addr)
- suitable cfg for Discovery boards included
- limited parsing of SFDP data if flash device not hardcoded
(tested only in single/quad mode as most devices either don't
support SFDP at all or have empty(!) SFDP memory)
- 'set' command for auto detection override (e. g. for EEPROMs)
- 'cmd' command for arbitrary SPI commands (reconfiguration, testing etc.)
- makefile for creation of binary loader files
- tcl/board/stm32f469discovery.cfg superseded by stm32f469i-disco.cfg
- tcl/board/stm32f7discovery.cfg removed as name is ambiguous
(superseded by stm32f746g-disco.cfg vs. stm32f769i-disco.cfg)
- dual 4-line mode tested on Nucleo-F767ZI, Nucleo-H743ZI and Nucleo-H7A3ZI-Q
with two W25Q256FV, and on Nucleo-L496ZP-P and Nucleo-L4R5ZI
with two W25Q128FV, sample cfg files included and on STM32H745I-Disco,
STM32H747I-Disco, STM32H750B-Disco
- read/verify/erase_check uses indirect read mode to work around silicon bug in
H7, L4+ and MP1 memory mapped mode (last bytes not readable, accessing last
bytes causes debug interface to hang)
- octospi supported only in single/dual 1-line, 2-line, 4-line
and single 8-line modes, (not in hyper flash mode)
Requirements:
GPIOs must be initialized appropriately, and SPI flash chip be configured
appropriately (1-line ..., QPI, 4-byte addresses ...). This is board/chip
specific, cf. included cfg files. The driver infers most parameters from
current setting in CR, CCR, ... registers.
Change-Id: I54858fbbe8758c3a5fe58812e93f5f39514704f8
Signed-off-by: Andreas Bolsch <hyphen0break@gmail.com >
Reviewed-on: http://openocd.zylin.com/4321
Tested-by: jenkins
Reviewed-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com >
Reviewed-by: Tomas Vanek <vanekt@fbl.cz >
Reviewed-by: Christopher Head <chead@zaber.com >
2020-11-08 22:46:00 +00:00
..
2017-12-20 19:47:11 +00:00
2019-01-02 21:53:41 +00:00
2020-01-29 06:34:43 +00:00
2015-09-30 22:10:55 +01:00
2020-05-02 15:40:12 +01:00
2020-05-09 14:37:35 +01:00
2020-05-02 15:40:12 +01:00
2020-05-02 15:40:12 +01:00
2020-05-02 15:40:12 +01:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2014-01-08 22:18:18 +00:00
2014-06-01 18:27:09 +00:00
2020-05-09 14:38:40 +01:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2020-05-09 14:38:40 +01:00
2011-04-09 10:14:46 +02:00
2011-04-09 10:16:28 +02:00
2020-05-02 15:40:12 +01:00
2010-12-18 21:04:22 +01:00
2010-12-18 21:04:22 +01:00
2020-01-29 06:34:43 +00:00
2018-11-26 09:31:09 +00:00
2020-05-02 15:40:12 +01:00
2012-03-30 15:56:19 +00:00
2014-06-18 20:27:10 +00:00
2014-01-09 15:22:56 +00:00
2018-11-26 09:31:09 +00:00
2014-01-09 15:22:56 +00:00
2015-08-06 13:15:19 +01:00
2015-08-06 13:15:19 +01:00
2018-07-18 21:05:40 +01:00
2018-07-18 21:05:55 +01:00
2014-01-09 15:22:56 +00:00
2014-01-15 11:38:25 +00:00
2016-02-03 22:10:32 +00:00
2014-03-04 20:18:37 +00:00
2017-04-24 06:25:13 +01:00
2015-04-16 20:30:34 +01:00
2014-07-10 21:18:30 +00:00
2015-11-10 20:27:00 +00:00
2020-01-29 06:34:43 +00:00
2020-11-08 22:46:00 +00:00
2010-03-26 08:42:58 +01:00
2020-05-02 15:40:12 +01:00
2020-04-21 11:18:11 +01:00
2014-04-14 18:15:24 +00:00
2020-05-02 15:40:12 +01:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2010-08-10 09:43:30 +02:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2015-10-21 09:11:09 +01:00
2014-03-29 07:16:00 +00:00
2015-10-30 13:15:31 +00:00
2015-10-30 13:15:31 +00:00
2020-06-06 18:01:15 +01:00
2010-11-09 08:12:51 +01:00
2020-05-02 15:40:12 +01:00
2010-11-09 08:12:51 +01:00
2020-01-29 06:34:43 +00:00
2020-10-03 11:20:59 +01:00
2019-01-02 21:53:41 +00:00
2013-07-15 10:02:32 +00:00
2020-01-29 06:34:43 +00:00
2020-10-30 22:03:14 +00:00
2014-08-02 09:04:19 +00:00
2014-08-02 09:04:19 +00:00
2014-08-02 09:04:19 +00:00
2014-08-02 09:04:19 +00:00
2020-01-29 06:34:43 +00:00
2014-08-02 09:04:19 +00:00
2014-08-02 09:04:19 +00:00
2014-08-02 09:04:19 +00:00
2014-08-11 21:25:56 +00:00
2014-08-11 21:25:56 +00:00
2020-06-06 18:01:22 +01:00
2020-06-06 18:01:31 +01:00
2020-05-02 15:40:12 +01:00
2020-01-29 06:34:43 +00:00
2015-08-06 13:08:40 +01:00
2015-08-06 13:08:40 +01:00
2020-01-29 06:34:43 +00:00
2015-01-26 20:58:06 +00:00
2015-01-26 20:58:06 +00:00
2020-01-29 06:34:43 +00:00
2020-05-02 15:40:12 +01:00
2020-01-29 05:36:56 +00:00
2010-03-26 08:42:58 +01:00
2020-05-09 14:38:40 +01:00
2020-05-09 14:38:40 +01:00
2020-02-24 10:30:53 +00:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2020-05-09 14:38:40 +01:00
2020-05-02 15:40:12 +01:00
2020-05-02 15:40:12 +01:00
2020-05-02 15:40:12 +01:00
2020-01-29 06:34:43 +00:00
2020-05-02 15:40:12 +01:00
2020-02-24 10:30:53 +00:00
2020-05-09 14:37:35 +01:00
2020-05-02 15:40:12 +01:00
2020-02-23 21:32:37 +00:00
2010-04-15 19:10:36 +02:00
2020-01-29 06:34:43 +00:00
2012-02-13 12:03:26 +00:00
2020-05-09 14:38:40 +01:00
2020-05-09 14:38:40 +01:00
2020-05-09 14:37:35 +01:00
2020-05-09 14:37:35 +01:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2019-10-15 09:01:14 +01:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2020-05-02 15:40:12 +01:00
2020-05-02 15:40:12 +01:00
2020-05-09 14:37:35 +01:00
2015-02-22 16:23:48 +00:00
2015-11-03 22:18:30 +00:00
2018-11-26 09:31:09 +00:00
2020-05-02 15:40:12 +01:00
2016-10-17 09:16:33 +01:00
2014-01-08 22:18:25 +00:00
2011-11-17 17:30:03 +00:00
2010-04-15 19:10:36 +02:00
2012-11-06 14:34:16 +00:00
2015-11-03 22:09:17 +00:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2014-09-08 23:05:08 +00:00
2015-01-09 08:47:20 +00:00
2020-05-09 14:38:40 +01:00
2010-08-11 10:53:54 +02:00
2020-05-02 15:40:12 +01:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2016-02-03 22:11:33 +00:00
2020-08-16 11:48:53 +01:00
2013-06-05 19:27:35 +00:00
2020-08-16 11:48:53 +01:00
2014-01-08 22:18:39 +00:00
2015-11-03 22:18:27 +00:00
2016-11-04 21:12:05 +00:00
2016-11-04 21:12:05 +00:00
2018-01-13 11:37:13 +00:00
2014-08-11 22:37:11 +00:00
2020-05-02 15:40:12 +01:00
2020-01-29 06:34:43 +00:00
2015-10-21 09:11:13 +01:00
2018-07-13 09:19:19 +01:00
2020-01-29 06:34:43 +00:00
2015-11-05 22:26:31 +00:00
2020-01-29 06:34:43 +00:00
2020-05-02 15:40:12 +01:00
2020-05-02 15:40:12 +01:00
2020-10-30 22:03:14 +00:00
2020-01-29 06:34:43 +00:00
2020-05-09 14:38:40 +01:00
2011-07-28 11:45:09 +01:00
2012-04-20 15:33:24 +00:00
2012-04-20 15:33:24 +00:00
2010-01-20 10:46:53 -08:00
2020-05-02 15:40:12 +01:00
2020-01-29 06:34:43 +00:00
2010-01-20 10:46:53 -08:00
2020-05-09 14:37:35 +01:00
2020-05-09 14:38:40 +01:00
2010-03-16 10:10:20 +00:00
2015-08-06 13:14:13 +01:00
2010-12-18 21:04:22 +01:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2020-10-03 11:20:43 +01:00
2011-08-24 11:13:26 +02:00
2018-07-31 18:57:17 +01:00
2015-12-29 20:38:12 +00:00
2019-05-20 11:16:42 +01:00
2020-04-21 10:02:08 +01:00
2020-03-09 05:59:39 +00:00
2020-04-21 10:02:08 +01:00
2020-04-21 10:02:08 +01:00
2020-02-06 21:15:55 +00:00
2020-05-09 14:38:40 +01:00
2020-01-29 06:34:43 +00:00
2020-05-02 15:40:12 +01:00
2020-01-29 06:34:43 +00:00
2020-01-29 06:34:43 +00:00
2020-06-14 14:23:23 +01:00
2020-01-29 06:34:43 +00:00
2011-05-29 20:05:01 +02:00
2020-05-09 14:37:35 +01:00
2020-05-09 14:37:35 +01:00
2020-05-09 14:37:35 +01:00
2020-05-09 14:37:35 +01:00
2020-07-26 20:08:31 +01:00
2016-02-29 19:40:20 +00:00
2016-02-29 19:40:20 +00:00
2011-11-21 22:09:09 +00:00
2011-11-21 22:09:09 +00:00
2011-11-21 22:03:17 +00:00
2011-11-21 22:07:19 +00:00
2011-11-22 21:02:55 +00:00
2011-12-06 21:06:15 +00:00
2020-05-24 21:34:18 +01:00
2017-12-12 21:13:55 +00:00
2017-12-12 21:13:55 +00:00
2017-12-12 21:13:55 +00:00
2018-08-14 04:32:12 +01:00
2017-12-12 21:13:55 +00:00
2018-08-14 04:32:12 +01:00
2020-02-23 21:37:30 +00:00
2020-09-05 16:48:26 +01:00
2018-01-13 06:27:11 +00:00
2018-08-14 04:32:12 +01:00
2020-01-27 16:59:21 +00:00
2020-05-09 14:37:35 +01:00
2018-03-07 23:40:55 +00:00
2018-03-07 23:40:55 +00:00
2020-03-07 15:31:02 +00:00
2017-12-12 21:13:55 +00:00
2017-12-12 21:13:55 +00:00
2017-12-12 21:13:55 +00:00
2020-02-08 23:27:18 +00:00
2018-04-23 08:55:11 +01:00
2015-02-22 17:59:55 +00:00
2020-11-08 22:46:00 +00:00
2020-11-08 22:46:00 +00:00
2017-12-12 21:13:55 +00:00
2017-12-12 21:13:55 +00:00
2017-12-12 21:13:55 +00:00
2020-11-08 22:46:00 +00:00
2020-11-08 22:46:00 +00:00
2020-11-08 22:46:00 +00:00
2020-11-08 22:46:00 +00:00
2020-11-08 22:46:00 +00:00
2018-08-14 04:32:12 +01:00
2020-11-08 22:46:00 +00:00
2020-11-08 22:46:00 +00:00
2020-11-08 22:46:00 +00:00
2020-11-08 22:46:00 +00:00
2020-11-08 22:46:00 +00:00
2017-12-12 21:13:55 +00:00
2017-12-12 21:13:55 +00:00
2020-11-08 22:46:00 +00:00
2020-11-08 22:46:00 +00:00
2020-11-08 22:46:00 +00:00
2020-11-08 22:46:00 +00:00
2017-12-12 21:13:55 +00:00
2020-04-21 08:52:48 +01:00
2017-12-12 21:13:55 +00:00
2015-11-12 15:03:18 +00:00
2011-07-28 11:45:09 +01:00
2011-07-28 11:45:09 +01:00
2020-05-09 14:38:40 +01:00
2017-12-12 21:13:55 +00:00
2011-10-25 20:08:58 +00:00
2017-12-12 21:13:55 +00:00
2012-03-30 16:02:14 +00:00
2011-07-28 11:45:09 +01:00
2017-12-12 21:13:55 +00:00
2014-07-10 21:19:35 +00:00
2017-12-12 21:13:55 +00:00
2014-07-10 21:19:35 +00:00
2017-12-12 21:13:55 +00:00
2014-01-09 15:22:42 +00:00
2011-11-07 16:16:33 +00:00
2020-05-09 14:37:35 +01:00
2020-01-29 06:34:43 +00:00
2012-07-19 18:48:06 +00:00
2020-01-29 06:34:43 +00:00
2020-05-02 15:40:12 +01:00
2009-09-04 08:27:08 +00:00
2020-01-29 06:34:43 +00:00
2017-04-23 21:34:34 +01:00
2020-05-02 15:40:12 +01:00
2020-05-02 15:40:12 +01:00
2020-03-24 17:17:02 +00:00
2020-03-24 17:17:02 +00:00
2020-03-24 17:17:02 +00:00
2020-03-24 17:17:02 +00:00
2020-03-24 17:18:31 +00:00
2020-03-24 17:18:31 +00:00
2020-03-24 17:17:02 +00:00
2020-06-06 18:01:15 +01:00
2020-06-06 18:01:22 +01:00
2020-06-06 18:01:31 +01:00
2020-03-24 17:17:02 +00:00
2020-05-02 15:40:12 +01:00
2020-05-02 15:40:12 +01:00
2015-04-24 14:55:16 +01:00
2020-01-29 06:34:43 +00:00
2020-10-30 22:03:10 +00:00
2020-05-09 14:37:35 +01:00
2020-05-09 14:37:35 +01:00
2019-01-02 21:53:41 +00:00
2019-01-02 21:53:41 +00:00
2020-05-09 14:37:35 +01:00
2020-05-09 14:37:35 +01:00
2020-02-24 10:30:53 +00:00
2020-01-29 06:34:43 +00:00
2020-10-30 22:03:10 +00:00
2011-12-23 09:39:48 +00:00
2020-05-02 15:40:12 +01:00
2020-05-09 14:38:40 +01:00
2020-01-29 06:34:43 +00:00
2010-04-26 07:08:55 +02:00
2020-05-02 15:40:12 +01:00
2010-03-26 08:42:58 +01:00
2016-05-05 07:50:59 +01:00
2015-04-14 11:37:40 +01:00
2016-12-08 12:28:12 +00:00
2015-04-24 15:13:03 +01:00
2016-05-21 22:07:39 +01:00
2015-04-14 11:38:19 +01:00
2015-12-29 20:37:39 +00:00
2015-12-18 18:25:45 +00:00
2016-05-05 07:50:59 +01:00
2015-10-30 12:40:40 +00:00
2020-01-29 06:34:43 +00:00