public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC] FAT errors
Date: Tue, 10 Sep 2019 09:53:47 +0900	[thread overview]
Message-ID: <20190910005345.GL4398@linaro.org> (raw)
In-Reply-To: <4994e575-1d6f-318c-baf4-550e2eb9afd6@gmx.de>

On Sun, Sep 08, 2019 at 01:49:30AM +0200, Heinrich Schuchardt wrote:
> 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.

Please note that, on FAT16, the root directory can have a fixed
number of blocks and that there is definitely an upper limit of
maximum number of entries allowed under it.

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

Did you see any message, or the file system got corrupted silently?

-Takahiro Akashi

> Observed on qemu_arm64_defconfig with edk2-test HEAD.
> 
> Best regards
> 
> Heinrich
> 
> >
> >
> >>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
> >
> 

  reply	other threads:[~2019-09-10  0:53 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-05  6:43 [U-Boot] [RFC] FAT errors Heinrich Schuchardt
2019-09-05  8:37 ` AKASHI Takahiro
2019-09-07 23:49   ` Heinrich Schuchardt
2019-09-10  0:53     ` AKASHI Takahiro [this message]
2019-09-10  7:20       ` Heinrich Schuchardt
2019-09-05 12:06 ` Tom Rini
2019-09-05 12:22   ` Heinrich Schuchardt
2019-09-05 15:23     ` Stephen Warren
2019-09-05 22:22       ` Heinrich Schuchardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190910005345.GL4398@linaro.org \
    --to=takahiro.akashi@linaro.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox