Commit graph

62 commits

Author SHA1 Message Date
Julian Oes
7e46d282eb drivers/mtd: Add W25N SPI NAND flash driver
Add MTD driver for Winbond W25N series SPI NAND flash.

Currently supports W25N01GV (1Gbit/128MB).

Features:
- Standard SPI interface with configurable frequency (up to 104 MHz)
- Hardware ECC enabled by default
- Block erase with sleep-based wait (releases SPI bus)
- Page read/write with busy-wait for fast operations

Limitations:
- No bad block management (BBM). Factory bad blocks and runtime bad
  blocks are not tracked.
- No bad block table (BBT) scanning at initialization.
- No Quad SPI support (standard SPI only).
- No access to spare area (64 bytes/page) or OTP region.

Tested using:
- Board with STM32H743
- W25N01GV on SPI at 96 MHz with DMA enabled
- Flash mounted using littlefs
- Tested using sdbench:
  - Sequential write speed of 1760 KB/s
  - Sequential read speed of 4900 KB/s

Signed-off-by: Julian Oes <julian@oes.ch>
2025-12-19 10:00:33 +08:00
Laczen JMS
c506c25f19 drivers/mtd: introduce nvblk
NVBLK provides a block device that operates on top of a non volatile
memory (as a mtd device) that enables wear levelling for non volatile
memory. It's operation is similar to the dhara wear levelling library,
but nvblk is meant to be used on smaller (nor, mram, rram) memory.

I am also the author and maintainer of the nvblk library.

A block device can be created during startup by using:
```
nvblk_initialize(0, mtd, CONFIG_MTD_NVBLK_DEFAULT_LBS,
                         CONFIG_MTD_NVBLK_DEFAULT_IOBS,
                         CONFIG_MTD_NVBLK_DEFAULT_SPEB);
```
and a fat filesystem on top of this as:
```
nsh> mkfatfs /dev/mtdblock0
nsh> mount -t vfat /dev/mtdblock0 /mnt
```
this fat filesystem can then be used:
```
nsh> echo "test" > /mnt/test.txt
nsh> cat test.txt
test
nsh>
```

Signed-off-by: Laczen JMS <laczenjms@gmail.com>
2025-08-06 01:53:56 +08:00
zhengyu9
2c4285d9ac mtd/mtd_cfi: cfi flash bind to mtd interface
Bind cfi flash driver with the existing mtd interface

Signed-off-by: zhengyu9 <zhengyu9@xiaomi.com>
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2025-02-11 17:23:44 +08:00
Tim Hardisty
acd7e44cad Add GD55 QSPI NOR Flash support 2025-01-17 09:07:22 +08:00
Alin Jerpelea
286d37026c drivers: migrate to SPDX identifier
Most tools used for compliance and SBOM generation use SPDX identifiers
This change brings us a step closer to an easy SBOM generation.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2024-11-06 18:02:25 +08:00
Saurav Pal
1bec133385 drivers/mtd/mtd_nandram: Adds virtual NAND Flash device simulator.
Adds virtual NAND Flash device simulator, NAND flash log wrapper, and documentation for it.

Signed-off-by: Saurav Pal <resyfer.dev@gmail.com>
2024-03-04 10:38:08 -03:00
TimJTi
222ca5b040 Add MTD for AT25 eeprom 2024-01-04 09:25:52 -08:00
guohao15
d4cebd5d77 mtd:add dhara compatiblity layer
to support dhara ftl for fatfs

Signed-off-by: guohao15 <guohao15@xiaomi.com>
2023-08-22 23:16:14 +08:00
田昕
f6ebbe4429 drivers/mtd:init commit of power-loss resilient cfg
Signed-off-by: 田昕 <tianxin7@xiaomi.com>
2022-09-15 17:46:56 +08:00
wangbowen6
c754df6411 drivers/mtd: add rpmsg mtd support
Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>
2022-09-09 19:27:57 +08:00
Petro Karashchenko
e71b66c792 drivers/mtd: add MTD null driver support
- fix memory leak during RAM MTD initialization
- fix calculations for FILE MTD device with customized
  block and erase sizes

Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2021-12-05 03:11:02 -06:00
jturnsek
f57ff30545 Removing FLexSPI NOR driver 2021-04-12 17:22:14 -03:00
jturnsek
7453e76d98 FlexSPI NOR driver 2021-04-12 11:35:44 -03:00
Alin Jerpelea
e5b6305f4a drivers: Author Gregory Nutt: update licenses to Apache
Gregory Nutt has submitted the SGA and we can migrate the licenses
 to Apache.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-03-04 18:32:27 -08:00
kyChu
03a47a5fbd Merged in kyChuGit/nuttx/driver_update (pull request #1073)
Driver update

* drivers/mtd/Make.defs:  Add MTD driver for QuadSPI-based Winbond NOR FLASH

* stm32l4/stm32l4_qspi.c:  the "QSPI_DMA_PRIO" has been defined above

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-11-21 12:10:49 +00:00
YanLin Zhu
bcdf9074fe drivers/mtd/gd5f.c: Add gigadevice SPI NAND FLASH driver. 2019-09-15 08:33:22 -06:00
Xiang Xiao
247414c6ad drivers/mtd and other MTD drivers: Remove mtd_procfsoperations since we can now get the same information from inode 2018-11-08 09:46:11 -06:00
wangyanjiong
25f2bcea38 drivers/mtd: Add gd25 driver 2018-08-28 06:31:54 -06:00
Ekaterina Kovylova
59a5c24739 drivers/mtd: Add a driver for Macronix MX35LFxGE4AB serial NAND flash. 2017-11-29 07:15:36 -06:00
Simon Piriou
b1f50490bd MTD: Add driver for Macronix QuadSPI flash memory 2017-08-06 10:51:17 -06:00
Juha Niskanen
797e3c3ca4 mtd: build RAMTRON and AT45DB drivers only if selected 2017-05-11 07:17:29 -06:00
Gregory Nutt
a70ea9d3bc Typos withim mtd/ with Macronix MX25L. In NuttX/drivers/mtd/Make.defs letters X between M and 25 are missing. Noted by Oleg Evseev. 2017-01-30 07:26:38 -06:00
Aleksandr Vyhovanec
b0f973d901 MTD: SPI-based driver for Macronix MX25L3233F or MX25L6433F. 2016-09-02 11:00:04 -06:00
Gregory Nutt
03c44c3583 Merged in marten_svanfeldt/nuttx-public/for_upstream/is25 (pull request #44)
Added driver of IS25xP SPI flash devices
2016-06-09 09:30:34 -06:00
Marten Svanfeldt
edeb2eed4e Added driver of IS25xP SPI flash devices
Based on sst25xx driver

Signed-off-by: Marten Svanfeldt <marten@intuitiveaerial.com>
2016-06-09 05:13:06 +02:00
Gregory Nutt
a18dbfda6e Remove drivers/mtd/flash_eraseall.c. It is not used in the OS and is just a dumb wrapper around the MDIOC_BULKERASE IOCTL call. 2016-06-02 10:44:13 -06:00
Sebastien Lorquet
f4fa4799f7 Add a driver for SST26F spi/qspi flash devices (SPI mode only) 2016-05-10 11:09:15 -06:00
Gregory Nutt
e8f0965d35 Mostly cosmetic changes from review of last PR 2016-04-17 14:13:44 -06:00
ziggurat29
1b9d837df3 add MTD support for Micron N25Qxxx family of QSPI flash 2016-04-17 12:20:07 -05:00
Ken Pettit
5821af1bbe drivers/mtd: Add support for /dev/smart loop device. From Ken Petit 2015-11-28 09:00:26 -06:00
Gregory Nutt
ef59f83a38 drivers/mtd/mtd_progmem.c: Add an upper-half driver that can be used with any FLASH library that provides the itnerfaces defined in include/nuttx/progmem.h 2015-11-12 13:40:18 -06:00
Gregory Nutt
91429433f6 Correct naming of Spansion part. S25FL1, not ST25FL1 2015-11-07 11:51:09 -06:00
Gregory Nutt
94ecf7ebad drivers/mtd/st25fl1.c: Add a driver for ST25FL1*K QuadSPI FLASH parts 2015-08-25 09:10:12 -06:00
Gregory Nutt
8516551e54 Add an MTD layer that will add read-ahead or write buffering to any MTD driver (incomplete) 2014-07-11 11:20:11 -06:00
Gregory Nutt
30c34c07cf Add an MTD driver to wrap another MTD driver and makes is sector size look like 512 bytes 2014-03-24 17:45:45 -06:00
Gregory Nutt
e4471dc8e0 procfs/: Extenstive architectural changes and enhancements by Ken Pettit 2013-12-12 09:21:55 -06:00
Gregory Nutt
5a18f048ce Add MTD SST25 driver for larger SST25 parts. From Ken Pettit 2013-11-28 08:04:46 -06:00
Gregory Nutt
5fb0062d2d SAMA5 NAND: A few bug fixes for integration. Still lots more to do 2013-11-27 11:04:40 -06:00
Gregory Nutt
3faa880ef1 MTD NAND: Beginning of software ECC logic 2013-11-18 09:43:44 -06:00
Gregory Nutt
d54832a942 More NAND stuff 2013-11-17 12:22:09 -06:00
Gregory Nutt
0e7a8668a5 Continuing NAND integration 2013-11-17 08:56:30 -06:00
Gregory Nutt
03b9f5a8e6 More NAND logic (still not complete) 2013-11-16 18:26:07 -06:00
Gregory Nutt
854e50b48e Further NAND support 2013-11-16 12:22:43 -06:00
Gregory Nutt
7ccbbe07cb Further NAND development 2013-11-16 11:46:35 -06:00
Gregory Nutt
e53ba01b64 Add support for ONFI compatible NAND devices (NAND logic still incomplete) 2013-11-15 14:11:21 -06:00
Gregory Nutt
b01900d7e6 Add an MTD device wrapper that can used to provide a /dev/config that can be used for retaining configuration data. From Ken Pettit 2013-11-01 07:39:20 -06:00
Gregory Nutt
25d5706ca3 SMART block driver plus changes to M25P and RAM drivers needed for SMART support 2013-04-30 19:10:54 -06:00
Gregory Nutt
4d4ece78af Add MTD partition support plus fix some typos in comments 2013-04-30 12:37:34 -06:00
patacongo
69fd9e1415 Add a driver for the SST30VF NOR FLASH parts
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5640 42af7a65-404d-4744-a932-0658087f49c3
2013-02-11 21:44:00 +00:00
patacongo
a5fbf66049 Don't build drivers/mtd unless CONFIG_MTD is defined (Denis Carikli)
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5519 42af7a65-404d-4744-a932-0658087f49c3
2013-01-15 00:03:58 +00:00