zephyr/drivers/flash/Kconfig
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

107 lines
2.4 KiB
Text

# Flash driver configuration options
# Copyright (c) 2016 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
#
# Flash driver
#
config FLASH_HAS_DRIVER_ENABLED
bool
help
This option is enabled when any flash driver is enabled.
config FLASH_HAS_PAGE_LAYOUT
bool
help
This option is enabled when the SoC flash driver supports
retrieving the layout of flash memory pages.
config FLASH_JESD216
bool
help
Selected by drivers that support JESD216-compatible flash
devices to enable building a common support module.
config FLASH_JESD216_API
bool "Provide API to read JESD216 flash parameters"
depends on FLASH_JESD216
help
This option extends the Zephyr flash API with the ability
to access the Serial Flash Discoverable Parameter section
allowing runtime determination of serial flash parameters
for flash drivers that expose this capability.
menuconfig FLASH
bool "Flash hardware support"
help
Enable support for the flash hardware.
if FLASH
module = FLASH
module-str = flash
source "subsys/logging/Kconfig.template.log_config"
config FLASH_SHELL
bool "Flash shell"
depends on SHELL && FLASH_PAGE_LAYOUT
default y
help
Enable the flash shell with flash related commands such as test,
write, read and erase.
config FLASH_PAGE_LAYOUT
bool "API for retrieving the layout of pages"
depends on FLASH_HAS_PAGE_LAYOUT
default y
help
Enables API for retrieving the layout of flash memory pages.
config FLASH_INIT_PRIORITY
int "Flash init priority"
default KERNEL_INIT_PRIORITY_DEVICE
help
Flash driver device initialization priority. This initialization
priority is used unless the driver implementation has its own
initialization priority
source "drivers/flash/Kconfig.b91"
source "drivers/flash/Kconfig.cc13xx_cc26xx"
source "drivers/flash/Kconfig.at45"
source "drivers/flash/Kconfig.esp32"
source "drivers/flash/Kconfig.it8xxx2"
source "drivers/flash/Kconfig.nrf"
source "drivers/flash/Kconfig.lpc"
source "drivers/flash/Kconfig.mcux"
source "drivers/flash/Kconfig.nios2_qspi"
source "drivers/flash/Kconfig.gecko"
source "drivers/flash/Kconfig.nor"
source "drivers/flash/Kconfig.stm32"
source "drivers/flash/Kconfig.stm32_qspi"
source "drivers/flash/Kconfig.stm32_ospi"
source "drivers/flash/Kconfig.sam0"
source "drivers/flash/Kconfig.sam"
source "drivers/flash/Kconfig.simulator"
source "drivers/flash/Kconfig.rv32m1"
source "drivers/flash/Kconfig.nordic_qspi_nor"
endif # FLASH