zephyr/drivers/flash
Peter Marheine d4549ed808 it8xxx2: generalize ILM support
Executing code out of RAM on IT8xxx2 requires that the relevant
addresses be mapped onto the CPU's instruction memory bus, referred to
by ITE documentation as Instruction Local Memory (ILM). ILM mappings
configure blocks of RAM to be used for accesses to chosen addresses when
performing instruction fetch, instead of the memory that would normally
be accessed at that address.

ILM must be used for some chip features (particularly Flash
self-programming, to execute from RAM while writing to Flash), and has
historically been configured in the Flash driver. The RAM for that was
hard-coded as a single 4k block in the linker script.  Configuring ILM
in the flash driver is confusing because it is used by other SoC code as
well, currently in code that cannot depend on the Flash being functional
or in hand-selected functions that seem performance-critical.

This change moves ILM configuration to a new driver and dynamically
allocates RAM to ILM in the linker script, allowing software use of the
entire 64k RAM depending on configuration.  This makes ILM configuration
more discoverable and makes it much easier to correctly support the
CODE_DATA_RELOCATION feature on this SoC.

Signed-off-by: Peter Marheine <pmarheine@chromium.org>
2022-10-21 20:31:47 +02:00
..
CMakeLists.txt drivers: flash: Add xmc4xxx flash drivers 2022-10-03 13:56:49 +02:00
Kconfig drivers: flash: Add xmc4xxx flash drivers 2022-10-03 13:56:49 +02:00
Kconfig.at45
Kconfig.b91
Kconfig.cadence_qspi_nor drivers: flash: Add Cadence QSPI NOR Flash Driver 2022-09-01 14:30:59 -04:00
Kconfig.cc13xx_cc26xx
Kconfig.esp32
Kconfig.gd32 drivers: flash: introduce gd32 fmc driver 2022-09-08 10:13:05 +02:00
Kconfig.gecko
Kconfig.it8xxx2 it8xxx2: generalize ILM support 2022-10-21 20:31:47 +02:00
Kconfig.lpc drivers: flash: soc_flash_lpc: enable support for lpc54xxx IAP 2022-08-25 08:26:53 -05:00
Kconfig.mcux arm: rename default RAM region from 'SRAM' to 'RAM' 2022-10-03 10:09:53 +02:00
Kconfig.nios2_qspi
Kconfig.nor
Kconfig.nordic_qspi_nor
Kconfig.nrf drivers: flash: soc_flash_nrf: Account for ticker in timeout 2022-10-13 16:06:08 +09:00
Kconfig.rv32m1
Kconfig.sam
Kconfig.sam0
Kconfig.simulator
Kconfig.smartbond drivers: flash: Add driver for smartbond 2022-08-31 20:32:03 +02:00
Kconfig.stm32
Kconfig.stm32_ospi drivers: flash: octo spi for stm32 with DMA 2022-09-08 10:07:21 +00:00
Kconfig.stm32_qspi
Kconfig.xmc4xxx drivers: flash: Add xmc4xxx flash drivers 2022-10-03 13:56:49 +02:00
flash_cadence_qspi_nor.c drivers: flash: Add Cadence QSPI NOR Flash Driver 2022-09-01 14:30:59 -04:00
flash_cadence_qspi_nor_ll.c includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
flash_cadence_qspi_nor_ll.h drivers: flash: Add Cadence QSPI NOR Flash Driver 2022-09-01 14:30:59 -04:00
flash_esp32.c
flash_gd32.c drivers: flash: introduce gd32 fmc driver 2022-09-08 10:13:05 +02:00
flash_gd32.h drivers: flash: introduce gd32 fmc driver 2022-09-08 10:13:05 +02:00
flash_gd32_v1.c drivers/flash/gd32_vX: add missing kernel header 2022-10-17 14:39:39 +09:00
flash_gd32_v2.c drivers/flash/gd32_vX: add missing kernel header 2022-10-17 14:39:39 +09:00
flash_gd32_v3.c drivers/flash/gd32_vX: add missing kernel header 2022-10-17 14:39:39 +09:00
flash_gecko.c
flash_handlers.c
flash_ite_it8xxx2.c it8xxx2: generalize ILM support 2022-10-21 20:31:47 +02:00
flash_mcux_flexspi_hyperflash.c includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
flash_mcux_flexspi_mx25um51345g.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
flash_mcux_flexspi_nor.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
flash_page_layout.c include: add missing errno.h include 2022-10-11 18:05:17 +02:00
flash_priv.h
flash_sam.c
flash_sam0.c
flash_shell.c drivers: flash: shell: Add flash shell tools 2022-10-06 22:35:57 +00:00
flash_simulator.c drivers: s/DT_CHILD(DT_DRV_INST(n), ...)/DT_INST_CHILD(n, ...) 2022-09-06 08:45:25 -07:00
flash_smartbond.c drivers: flash: Add driver for smartbond 2022-08-31 20:32:03 +02:00
flash_stm32.c devices: constify device pointers initialized at compile time 2022-08-22 17:08:26 +02:00
flash_stm32.h
flash_stm32_ospi.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
flash_stm32_qspi.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
flash_stm32_v1.c
flash_stm32f2x.c
flash_stm32f4x.c
flash_stm32f7x.c
flash_stm32g0x.c drivers: flash: stm32: allow to overwrite zeros 2022-10-17 10:14:32 +02:00
flash_stm32g4x.c drivers: flash: stm32: allow to overwrite zeros 2022-10-17 10:14:32 +02:00
flash_stm32h7x.c devices: constify device pointers initialized at compile time 2022-08-22 17:08:26 +02:00
flash_stm32l4x.c drivers: flash: stm32: allow to overwrite zeros 2022-10-17 10:14:32 +02:00
flash_stm32l5_u5.c drivers: flash: stm32: allow to overwrite zeros 2022-10-17 10:14:32 +02:00
flash_stm32wbx.c drivers: flash: stm32: allow to overwrite zeros 2022-10-17 10:14:32 +02:00
jesd216.c
jesd216.h
nrf_qspi_nor.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
soc_flash_b91.c include: add missing kernel.h include 2022-10-11 18:05:17 +02:00
soc_flash_cc13xx_cc26xx.c include: add missing zephyr/irq.h include 2022-10-20 22:52:09 +09:00
soc_flash_lpc.c drivers: flash: soc_flash_lpc: enable support for lpc54xxx IAP 2022-08-25 08:26:53 -05:00
soc_flash_mcux.c flash: nxp: enabling lpc55s36's FMC 2022-08-25 10:24:41 -05:00
soc_flash_nios2_qspi.c
soc_flash_nrf.c
soc_flash_nrf.h drivers: flash: soc_flash_nrf: Account for ticker in timeout 2022-10-13 16:06:08 +09:00
soc_flash_nrf_ticker.c drivers: flash: nrf: Fix ticker stop user id value 2022-09-05 17:36:48 +02:00
soc_flash_rv32m1.c
soc_flash_xmc4xxx.c drivers: flash: soc_flash_xmc4xxx: Add missing kernel.h header 2022-10-20 15:41:39 +02:00
spi_flash_at45.c
spi_nor.c drivers: flash: spi_nor: fix driver initialization error 2022-09-14 16:13:35 +01:00
spi_nor.h