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 (11): 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 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 | 5 + 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 | 1 + test/py/tests/fs_helper.py | 8 +- test/py/tests/test_fs/conftest.py | 44 +- test/py/tests/test_fs/fstest_helpers.py | 2 + 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 +- tools/docker/Dockerfile | 1 + 36 files changed, 5202 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 <bar...@tkos.co.il> Cc: Francesco Dolcini <francesco.dolc...@toradex.com> Cc: Heinrich Schuchardt <xypron.g...@gmx.de> Cc: Hiago De Franco <hiago.fra...@toradex.com> Cc: Ilias Apalodimas <ilias.apalodi...@linaro.org> Cc: Nam Cao <nam...@linutronix.de> Cc: Simon Glass <s...@chromium.org> Cc: Sughosh Ganu <sughosh.g...@linaro.org> Cc: Tom Rini <tr...@konsulko.com> Cc: u-boot@lists.denx.de -- 2.47.2