On Thu, Sep 10, 2015 at 10:22:35AM -0700, Stephen Warren wrote: > On 07/28/2015 08:55 PM, Stephen Warren wrote: > > The FAT code contains a special case to parse the root directory. This > > is needed since the root directory location/layout on disk is special > > cased for FAT12/16. In particular, the location and size of the FAT12/16 > > root directory is hard-coded and contiguous, whereas all FAT12/16 non-root > > directories, and all FAT32 directories, are stored in a non-contiguous > > fashion, with the layout represented by a linked-list of clusters in the > > FAT. > > > > If a file path contains ../ (for example /extlinux/../bcm2835-rpi-cm.dtb), > > it is possible to need to parse the root directory for the first element > > in the path (requiring application of the special case), then a sub- > > directory (in the general way), then re-parse the root directory (again > > requiring the special case). However, the current code in U-Boot only > > applies the special case for the very first path element, and never for > > any later path element. When reparsing the root directory without > > applying the special case, any file in a sector (or cluster?) other than > > the first sector/cluster of the root directory will not be found. > > > > This change modifies the non-root-dir-parsing loop of do_fat_read_at() > > to detect if it's walked back to the root directory, and if so, jumps > > back to the special case code that handles parsing of the root directory. > > Is this change slated for v2015.10, or is the plan to leave this issue > in place until the FAT implementation replacement is accepted for the > release after that?
I believe I shall grab this. Did you see the email from Lukasz saying the new FAT didn't pass the DFU test suite? -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot