Date: Wed, 18 Mar 2015 20:41:43 -0700 From: Tim Kientzle <tim@kientzle.com> To: Guy Yur <guyyur@gmail.com>, Hellmuth Michaelis <hm@hellmuth-michaelis.de> Cc: freebsd-arm <freebsd-arm@freebsd.org> Subject: Re: beaglebone boot from eMMC Message-ID: <40A94DE3-36A6-4E85-8B59-15329D00E89C@kientzle.com> In-Reply-To: <CAC67Hz_ssdAHoRFqC7VAR9_XvTchc5DNhKPY4=LstcMx3j9NXw@mail.gmail.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>
next in thread | previous in thread | raw e-mail | index | archive | help
> On Mar 18, 2015, at 11:16 AM, Guy Yur <guyyur@gmail.com> wrote: >=20 > Hi, >=20 > On Wed, Mar 18, 2015 at 9:23 AM, Hellmuth Michaelis > <hm@hellmuth-michaelis.de> wrote: >>=20 >> 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 =E2=80=9EBIOS=E2=80=9C geometries (because Linux and = FreeBSD have a rather different sight on this) to produce the = partitions. >>=20 >> 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=E2=80=99d, tested, checked - after the next = powercycle it simply disappeared. >>=20 >> 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: >>=20 >> HEADER=3D$(hexdump -e '8/1 "%c"' /sys/bus/i2c/devices/0-0050/eeprom = -s 5 -n 3) >>=20 >> and possibly write to an eeprom - has someone an idea why this is = needed ? >>=20 >> Hellmuth >>=20 >>=20 >=20 > Is your msdosfs slice on the eMMC aligned to 1 MB? >=20 > 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. >=20 > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D183234 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=E2=80=99t need to guess; you can compare a hex dump of your disk = with the docs and see exactly what=E2=80=99s 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 =E2=80=98!12=E2=80=99 <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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?40A94DE3-36A6-4E85-8B59-15329D00E89C>