Date: Wed, 19 Mar 2014 23:42:07 -0400 From: Patrick Kelsey <kelsey@ieee.org> To: "Sulev-Madis Silber (ketas)" <madis555@hot.ee> Cc: freebsd-arm <freebsd-arm@freebsd.org>, Ian Lepore <ian@freebsd.org> Subject: Re: Booting FreeBSD from eMMC on BeagleBone Black Message-ID: <CAD44qMXG08pzTH%2BTsODc=DHrmMXKhdR_yHc%2B1yvgR51JpZBn1Q@mail.gmail.com> In-Reply-To: <532A4938.8030003@hot.ee> References: <CAD44qMXrKbZqXT_Z1UL2LXuVON4Gb49m-GygW_6Y14Zz-egTFw@mail.gmail.com> <E1283934-0065-4979-92AA-99D1056BFBD5@FreeBSD.org> <CAD44qMVxoM=MdvDfosJgxQycYYNmxgMii3_0z91PGwHKXmszMg@mail.gmail.com> <1395064661.1149.565.camel@revolution.hippie.lan> <CAD44qMU0iDE=sJTyLfh2AD2aPRyM5sCgeq8U3MVgaCSpVGxsvw@mail.gmail.com> <1395067218.1149.570.camel@revolution.hippie.lan> <80EF2F0E-B4E3-4E06-933A-685F78F2EBD7@ieee.org> <532A4938.8030003@hot.ee>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Mar 19, 2014 at 9:49 PM, Sulev-Madis Silber (ketas) <madis555@hot.ee > wrote: > I now have this weirdness of "double 2": > > > ## Starting application at 0x88000054 ... > Consoles: U-Boot console > Compatible U-Boot API signature found @9f242240 > > FreeBSD/armv6 U-Boot loader, Revision 1.2 > (root@rack0, Wed Mar 19 03:10:06 EET 2014) > > DRAM: 512MB > MMC Device 2 not found > MMC Device 3 not found > MMC Device 2 not found > Number of U-Boot devices: 3 > U-Boot env: loaderdev='mmc0:2.0' > Found U-Boot device: disk > Checking unit=0 slice=2 partition=<auto>... good. > > > -- > ketas > The short story is that this is a side effect of the terribly brute-force u-boot storage device enumeration code and does not represent a functional fault. I won't even attempt to render into text the way that this code works in detail. Suffice it to say that it will call the routine that checks if a given MMC device exists *a lot* from different places. One of those places is in a loop that tries to determine if the last enumerated device is of a given type. When enumeration of the MMC devices begins, this routine is called and it will check to see if every one of the configured maximum possible number of MMC devices exists. The routine that checks if a given MMC device exists prints the "MMC Device <n> not found" message if that device doesn't exist. Since the configured maximum possible number of MMC devices is four and two of them (0 and 1) actually exist on this platform, this action is what results in the first two messages: MMC Device 2 not found MMC Device 3 not found Then, the enumeration of MMC devices will start at the first possible device and proceed until the routine that checks whether a given MMC device exists returns false. That last call is what is responsible for the third message (the seeming duplicate): MMC Device 2 not found Just to give you an idea of how brute-force this process is, on this platform, the routine that checks to see if a given MMC device exists is called a total of *ten* times to detect two existing devices out of a possible four. -Patrick
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAD44qMXG08pzTH%2BTsODc=DHrmMXKhdR_yHc%2B1yvgR51JpZBn1Q>