Update flash drivers to use DT_HAS_<compat>_ENABLED Kconfig symbol to expose the driver and enable it by default based on devicetree. We remove 'depend on' Kconfig for symbols that would be implied by the devicetree node existing. Signed-off-by: Kumar Gala <galak@kernel.org>
139 lines
3.7 KiB
Plaintext
139 lines
3.7 KiB
Plaintext
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
config SOC_FLASH_MCUX
|
|
bool "MCUX flash shim driver"
|
|
default y
|
|
depends on DT_HAS_NXP_LPC_IAP_ENABLED || \
|
|
DT_HAS_NXP_KINETIS_FTFA_ENABLED || \
|
|
DT_HAS_NXP_KINETIS_FTFE_ENABLED || \
|
|
DT_HAS_NXP_KINETIS_FTFL_ENABLED
|
|
select FLASH_HAS_PAGE_LAYOUT
|
|
select FLASH_HAS_DRIVER_ENABLED
|
|
select MPU_ALLOW_FLASH_WRITE if ARM_MPU
|
|
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.
|
|
|
|
if SOC_FLASH_MCUX
|
|
|
|
config CHECK_BEFORE_READING
|
|
bool "Verify area before reading it"
|
|
default y if SOC_SERIES_LPC55XXX
|
|
help
|
|
Do a margin check flash command before reading an area.
|
|
This feature prevents erroneous/forbidden reading. Some ECC enabled
|
|
devices will crash when reading an erased or wrongly programmed area.
|
|
|
|
endif # SOC_FLASH_MCUX
|
|
|
|
if DT_HAS_NXP_IMX_FLEXSPI_ENABLED
|
|
|
|
menu "Flexspi flash driver"
|
|
|
|
config FLASH_MCUX_FLEXSPI_NOR
|
|
bool "MCUX FlexSPI NOR driver"
|
|
default y
|
|
depends on DT_HAS_NXP_IMX_FLEXSPI_NOR_ENABLED
|
|
select FLASH_HAS_PAGE_LAYOUT
|
|
select FLASH_HAS_DRIVER_ENABLED
|
|
select MEMC
|
|
select MEMC_MCUX_FLEXSPI
|
|
|
|
config FLASH_MCUX_FLEXSPI_MX25UM51345G
|
|
bool "MCUX FlexSPI MX25UM51345G driver"
|
|
default y
|
|
depends on DT_HAS_NXP_IMX_FLEXSPI_MX25UM51345G_ENABLED
|
|
select FLASH_HAS_PAGE_LAYOUT
|
|
select FLASH_HAS_DRIVER_ENABLED
|
|
select MEMC
|
|
select MEMC_MCUX_FLEXSPI
|
|
|
|
config FLASH_MCUX_FLEXSPI_HYPERFLASH
|
|
bool "MCUX FlexSPI HYPERFLASH driver"
|
|
default y
|
|
depends on DT_HAS_NXP_IMX_FLEXSPI_HYPERFLASH_ENABLED
|
|
select FLASH_HAS_PAGE_LAYOUT
|
|
select FLASH_HAS_DRIVER_ENABLED
|
|
select MEMC
|
|
select MEMC_MCUX_FLEXSPI
|
|
|
|
endmenu
|
|
|
|
if FLASH_MCUX_FLEXSPI_MX25UM51345G
|
|
|
|
choice FLASH_MCUX_FLEXSPI_MX25UM51345G_OPI_MODE
|
|
prompt "FlexSPI MX25UM51345G OPI mode"
|
|
default FLASH_MCUX_FLEXSPI_MX25UM51345G_OPI_DTR
|
|
help
|
|
Select the MX25UM51345G octal flash operation mode(Octal I/O STR
|
|
or Octal I/O DTR).
|
|
|
|
config FLASH_MCUX_FLEXSPI_MX25UM51345G_OPI_STR
|
|
bool "STR"
|
|
|
|
config FLASH_MCUX_FLEXSPI_MX25UM51345G_OPI_DTR
|
|
bool "DTR"
|
|
|
|
endchoice
|
|
|
|
endif # FLASH_MCUX_FLEXSPI_MX25UM51345G
|
|
|
|
config FLASH_MCUX_FLEXSPI_NOR_WRITE_BUFFER
|
|
bool "MCUX FlexSPI NOR write RAM buffer"
|
|
default y
|
|
depends on (FLASH_MCUX_FLEXSPI_NOR || FLASH_MCUX_FLEXSPI_MX25UM51345G)
|
|
help
|
|
Copy the data to a RAM buffer before writing it to the flash.
|
|
This prevents faults when the data to write would be located on the
|
|
flash itself.
|
|
|
|
config FLASH_MCUX_FLEXSPI_HYPERFLASH_WRITE_BUFFER
|
|
bool "MCUX FlexSPI HYPERFLASH write RAM buffer"
|
|
default y
|
|
depends on FLASH_MCUX_FLEXSPI_HYPERFLASH
|
|
help
|
|
Copy the data to a RAM buffer before writing it to the flash.
|
|
This prevents faults when the data to write would be located on the
|
|
flash itself.
|
|
|
|
config FLASH_MCUX_FLEXSPI_XIP
|
|
bool "MCUX FlexSPI flash access with xip"
|
|
default y
|
|
depends on MEMC_MCUX_FLEXSPI
|
|
depends on (CODE_FLEXSPI || CODE_FLEXSPI2 || SOC_SERIES_IMX_RT6XX)
|
|
select XIP
|
|
help
|
|
Allows using the flash API while running in XIP.
|
|
WARNING: It is possible to overwrite the running application itself.
|
|
|
|
if FLASH_MCUX_FLEXSPI_XIP
|
|
|
|
choice FLASH_MCUX_FLEXSPI_XIP_MEM_TARGET
|
|
prompt "FlexSPI drivers relocation target"
|
|
default FLASH_MCUX_FLEXSPI_XIP_MEM_ITCM
|
|
help
|
|
Select the location to run the FlexSPI drivers when using
|
|
the flash API.
|
|
|
|
config FLASH_MCUX_FLEXSPI_XIP_MEM_ITCM
|
|
bool "ITCM"
|
|
select CODE_DATA_RELOCATION
|
|
|
|
config FLASH_MCUX_FLEXSPI_XIP_MEM_SRAM
|
|
bool "SRAM"
|
|
select CODE_DATA_RELOCATION_SRAM
|
|
|
|
endchoice
|
|
|
|
config FLASH_MCUX_FLEXSPI_XIP_MEM
|
|
string
|
|
default "ITCM" if FLASH_MCUX_FLEXSPI_XIP_MEM_ITCM
|
|
default "SRAM" if FLASH_MCUX_FLEXSPI_XIP_MEM_SRAM
|
|
|
|
endif # FLASH_MCUX_FLEXSPI_XIP
|
|
|
|
endif # HAS_MCUX_FLEXSPI
|