nuttx/drivers/mtd
Daniel P. Carvalho f2713d9511 drivers/mtd: Add 4-byte addressing support for W25Q256 and W25Q512.
This commit adds 4-byte address mode support to the Winbond W25 SPI
NOR flash driver (drivers/mtd/w25.c):
- Detect W25_JEDEC_CAPACITY_256MBIT (0x19) and W25_JEDEC_CAPACITY_512MBIT (0x20).
- Send W25_EN4B (0xB7) command to enter 4-byte address mode on initialization
  when chip capacity >= 256Mbit.
- Expand w25_dev_s nsectors to uint32_t to support chips > 128Mbit.
- Add w25_sendaddr() helper supporting both 3-byte and 4-byte addressing
  for sector erase, byte read, page write, and byte write.
- Verified on hardware with Winbond W25Q256JV (256Mbit / 32MB):
  both raw MTD block access at >20MB (>16MB boundary) and SmartFS
  mounting and file reading are verified working.

Assisted-by: gemini-3.8-flash
Signed-off-by: Daniel P. Carvalho <danieloak@gmail.com>
2026-10-08 16:17:04 -03:00
..
.gitignore drivers/mtd: introduce nvblk 2025-08-06 01:53:56 +08:00
at24xx.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
at25.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
at25ee.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
at45db.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
cfi.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
cfi.h drivers/mtd: cfi-flash driver 2025-02-11 17:23:44 +08:00
CMakeLists.txt drivers/mtd: add MX25UW25645G support 2026-08-19 19:16:00 +02:00
dhara.c drivers/: Multiple Drivers Are Registered With World Writable Part 3 2026-07-16 09:49:07 -03:00
filemtd.c drivers/mtd/filemtd: fix nxstyle errors in filemtd.c 2026-09-04 08:51:20 +08:00
ftl.c libs/libc: Fix divide-by-zero in stat() with large filesystem block sizes 2026-07-16 23:37:22 +08:00
gd5f.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
gd25.c drivers/mtd/gd25.c: ensure the device is not in power down mode 2026-09-08 08:59:33 +08:00
gd55.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
hamming.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
is25xp.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
Kconfig drivers/mtd: add MX25UW25645G support 2026-08-19 19:16:00 +02:00
m25px.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
Make.defs drivers/mtd: add MX25UW25645G support 2026-08-19 19:16:00 +02:00
mtd_cfi.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
mtd_config.c drivers/mtd/mtd_config: fix UAF in mtdconfig_unregister_by_path 2026-09-17 11:30:34 -03:00
mtd_config_nvs.c sched/semaphore: Fix pre-existing nxstyle issues in the touched files 2026-09-25 10:37:43 +02:00
mtd_modeltab.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
mtd_nand.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
mtd_nandecc.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
mtd_nandmodel.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
mtd_nandram.c fs/mnemofs: Add mnemofs version 1 support. 2026-05-19 10:29:11 +08:00
mtd_nandscheme.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
mtd_nandwrapper.c fs/mnemofs: Add mnemofs version 1 support. 2026-05-19 10:29:11 +08:00
mtd_onfi.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
mtd_partition.c !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
mtd_progmem.c drivers/mtd: Make compile time check for sane mtd isbad/markbad configuration 2026-06-16 14:12:44 +08:00
mtd_rwbuffer.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
mx25lx.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
mx25rxx.c drivers/mtd/mx25rxx.c: add support for MX25L12873G 2026-05-20 14:50:18 -03:00
mx25uw25645g.c drivers/mtd: add MX25UW25645G support 2026-08-19 19:16:00 +02:00
mx35.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
n25qxxx.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
nullmtd.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
nvblk.c drivers/: Multiple Drivers Are Registered With World Writable Part 3 2026-07-16 09:49:07 -03:00
rammtd.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
ramtron.c style: fix checkpatch issues after debug.h move 2026-04-07 07:50:06 -03:00
rpmsgmtd.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
rpmsgmtd.h drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
rpmsgmtd_server.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
s25fl1.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
sector512.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
skeleton.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
smart.c libs/libc: Fix divide-by-zero in stat() with large filesystem block sizes 2026-07-16 23:37:22 +08:00
sst25.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
sst25xx.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
sst26.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
sst39vf.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
w25.c drivers/mtd: Add 4-byte addressing support for W25Q256 and W25Q512. 2026-10-08 16:17:04 -03:00
w25n.c drivers/mtd/w25n: address review comments 2026-04-23 16:26:44 +02:00
w25qxxxjv.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00