[U-Boot-Users] FAT mbr on MMC or SD cards
Heiko Schocher
hs at denx.de
Mon Jun 18 13:04:34 CEST 2007
Hello Joey,
"Joey Oravec" <joravec at drewtech.com> wrote:
> >> 1. This code assumes that sector 0 contains a VBR. Instead I think it
> >> should
> >> decide if 0 is an MBR or VBR, or even better utilize the dev:part command
> >> line. Can I make this determination that from the first three bytes, or
> >> is
> >> there a better way?
> >
> > We have a patch in the queue to fix this, but it did not pass our
> > internal review and unfortunately the engineer is on vacation right
> > now so he cannot clean it up. Please be patiend for a week or two.
>
> I wanted to share that with the list in case anybody else gets stuck.
>
> Since my original email, I noticed code in fat_register_device() which
> determines a part_offset for 1.1.5 and 1.1.6. For now I've hacked this code
> to check the first three bytes EB:xx:90 or E9:xx:xx to make the mbr/pbr
> decision instead of the ascii string. Also I have it reading the valid
> partition offset instead of assuming 32. And finally I added a packed
> attribute to all structs.
I am not sure if we can use EB:xx:90 or E9:xx:xx (Am I right, this is
the "Jump instruction to boot code" on a PBR?) for deciding between
a MBR and a VBR, because the First 446 Bytes from a MBR are only
"Bootcode", whatever this means, and maybe there is a MBR with
EB:xx:90 or E9:xx:xx in the First 3 Bytes ...
> >> 2. The decision of fat12, fat16, and fat32 is made upon fat_length and an
> >> ascii field. The Microsoft document claims that the determination shall
> >> be
> >> made only by the count of clusters. Any disputes on that fix?
> >
> > I have no idea...
>
> I was reading a document "FAT: General Overfiew of On-Disk Format" v1.02 May
> 5, 1999 by Microsoft Corporation. The correct way is to calculate
> CountofClusters. Less than 4085 is FAT12, less than 65525 is FAT16, anything
> else is FAT32. I'll watch, and after he gets back from vacation we can do
> something about it.
This sounds good to me.
Do you have a patch for me, so I can test it?
thanks
Heiko
--
DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk
Office: Kirchenstr. 5, D-82194 Groebenzell, Germany
More information about the U-Boot
mailing list