[U-Boot] [RFC] FAT errors

Heinrich Schuchardt xypron.glpk at gmx.de
Sat Sep 7 23:49:30 UTC 2019

On 9/5/19 10:37 AM, AKASHI Takahiro wrote:
> On Thu, Sep 05, 2019 at 08:43:43AM +0200, Heinrich Schuchardt wrote:
>> Currently we do no have a maintainer for the FAT file system. Takahiro
>> has done a great job fixing some of the most prominent deficiencies. But
>> still the driver is not in good shape:
>> I once again ran upon errors in FAT when executing the UEFI SCT.
>> Here is some of the output of
>> dosfsck -w -r -l -a -v -t
>> The full output has hundreds of errors recorded.
> While I don't deny shifting to other code base for FAT,
> I'm willing to debug the current code if you send me
> binary data of corrupted file system.
> The first 1MB or so, which will contains directory meta data,
> would be good enough as I said before.
> I think that most errors stem from wrong long-file-name handling.
> -Takahiro Akashi

The SCT test that really shows the trouble is for
EFI_FILE_PROTOCOL.GetInfo(). On FAT16 it hits the 512 files per
directory limit.

Both on FAT16 and FAT32 it crashes when saving the log.

Observed on qemu_arm64_defconfig with edk2-test HEAD.

Best regards


>> Orphaned long file name part "Sct.log"
>>    Auto-deleting.
>> Orphaned long file name part "Sct.log"
>>    Auto-deleting.
>> /Log/RuntimeServicesTest/VariableServicesTest0/QueryVariableInfo_Conf_0_0_61758774-91A3-47DD-BDBD-B81094A5F62D.log
>>    Duplicate directory entry.
>>    First    Size 4712 bytes, date 01:00:00 Dec 31 1979
>>    Second   Size 5086 bytes, date 01:00:00 Dec 31 1979
>>    Auto-renaming second.
>>    Renamed to FSCK0000.008
>> BareBox is using a (somewhat outdated) copy of this library with a
>> little bit of wrapper code:
>> FatFs - Generic FAT Filesystem Module
>> http://elm-chan.org/fsw/ff/00index_e.html
>> http://elm-chan.org/fsw/ff/arc/ff13c.zip
>> The same library is also used for Arduinos:
>> https://github.com/stm32duino/FatFs
>> Shouldn't we try just the same?
>> Best regards
>> Heinrich

More information about the U-Boot mailing list