Skip site navigation (1)Skip section navigation (2)
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>