u-boot/fs
Tom Rini e2a9edc0ce Merge patch series "fs: fat: calculate FAT type based on cluster count"
To quote the author:

This series fixes an issue where the FAT type (FAT12, FAT16) is not
correctly detected, e.g. when the BPB field BS_FilSysType contains the
valid value "FAT     ".

This issue occures, for example, if a partition is formatted by
swupdate using its diskformat handler. swupdate uses the FAT library
from http://elm-chan.org/fsw/ff/ internally.

See https://groups.google.com/g/swupdate/c/7Yc3NupjXx8 for a
discussion in the swupdate mailing list.

Please refer to the commit messages for more details.

1. Added bootsector checks

Most tests from https://www.win.tue.nl/~aeb/linux/fs/fat/fat-2.html
are added in the commit 'fs: fat: add bootsector validity check'.
Only the tests VIII, IX and X are not implemented.

I also checked the Linux kernel code (v6.6) and did not find any
checks on 'vistart->fs_type'. This is the reason why is skipped them
here.

See section '2. Size comparisons' for the impact on the binary size.

2. Size comparisons

I executed bloat-o-meter from the Linux kernel for an arm64
target (config xilinx_zynqmp_mini_emmc0_defconfig):

Comparison of the binary spl/u-boot-spl between master (rev
e17d174773) and this patch
series (including the added validity checks of the boot sector):

add/remove: 0/0 grow/shrink: 1/1 up/down: 100/-12 (88)
Function                                     old     new   delta
read_bootsectandvi                           308     408    +100
fat_itr_root                                 444     432     -12
Total: Before=67977, After=68065, chg +0.13%

When compare the size of the binary spl/u-boot-spl between master this
series without the the validity checks of the boot sector:

add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-24 (-24)
Function                                     old     new   delta
read_bootsectandvi                           308     296     -12
fat_itr_root                                 444     432     -12
Total: Before=67977, After=67953, chg -0.04%

So the size of the spl on this arm64 target increases by 88 bytes for
this series. When i remove the validity check the size decreases by 24 bytes.
2023-11-28 20:10:36 -05:00
..
btrfs fs: btrfs: fix reading when length specified 2023-11-16 18:59:58 -05:00
cbfs spl: Ensure all SPL symbols in Kconfig have some SPL dependency 2022-07-07 09:29:08 -04:00
cramfs cramfs: clean up some error messages 2023-08-08 17:41:52 -04:00
erofs fs/erofs: Quieten test for filesystem presence 2023-08-19 04:12:52 +02:00
ext4 fs: ext4: Remove unused parameter from ext4_mount 2023-11-16 18:53:09 -05:00
fat fs: fat: add bootsector validity check 2023-11-28 20:10:25 -05:00
jffs2 fs: jffs2: Move SYS_JFFS2_SORT_FRAGMENTS to Kconfig 2022-11-10 09:45:54 -05:00
reiserfs common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
sandbox bootstd: Use bootdev instead of bootdevice 2023-07-16 23:13:17 +08:00
squashfs fs/squashfs: enable LZ4 compression support 2023-11-16 18:53:09 -05:00
ubifs treewide: use linux/time.h for time conversion defines 2023-11-16 18:59:58 -05:00
yaffs2 common: Drop linux/printk.h from common header 2023-09-24 09:54:57 -04:00
zfs common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
fs.c fs: Disable sandbox filesystem in SPL 2023-10-17 20:50:52 -04:00
fs_internal.c fs: Quieten down the filesystems more 2022-10-17 21:17:12 -06:00
Kconfig bootstd: sandbox: Add a hostfs bootdev 2022-04-25 10:00:04 -04:00
Makefile fs: Add semihosting filesystem 2022-04-01 15:03:13 -04:00
semihostingfs.c semihosting: create file in smh_fs_write_at() 2023-05-31 17:23:01 -04:00