[PATCH 00/12] fs: exfat: Add exfat port based on exfat-fuse

Marek Vasut marex at denx.de
Sat Mar 8 21:12:04 CET 2025


Import exfat-fuse libexfat, add U-Boot filesystem layer porting glue
code and wire exfat support into generic filesystem support code. This
adds exfat support to U-Boot.

Fill in generic filesystem interface for mkdir and rm commands.
Make filesystem tests test the generic interface as well as exfat,
to make sure this code does not fall apart.

[1] https://github.com/relan/exfat
    0b41c6d3560d ("CI: bump FreeBSD to 13.1.")

Marek Vasut (12):
  cmd: fs: Add generic mkdir implementation
  cmd: fs: Add generic rm implementation
  test_fs: Allow testing FS_GENERIC
  linux: Add generic struct stat {}
  fs: Add generic fs_devread() implementation
  fs: exfat: Import libexfat from fuse-exfat
  fs: exfat: Add U-Boot porting layer
  fs: exfat: Fix conversion overflow errors
  fs: exfat: Demote filesystem detection failure message to debug()
  configs: sandbox: Enable exfat support
  pytest: requirements.txt: Include setuptools
  test_fs: Add exfat tests

 cmd/fs.c                             |   28 +
 configs/sandbox64_defconfig          |    1 +
 configs/sandbox_defconfig            |    1 +
 fs/Kconfig                           |    2 +
 fs/Makefile                          |    1 +
 fs/exfat/Kconfig                     |    4 +
 fs/exfat/Makefile                    |   13 +
 fs/exfat/byteorder.h                 |   68 ++
 fs/exfat/cluster.c                   |  496 ++++++++++
 fs/exfat/compiler.h                  |   69 ++
 fs/exfat/exfat.h                     |  259 ++++++
 fs/exfat/exfatfs.h                   |  200 +++++
 fs/exfat/io.c                        | 1000 +++++++++++++++++++++
 fs/exfat/lookup.c                    |  225 +++++
 fs/exfat/mount.c                     |  380 ++++++++
 fs/exfat/node.c                      | 1243 ++++++++++++++++++++++++++
 fs/exfat/platform.h                  |   75 ++
 fs/exfat/repair.c                    |  115 +++
 fs/exfat/time.c                      |  175 ++++
 fs/exfat/utf.c                       |  254 ++++++
 fs/exfat/utils.c                     |  192 ++++
 fs/fs.c                              |   22 +
 fs/fs_internal.c                     |  102 +++
 include/exfat.h                      |   24 +
 include/fs.h                         |    3 +-
 include/fs_internal.h                |    2 +
 include/linux/stat.h                 |   45 +-
 test/py/requirements.txt             |    2 +
 test/py/tests/fs_helper.py           |    8 +-
 test/py/tests/test_fs/conftest.py    |   44 +-
 test/py/tests/test_fs/test_basic.py  |   71 +-
 test/py/tests/test_fs/test_ext.py    |  176 ++--
 test/py/tests/test_fs/test_mkdir.py  |   42 +-
 test/py/tests/test_fs/test_unlink.py |   38 +-
 34 files changed, 5199 insertions(+), 181 deletions(-)
 create mode 100644 fs/exfat/Kconfig
 create mode 100644 fs/exfat/Makefile
 create mode 100644 fs/exfat/byteorder.h
 create mode 100644 fs/exfat/cluster.c
 create mode 100644 fs/exfat/compiler.h
 create mode 100644 fs/exfat/exfat.h
 create mode 100644 fs/exfat/exfatfs.h
 create mode 100644 fs/exfat/io.c
 create mode 100644 fs/exfat/lookup.c
 create mode 100644 fs/exfat/mount.c
 create mode 100644 fs/exfat/node.c
 create mode 100644 fs/exfat/platform.h
 create mode 100644 fs/exfat/repair.c
 create mode 100644 fs/exfat/time.c
 create mode 100644 fs/exfat/utf.c
 create mode 100644 fs/exfat/utils.c
 create mode 100644 include/exfat.h

---
Cc: Baruch Siach <baruch at tkos.co.il>
Cc: Francesco Dolcini <francesco.dolcini at toradex.com>
Cc: Heinrich Schuchardt <xypron.glpk at gmx.de>
Cc: Hiago De Franco <hiago.franco at toradex.com>
Cc: Ilias Apalodimas <ilias.apalodimas at linaro.org>
Cc: Nam Cao <namcao at linutronix.de>
Cc: Simon Glass <sjg at chromium.org>
Cc: Sughosh Ganu <sughosh.ganu at linaro.org>
Cc: Tom Rini <trini at konsulko.com>
Cc: u-boot at lists.denx.de

-- 
2.47.2



More information about the U-Boot mailing list