[U-Boot] [RFC] FAT errors

Stephen Warren swarren at wwwdotorg.org
Thu Sep 5 15:23:08 UTC 2019


On 9/5/19 6:22 AM, Heinrich Schuchardt wrote:
> On 9/5/19 2:06 PM, Tom Rini 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.
>>>
>>> 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?
>>
>> I think that or similar has been suggested before.  Are you volunteering
>> to maintain the wrapper and keep it in-sync?  Thanks!
>>
> 
> Here is the reference
> 
> Stephen Warren
> [PATCH 0/9] Replace the FAT filesystem code
> https://lists.denx.de/pipermail/u-boot/2015-August/222545.html

IIRC, we abandoned that effort since ff turned out to be very slow. I'm 
not sure whether adding a disk caching library underneath it would have 
helped or not. Probably you can find those discussions from the mailing 
list post above?

Another FAT implementation that might be worth looking at is from FreeRTOS:

https://freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_FAT/index.html

FreeRTOS itself recently got bought by Amazon and switched to an MIT 
license. I assume the same is true of their FAT code. So, should be OK 
to integrate.


More information about the U-Boot mailing list