Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Mar 2015 07:12:25 -0600
From:      Ian Lepore <ian@freebsd.org>
To:        Tim Kientzle <tim@kientzle.com>
Cc:        freebsd-arm <freebsd-arm@freebsd.org>, Hellmuth Michaelis <hm@hellmuth-michaelis.de>
Subject:   Re: beaglebone boot from eMMC
Message-ID:  <1426770745.9902.7.camel@freebsd.org>
In-Reply-To: <40A94DE3-36A6-4E85-8B59-15329D00E89C@kientzle.com>
References:  <3DF08C65-20E3-4524-B0E1-C5C096AA0FE8@hellmuth-michaelis.de> <54BA6DB9-DC61-4A6F-B948-777BB9800F54@bocal.org> <A923E8B5-72DC-4C19-B5CA-7729C7E16A5C@hellmuth-michaelis.de> <20150312132739.GA28385@cicely7.cicely.de> <A3E0A638-450D-4B83-90F7-090D45FF4420@bsdimp.com> <3EF47A05-60B2-4BB0-8688-018E50CF7D4A@hellmuth-michaelis.de> <CAC67Hz_ssdAHoRFqC7VAR9_XvTchc5DNhKPY4=LstcMx3j9NXw@mail.gmail.com> <40A94DE3-36A6-4E85-8B59-15329D00E89C@kientzle.com>

index | next in thread | previous in thread | raw e-mail

On Wed, 2015-03-18 at 20:41 -0700, Tim Kientzle wrote:
> > On Mar 18, 2015, at 11:16 AM, Guy Yur <guyyur@gmail.com> wrote:
> > 
> > Hi,
> > 
> > On Wed, Mar 18, 2015 at 9:23 AM, Hellmuth Michaelis
> > <hm@hellmuth-michaelis.de> wrote:
> >> 
> >> Its really weird. I fetched the Angstroem flasher to put back an original image onto the eMMC and that worked. I dumped the MBR for Linux and the MBR which was generated by the install script and they are both pretty OK and legal. I reordered files on the MSDOS partition. I played with different „BIOS“ geometries (because Linux and FreeBSD have a rather different sight on this) to produce the partitions.
> >> 
> >> Nothing helps - it does not boot FreeBSD from the eMMC MSDOS Partition. The only thing which made a difference was, when i used the Linux-generated MSDOS partition, removed the files in it and populated it with the FreeBSD-generated MLO and things - then it booted from it. I failed completely to add an UFS partition after the Linux-generated MSDOS partition, tried gpart, fdisk, bsdlabel. The UFS mmcsd1s2a can be generated, populated, fsck’d, tested, checked - after the next powercycle it simply disappeared.
> >> 
> >> It seems to me that there is a bit more magic involved than only generate the partitions. In the Linux script to generate the image onto the eMMC, they check for:
> >> 
> >> HEADER=$(hexdump -e '8/1 "%c"' /sys/bus/i2c/devices/0-0050/eeprom -s 5 -n 3)
> >> 
> >> and possibly write to an eeprom - has someone an idea why this is needed ?
> >> 
> >> Hellmuth
> >> 
> >> 
> > 
> > Is your msdosfs slice on the eMMC aligned to 1 MB?
> > 
> > I had the same "CCC" problem when I aligned the partition
> > and used newfs_msdos.
> > Removing the sector count adjustment calculation in newfs_msdos
> > as was done in NetBSD worked for me.
> > 
> > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=183234
> 
> Fortunately, the AM335x TRM from TI documents the exact checks made by the ROM before it will recognize a valid MSDOS partition.  So you don’t need to guess; you can compare a hex dump of your disk with the docs and see exactly what’s gone wrong.
> 
> As I recall, the ROM is very unforgiving:
> 
> * The CHS geometry used in the MBR has to exactly match the MSDOS format geometry.  Attempts to align the partition on round boundaries can screw this up badly.
> 
> * The FAT format type (12, 16, or 32) has to match the ROM expectations
> 
> If any of the ROM checks fail, it will assume the device is not usable and try a different device (ultimately ending up with CCCC on the serial port).
> 
> The corresponding code in Crochet uses
> 
> $ gpart add -a 63 -b 63 -s 2m -t ‘!12’ <device>
> 
> to create the MSDOS partition and then uses
> 
> $ newfs_msdos -L <label> -F 12 <device>
> 
> Note: Use -F 12 for an MSDOS partition of 16MB or less, otherwise use -F 16.
> 
> Tim

The thing that most often stops a BB from booting is forgetting to set
the Active flag on the FAT slice.  Most socs and u-boot implementations
ignore the flags, but it matters to the BB boards.

-- Ian




help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1426770745.9902.7.camel>