271 lines
6.2 KiB
Plaintext
271 lines
6.2 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see misc/tools/kconfig-language.txt.
|
|
#
|
|
|
|
comment "MTD Configuration"
|
|
|
|
config MTD_PARTITION
|
|
bool "Support MTD partitions"
|
|
default n
|
|
---help---
|
|
MTD partitions are build as MTD drivers that manage a sub-region
|
|
of the FLASH memory. The contain the original FLASH MTD driver and
|
|
simply manage all accesses to assure that (1) FLASH accesses are
|
|
always offset to the beginning of the partition, and (2) that FLASH
|
|
accesses do not extend outside of the partition.
|
|
|
|
A FLASH device may be broken up into several partitions managed,
|
|
each managed by a separate MTD driver. The MTD parition interface
|
|
is described in:
|
|
|
|
include/nuttx/mtd.h
|
|
FAR struct mtd_dev_s *mtd_partition(FAR struct mtd_dev_s *mtd, off_t offset, off_t nblocks);
|
|
|
|
Each call to mtd_partition() will create a new MTD driver instance
|
|
managing the sub-region of flash beginning at 'offset' (in blocks)
|
|
and of size 'nblocks' on the device specified by 'mtd'.
|
|
|
|
config MTD_BYTE_WRITE
|
|
bool "Byte write"
|
|
default n
|
|
---help---
|
|
Some devices (such as the EON EN25F80) support writing an arbitrary
|
|
number of bytes to FLASH. This setting enables MTD interfaces to
|
|
support such writes. The SMART file system can take advantage of
|
|
this option if it is enabled.
|
|
|
|
comment "MTD Device Drivers"
|
|
|
|
config RAMMTD
|
|
bool "RAM-based MTD driver"
|
|
default n
|
|
---help---
|
|
Build support for a RAM-based MTD driver.
|
|
|
|
if RAMMTD
|
|
|
|
config RAMMTD_BLOCKSIZE
|
|
int "RAM MTD block size"
|
|
default 512
|
|
|
|
config RAMMTD_ERASESIZE
|
|
int "RAM MTD erase block size"
|
|
default 4096
|
|
|
|
config RAMMTD_ERASESTATE
|
|
hex "Simulated erase state"
|
|
default 0xff
|
|
|
|
config RAMMTD_FLASHSIM
|
|
bool "RAM MTD FLASH Simulation"
|
|
default n
|
|
---help---
|
|
RAMMTD_FLASHSIM will add some extra logic to improve the level of
|
|
FLASH simulation.
|
|
|
|
config RAMMTD_SMART
|
|
bool "SMART block driver support in the RAM MTD driver"
|
|
default n
|
|
---help---
|
|
Builds in additional ioctl and interface code to support the
|
|
SMART block driver / filesystem.
|
|
|
|
endif
|
|
|
|
config MTD_AT24XX
|
|
bool "I2C-based AT24XX eeprom"
|
|
default n
|
|
select I2C
|
|
---help---
|
|
Build support for I2C-based at24cxx EEPROM(at24c32, at24c64,
|
|
at24c128, at24c256)
|
|
|
|
if MTD_AT24XX
|
|
|
|
config AT24XX_SIZE
|
|
int "at24xx size(kByte)"
|
|
default 64
|
|
|
|
config AT24XX_ADDR
|
|
hex "at24xx i2c address"
|
|
default 0x50
|
|
|
|
endif
|
|
|
|
config MTD_AT45DB
|
|
bool "SPI-based AT45DB flash"
|
|
default n
|
|
select SPI
|
|
|
|
if MTD_AT45DB
|
|
|
|
config AT45DB_FREQUENCY
|
|
int "at45db frequency"
|
|
default 1000000
|
|
|
|
config AT45DB_PREWAIT
|
|
bool "enables higher performance write logic"
|
|
default y
|
|
|
|
config AT45DB_PWRSAVE
|
|
bool "enables power save"
|
|
default n
|
|
|
|
endif
|
|
|
|
config MTD_M25P
|
|
bool "SPI-based M25P FLASH"
|
|
default n
|
|
select SPI
|
|
|
|
if MTD_M25P
|
|
|
|
config M25P_SPIMODE
|
|
int "M25P SPI mode"
|
|
default 0
|
|
|
|
config M25P_MANUFACTURER
|
|
hex "M25P manufacturers ID"
|
|
default 0x20
|
|
---help---
|
|
Various manufacturers may have produced the parts. 0x20 is the manufacturer ID
|
|
for the STMicro MP25x serial FLASH. If, for example, you are using the a Macronix
|
|
International MX25 serial FLASH, the correct manufacturer ID would be 0xc2.
|
|
|
|
config M25P_MEMORY_TYPE
|
|
hex "M25P memory type ID"
|
|
default 0x20
|
|
---help---
|
|
The memory type for M25 "P" series is 0x20, but the driver also supports "F" series
|
|
devices, such as the EON EN25F80 part which adds a 4K sector erase capability. The
|
|
ID for "F" series parts from EON is 0x31.
|
|
|
|
config M25P_SUBSECTOR_ERASE
|
|
bool "Sub-Sector Erase"
|
|
default n
|
|
---help---
|
|
Some devices (such as the EON EN25F80) support a smaller erase block
|
|
size (4K vs 64K). This option enables support for sub-sector erase.
|
|
The SMART file system can take advantage of this option if it is enabled.
|
|
|
|
config M25P_BYTEWRITE
|
|
bool "Enable ByteWrite ioctl support"
|
|
default n
|
|
---help---
|
|
The M25P series of devices allow writing to a page with less than a full-page
|
|
size of data. In this case, only the written bytes are updated without affecting
|
|
the other bytes in the page. The SMART FS requires this option for proper operation.
|
|
|
|
endif
|
|
|
|
config MTD_SMART
|
|
bool "Sector Mapped Allocation for Really Tiny (SMART) Flash support"
|
|
default y
|
|
select M25P_BYTEWRITE
|
|
---help---
|
|
The MP25x series of Flash devices are typically very small and have a very large
|
|
erase block size. This causes issues with the standard Flash Translation Layer
|
|
block driver since it tries to allocate a RAM block the size of a flash erase
|
|
block, which is typically 64K. This block driver uses a different approach
|
|
to sacrifice performance for RAM memory footprint by saving data in sectors
|
|
(typically 2K - 4K based on memory size) and relocating sectors as needed when
|
|
an erase block needs to be erased.
|
|
|
|
config MTD_SMART_SECTOR_SIZE
|
|
int "SMART Device sector size"
|
|
depends on MTD_SMART
|
|
default 1024
|
|
---help---
|
|
Sets the size of a single alloction on the SMART device. Larger sector sizes
|
|
reduce overhead per sector, but cause more wasted space with a lot of smaller
|
|
files.
|
|
|
|
config MTD_RAMTRON
|
|
bool "SPI-based RAMTRON NVRAM Devices FM25V10"
|
|
default n
|
|
select SPI
|
|
---help---
|
|
SPI-based RAMTRON NVRAM Devices FM25V10
|
|
|
|
config MTD_SST25
|
|
bool "SPI-based SST25 FLASH"
|
|
default n
|
|
select SPI
|
|
|
|
if MTD_SST25
|
|
|
|
config SST25_SPIMODE
|
|
int "SST25 SPI Mode"
|
|
default 0
|
|
|
|
config SST25_SPIFREQUENCY
|
|
int "SST25 SPI Frequency"
|
|
default 20000000
|
|
|
|
config SST25_READONLY
|
|
bool "SST25 Read-Only FLASH"
|
|
default n
|
|
|
|
config SST25_SECTOR512
|
|
bool "Simulate 512 byte Erase Blocks"
|
|
default n
|
|
|
|
config SST25_SLOWWRITE
|
|
bool
|
|
default y
|
|
|
|
config SST25_SLOWREAD
|
|
bool
|
|
default n
|
|
|
|
endif
|
|
|
|
config MTD_SST39FV
|
|
bool "SST39FV NOR FLASH"
|
|
default n
|
|
---help---
|
|
Selects 16-bit SST NOR FLASH. This includes support for:
|
|
|
|
SST39FV1601/SST39FV1602: 2Mb
|
|
SST39FV3201/SST39FV3202: 4Mb
|
|
|
|
if MTD_SST39FV
|
|
|
|
config SST39VF_BASE_ADDRESS
|
|
hex "SST39FV bass address"
|
|
default 0x00000000
|
|
---help---
|
|
This is the address where the SST29VF FLASH can be found in memory.
|
|
|
|
endif
|
|
|
|
config MTD_W25
|
|
bool "SPI-based W25 FLASH"
|
|
default n
|
|
select SPI
|
|
|
|
if MTD_W25
|
|
|
|
config W25_SPIMODE
|
|
int "W25 SPI Mode"
|
|
default 0
|
|
|
|
config W25_SPIFREQUENCY
|
|
int "W25 SPI Frequency"
|
|
default 20000000
|
|
|
|
config W25_READONLY
|
|
bool "W25 Read-Only FLASH"
|
|
default n
|
|
|
|
config W25_SECTOR512
|
|
bool "Simulate 512 byte Erase Blocks"
|
|
default n
|
|
|
|
config W25_SLOWREAD
|
|
bool
|
|
default n
|
|
|
|
endif
|