[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