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 <[email protected]> Cc: Francesco Dolcini <[email protected]> Cc: Heinrich Schuchardt <[email protected]> Cc: Hiago De Franco <[email protected]> Cc: Ilias Apalodimas <[email protected]> Cc: Nam Cao <[email protected]> Cc: Simon Glass <[email protected]> Cc: Sughosh Ganu <[email protected]> Cc: Tom Rini <[email protected]> Cc: [email protected] -- 2.47.2

