This driver is inspired from the w25qxxdv SPI NOR flash driver which was already implementing the CFI (Common Flash Interface) for its purpose. To handle other NOR flash a flash id table (as Linux do) which contains the geometry for a few SPI NOR flash based on their JEDEC ID has been introduced. We currently support the following flash: - W25Q80 - W25Q16 - W25Q32 - S25FL216K - MX25UM512 The read and write functions are able to handle more then one page at a time and return the number of bytes read or write. Also because every NOR flash expect to disable the write protection before writing or erasing, the write enable command is now part of the write and erase functions. Signed-off-by: Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com> Signed-off-by: Savinay Dharmappa <savinay.dharmappa@intel.com>
101 lines
2.4 KiB
Plaintext
101 lines
2.4 KiB
Plaintext
# Kconfig - 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.
|
|
|
|
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 "Enable Flash shell"
|
|
depends on FLASH_HAS_PAGE_LAYOUT
|
|
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
|
|
help
|
|
Enables API for retrieving the layout of flash memory pages.
|
|
|
|
config SOC_FLASH_NRF
|
|
bool "Nordic Semiconductor nRF flash driver"
|
|
depends on SOC_FAMILY_NRF
|
|
select FLASH_HAS_PAGE_LAYOUT
|
|
select FLASH_HAS_DRIVER_ENABLED
|
|
help
|
|
Enables Nordic Semiconductor nRF flash driver.
|
|
|
|
config SOC_FLASH_NRF_RADIO_SYNC
|
|
bool "Nordic nRFx flash driver synchronized with radio"
|
|
depends on SOC_FLASH_NRF && BT_CTLR
|
|
default y
|
|
help
|
|
Enable synchronization between flash memory driver and radio.
|
|
|
|
config SOC_FLASH_MCUX
|
|
bool "MCUX flash shim driver"
|
|
depends on HAS_MCUX
|
|
select FLASH_HAS_PAGE_LAYOUT
|
|
select FLASH_HAS_DRIVER_ENABLED
|
|
help
|
|
Enables the MCUX flash shim driver.
|
|
WARNING: This driver will disable the system interrupts for
|
|
the duration of the flash erase/write operations. This will
|
|
have an impact on the overall system performance - whether
|
|
this is acceptable or not will depend on the use case.
|
|
|
|
config SOC_FLASH_NIOS2_QSPI
|
|
bool "Nios-II QSPI flash driver"
|
|
depends on HAS_ALTERA_HAL
|
|
select FLASH_HAS_DRIVER_ENABLED
|
|
help
|
|
Enables the Nios-II QSPI flash driver.
|
|
|
|
config SOC_FLASH_NIOS2_QSPI_DEV_NAME
|
|
string "Nios-II QSPI flash device name"
|
|
depends on SOC_FLASH_NIOS2_QSPI
|
|
default "NIOS2_QSPI_FLASH"
|
|
help
|
|
Specify the device name for the QSPI flash driver.
|
|
|
|
source "drivers/flash/Kconfig.gecko"
|
|
|
|
source "drivers/flash/Kconfig.nor"
|
|
|
|
source "drivers/flash/Kconfig.qmsi"
|
|
|
|
source "drivers/flash/Kconfig.stm32"
|
|
|
|
source "drivers/flash/Kconfig.sam0"
|
|
|
|
source "drivers/flash/Kconfig.w25qxxdv"
|
|
|
|
endif
|