All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.