summaryrefslogtreecommitdiff
path: root/nuttx/drivers/mtd/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/drivers/mtd/Kconfig')
-rw-r--r--nuttx/drivers/mtd/Kconfig57
1 files changed, 53 insertions, 4 deletions
diff --git a/nuttx/drivers/mtd/Kconfig b/nuttx/drivers/mtd/Kconfig
index f7ded475a..6755ffe7a 100644
--- a/nuttx/drivers/mtd/Kconfig
+++ b/nuttx/drivers/mtd/Kconfig
@@ -51,6 +51,13 @@ config RAMMTD_FLASHSIM
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
@@ -113,8 +120,54 @@ config MP25P_MANUFACTURER
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 MP25P_MEMORY_TYPE
+ hex "MP25P 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 MP25P_SUBSECTOR_ERASE
+ bool "Sub-Sector Erase"
+ default n
+ ---help---
+ Some devices (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 MP25P_BYTEWRITE
+ bool "Enable ByteWrite ioctl support"
+ default n
+ ---help---
+ The MP25P 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 MP25P_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
@@ -122,10 +175,6 @@ config MTD_RAMTRON
---help---
SPI-based RAMTRON NVRAM Devices FM25V10
-config MTD_RAM
- bool "Memory bus ram"
- default n
-
config MTD_SST25
bool "SPI-based SST25 FLASH"
default n