zephyr/drivers/flash
Piotr Dymacz 360d70a91e drivers: flash: introduce on-chip flash driver for TI CC13xx/CC26xx
This includes a basic driver for built-in flash on the Texas Intruments
SimpleLink CC13xx/CC26xx SoC series.

The driver makes use of driverlib HAL from TI's SDK and was tested on
two LaunchXL development boards with CC1352R and CC2652R SoCs:

- CC1352R1 LaunchXL
- CC26x2R1 LaunchXL

Tests were done using:

- flash shell sample (samples/drivers/flash_shell)
- littlefs filesystem sample (samples/subsys/fs/littlefs)*
- MCUboot (bootloader/mcuboot/boot/zephyr)*

  * additional changes in DTS for the boards were required (partitions
    table) and are not part of this changeset (will be introduced later)

Some additional information about the implementation:

1. TI's Technical Reference Manual for CC13x2 and CC26x2 points out that
   "An individual 64-bit word can be programmed to change bits 1 to 0"
   but it seems this 'alignment' requirement is handled internally by
   the ROM function and thus 'write-block-size' is set to 1.

2. Interrupts, VIMS and line buffers are disabled during flash content
   update (write or erase) and restored afterwards as recommended by TI.

3. Only RAM to flash write is supported (source of data to be written to
   flash can't point to flash).

4. The driver doesn't take care of flash sector protection disable as
   that functionality is handled by CCFG. Write or erase requests which
   refer to a protected area will fail.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2022-06-06 14:01:27 -07:00
..
CMakeLists.txt drivers: flash: introduce on-chip flash driver for TI CC13xx/CC26xx 2022-06-06 14:01:27 -07:00
flash_esp32.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_gecko.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_handlers.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_ite_it8xxx2.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_mcux_flexspi_hyperflash.c drivers: hyperflash: Use write-block-size property 2022-06-05 14:45:18 +02:00
flash_mcux_flexspi_mx25um51345g.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_mcux_flexspi_nor.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_page_layout.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_priv.h
flash_sam0.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_sam.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_shell.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_simulator.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_stm32_ospi.c drivers: flash: stm32_ospi: fix includes 2022-05-25 11:13:40 +09:00
flash_stm32_qspi.c drivers: flash: stm32: qspi: use ternary and asserts in quad prepare 2022-05-13 08:44:54 -07:00
flash_stm32_v1.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_stm32.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_stm32.h drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_stm32f2x.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_stm32f4x.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_stm32f7x.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_stm32g0x.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_stm32g4x.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_stm32h7x.c drivers: flash: stm32h7x: Fix wrong flash write offset 2022-05-18 10:54:36 +02:00
flash_stm32l4x.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_stm32l5_u5.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_stm32wbx.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
jesd216.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
jesd216.h drivers: flash: jesd216: correct comment mistake 2022-05-13 08:44:54 -07:00
Kconfig drivers: flash: introduce on-chip flash driver for TI CC13xx/CC26xx 2022-06-06 14:01:27 -07: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.cc13xx_cc26xx drivers: flash: introduce on-chip flash driver for TI CC13xx/CC26xx 2022-06-06 14:01:27 -07: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 boards: imx_rt: Don't default FLASH_MCUX_FLEXSPI_XIP to enabled 2022-05-04 10:46:03 -05:00
Kconfig.nios2_qspi
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_nor: Default write_from_nvmc buffer size to 4 2021-12-20 17:52:00 +01: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.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 kconfig: remove Enable from boolean prompts 2022-03-09 15:35:54 +01:00
Kconfig.stm32 drivers: flash stm32 flash driver includes stm32u5 serie 2022-04-13 13:55:34 -07:00
Kconfig.stm32_ospi drivers: flash : introduce a new driver for the OCTOSPI 2022-05-12 14:56:25 -05:00
Kconfig.stm32_qspi kconfig: fix dt_node_has_prop and add nodelabel functions 2022-03-23 13:25:21 +01:00
nrf_qspi_nor.c drivers/flash/nrf_qspi_nor: fix for missing device deactivation. 2022-05-27 15:23:12 -07:00
soc_flash_b91.c drivers: flash: Improve Telink B91 Flash Write and Erase APIs 2022-06-05 14:45:38 +02:00
soc_flash_cc13xx_cc26xx.c drivers: flash: introduce on-chip flash driver for TI CC13xx/CC26xx 2022-06-06 14:01:27 -07:00
soc_flash_lpc.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
soc_flash_mcux.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
soc_flash_nios2_qspi.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
soc_flash_nrf_ticker.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
soc_flash_nrf.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
soc_flash_nrf.h drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
soc_flash_rv32m1.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
spi_flash_at45.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
spi_nor.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
spi_nor.h drivers: flash: spi_nor: add SR3 read and write defines 2022-05-13 08:44:54 -07:00