zephyr/drivers/flash
Thomas Stranger cfac53b76f drivers: flash: stm32g0: dual bank handling
This commit fixes dual bank flash handling on stm32g0 targets.
In contrast to other Series (G4, L5) the flash page size does not change
in single bank configuration (2KiB in both configurations).

nSWAP_BANK:
While the reference manual(RM) only documents:
"This bit selects the bank that is the subject of empty check upon boot"
as expected, this behaves similar to BFB2 on G4 and SWAP_BANK on L5.
It has been observed that this bit swaps the address mapping of bank1
and bank2, regardless of DUAL_BANK bit being set or not.
As documented in the RM the nSWAP_BANK bit is ignored when the BOOT_LOOK
bit is set. This applies to the empty check as well as the address
mapping.

On this Series FLASH_CR_BKER must be set in single-bank as well as
dual-bank configuration for erase operations on bank2 regardless of
the swap status.

On a G0B1RE (dev-id: 0x467) I could not observe a difference between
DUAL_BANK flash option bit set and not.
It this may be different on 256KiB Flash targets.
The HAL indicates that "FLASH_SALES_TYPE_0" only uses a single bank if
OB_DUAL_BANK_VALUE is not set, but as I don't know which SoC this is
and I can't test the behaviour and the driver does not take this into
account.

Signed-off-by: Thomas Stranger <thomas.stranger@outlook.com>
2021-11-17 11:06:59 -05:00
..
CMakeLists.txt drivers: flash: the chosen_flash variable was not read properly 2021-11-02 13:23:56 +01:00
flash_esp32.c soc: riscv: esp32c3: drivers: flash: add support 2021-10-28 06:47:21 -04:00
flash_gecko.c drivers: flash: remove usage of device_pm_control_nop 2021-04-28 10:55:35 -04:00
flash_handlers.c drivers/flash: Add missing flash_get_parameters user space handler 2021-07-29 18:26:28 -04:00
flash_ite_it8xxx2.c flash: it8xxx2: add a short delay before #CS be driven high 2021-08-18 20:10:05 -04:00
flash_mcux_flexspi_hyperflash.c drivers: flash: added flexspi hyperflash. 2021-10-19 16:42:12 -05:00
flash_mcux_flexspi_mx25um51345g.c drivers: flash: mcux flexspi nor: Fix write on arbitrary offset 2021-07-15 06:47:53 -04:00
flash_mcux_flexspi_nor.c drivers: flash: mcux flexspi nor: Fix write on arbitrary offset 2021-07-15 06:47:53 -04:00
flash_page_layout.c flash_page_layout: refactor flash_page_get_info 2021-07-10 14:48:22 -04:00
flash_priv.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
flash_sam.c drivers: flash_sam: fix flash_sam_write_page 2021-08-11 11:29:04 -04:00
flash_sam0.c drivers: flash: bugfix: set atmel SAM0 write-block-size 2021-05-25 11:59:45 -05:00
flash_shell.c drivers/flash/flash_shell: remove flash_write_protection_set() usage 2021-03-29 13:43:55 -04:00
flash_simulator.c drivers/flash/flash_simulator: allow to disable statistic 2021-09-01 12:10:19 +02:00
flash_stm32.c drivers: flash: stm32: wait for CFGBSY & BSY2 in wait_flash_idle 2021-11-17 11:06:59 -05:00
flash_stm32.h drivers: flash: stm32: wait for CFGBSY & BSY2 in wait_flash_idle 2021-11-17 11:06:59 -05:00
flash_stm32_qspi.c include: dt-bindings: remove dma header for stm32 soc 2021-07-22 04:52:53 -04:00
flash_stm32_v1.c drivers: flash_stm32_v1: fix a potential unaligned access 2021-06-08 11:15:59 -05:00
flash_stm32f2x.c drivers/flash: STM32: Adding flash driver for nucleo_f207zg 2021-06-17 12:40:39 +02:00
flash_stm32f4x.c drivers: flash: stm32f4: implement data cache errata 2021-06-28 14:17:40 -04:00
flash_stm32f7x.c drivers: flash: stm32f7: Flush ART cache before Flash erase 2021-06-28 14:17:40 -04:00
flash_stm32g0x.c drivers: flash: stm32g0: dual bank handling 2021-11-17 11:06:59 -05:00
flash_stm32g4x.c drivers: flash: stm32g4: implement data cache errata 2021-06-28 14:17:40 -04:00
flash_stm32h7x.c drivers/flash: stm32h7: Fixed range validation 2021-05-05 11:00:20 +02:00
flash_stm32l4x.c drivers: flash: stm32f4: Flush caches after erase 2021-06-28 12:35:41 -04:00
flash_stm32l5x.c drivers/flash: stm32l5: Adding flash driver for stm32l5x series 2021-08-04 10:26:06 -05:00
flash_stm32wbx.c drivers: flash: stm32wb: Flush caches after erase 2021-04-20 12:44:14 +02:00
jesd216.c drivers: flash: jesd216: add support for DW16 decoding 2021-01-18 16:58:09 -05:00
jesd216.h drivers: flash: jesd216: improve support for address size selection 2021-04-27 14:21:15 +02:00
Kconfig drivers: flash: introduce new Telink B91 Flash driver 2021-07-30 19:53:04 -04:00
Kconfig.at45 drivers: flash: spi nor: Add missing flash layout conf 2020-11-17 16:44:03 -05:00
Kconfig.b91 drivers: flash: introduce new Telink B91 Flash driver 2021-07-30 19:53:04 -04:00
Kconfig.esp32 soc: riscv: esp32c3: drivers: flash: add support 2021-10-28 06:47:21 -04:00
Kconfig.gecko drivers/flash: select to allow flash write by MPU on ARM SoCs 2021-01-25 08:59:01 -05:00
Kconfig.it8xxx2 ite: drivers/flash: add flash driver for it8xxx2 2021-06-22 15:15:20 -04:00
Kconfig.lpc drivers: soc_flash_lpc: LPC legacy flash driver 2021-01-23 08:01:00 -05:00
Kconfig.mcux drivers: flash: added flexspi hyperflash. 2021-10-19 16:42:12 -05:00
Kconfig.nios2_qspi license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
Kconfig.nor drivers: flash: spi nor: Add missing flash layout conf 2020-11-17 16:44:03 -05:00
Kconfig.nordic_qspi_nor drivers: flash: nrf_qspi: support JESD216 API 2021-01-18 16:58:09 -05:00
Kconfig.nrf drivers/flash: select to allow flash write by MPU on ARM SoCs 2021-01-25 08:59:01 -05:00
Kconfig.rv32m1 kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.sam drivers: flash: Kconfig.sam: -depends on and +dfu sample exclude 2021-09-02 13:23:47 -04:00
Kconfig.sam0 drivers/flash: select to allow flash write by MPU on ARM SoCs 2021-01-25 08:59:01 -05:00
Kconfig.simulator drivers/flash/flash_simulator: allow to disable statistic 2021-09-01 12:10:19 +02:00
Kconfig.stm32 drivers/flash: stm32l5: Adding flash driver for stm32l5x series 2021-08-04 10:26:06 -05:00
Kconfig.stm32_qspi drivers/flash: flash_stm32_qspi: Set DMA as optional 2021-01-15 10:29:30 -05:00
nrf_qspi_nor.c drivers/flash/nrf_qspi_nor: Modify qspi_erase loop condition 2021-11-09 16:02:26 -06:00
soc_flash_b91.c drivers: flash: introduce new Telink B91 Flash driver 2021-07-30 19:53:04 -04:00
soc_flash_lpc.c drivers: flash: remove usage of device_pm_control_nop 2021-04-28 10:55:35 -04:00
soc_flash_mcux.c drivers: flash: remove usage of device_pm_control_nop 2021-04-28 10:55:35 -04:00
soc_flash_nios2_qspi.c drivers: flash: remove usage of device_pm_control_nop 2021-04-28 10:55:35 -04:00
soc_flash_nrf.c drivers: flash: remove usage of device_pm_control_nop 2021-04-28 10:55:35 -04:00
soc_flash_nrf.h drivers/flash/soc_flash_nrf: Include additional headers 2021-03-04 13:55:56 +01:00
soc_flash_nrf_ticker.c Bluetooth: Controller: Propagate ticks_drift in the ticker callback 2021-09-17 14:30:07 +02:00
soc_flash_rv32m1.c drivers: flash: remove usage of device_pm_control_nop 2021-04-28 10:55:35 -04:00
spi_flash_at45.c drivers: use common PM action callback naming 2021-11-03 20:27:18 -04:00
spi_nor.c flash: spi_nor: fix building on XCC 2021-08-31 07:36:28 -04:00
spi_nor.h drivers: flash: spi-nor: add support for 4-byte addressing 2021-04-27 14:21:15 +02:00