Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Mar 2020 23:42:09 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        bob prohaska <fbsd@www.zefox.net>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: Upgrading u-boot on an rpi3
Message-ID:  <4B4CF1DF-F3C0-4ED3-AAC0-4FC0A8182787@yahoo.com>
In-Reply-To: <20200318054243.GA67865@www.zefox.net>
References:  <20200318054243.GA67865@www.zefox.net>

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


On 2020-Mar-17, at 22:42, bob prohaska <fbsd at www.zefox.net> wrote:

> Upgrading u-boot on an rpi3 running -current is turning out to be
> more involved than expected. Updating /boot/msdos/u-boot.bin didn't
> do the trick, getting stuck at the u-boot> prompt.
>=20
> Backing out the change by putting the old u-boot.bin in place
> restored the normal boot behavior, so I don't think the mischief
> is owed to anything else I might have screwed up.
>=20
> I noticed there was a metadata file in =
/usr/local/share/u-boot/u-boot-rpi3,
> but copying that along with the new u-boot.bin to /boot/msdos
> reproduced the previous failure.

The metadata file is involved in doing the build. Some
look like:

METHOD=3Duboot-raw
FILES=3D"u-boot-sunxi-with-spl.bin"
OFFSET=3D8
BS=3D1k

(dd command information) and others like:

METHOD=3Duboot-file
FILES=3D"u-boot.bin"

(copy file to msdosfs information). They are not
for the ARM board to use during boot.

> This is a self-hosting machine, with ports at 528581,
> kernel and world are at 351836. Sources are at 358976=20
>=20
> Could the self-hosting be the source of the trouble?
> The "no mmc device at slot 0" looks rather odd, given
> that the boot device is mmcsd0.

u-boot's identification of devices is not the same as
FreeBSD's. "MMC Device 0" need not be "mmcsd0" at all.
Slots do not have to be populated an mmc device.

> Here's an excerpt from the console:
>=20
> Hit any key to stop autoboot:  0=20
> MMC Device 0 not found
> no mmc device at slot 0
> switch to partitions #0, OK
> mmc1 is current device
> Scanning mmc 1:1...
> Found EFI removable media binary efi/boot/bootaa64.efi

Those last 2 lines above indicate that it found
your microsd card media and its bootaa64.efi just
fine.

How old is this file? Have you been updating
it via copying /boot/loader.efi to it as
/boot/loader.efi is updated? I've had issues
needing such updates when starting from old
media [by content] that I made a large jump
to modern content for.

For reference, the RPi4 said "scanning mmc 0:1"
and found its bootaa64.efi there. But it is
a difference device so this would not be
unusual.

> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> Scanning disk mmc@7e300000.blk...
> Found 3 disks
> BootOrder not defined
> EFI boot manager: Cannot load any image
> 637000 bytes read in 63 ms (9.6 MiB/s)
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> Consoles: EFI console =20

The above looks normal compared to the RPi4 that
I tested with.

The below is not like the RPi4 test.

> efipart_readwrite: rw=3D1, blk=3D0 size=3D1 status=3D2
> efipart_readwrite: rw=3D1, blk=3D64 size=3D1 status=3D2
> efipart_readwrite: rw=3D1, blk=3D1 size=3D1 status=3D2
> efipart_readwrite: rw=3D1, blk=3D250085376 size=3D1 status=3D2
> efipart_readwrite: rw=3D1, blk=3D0 size=3D1 status=3D2
> efipart_readwrite: rw=3D1, blk=3D64 size=3D1 status=3D2
> efipart_readwrite: rw=3D1, blk=3D1 size=3D1 status=3D2
> efipart_readwrite: rw=3D1, blk=3D250085376 size=3D1 status=3D2

Back to normal below:

> FreeBSD/arm64 EFI loader, Revision 1.1
>=20
>   Command line arguments: loader.efi
>   EFI version: 2.80
>   EFI Firmware: Das U-Boot (rev 8217.4096)
>   Console: efi (0)
>   Load Path: /efi\boot\bootaa64.efi
>   Load Device: =
/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(1)/SD(0)/HD(1,0x01,0,0x81f=
,0x18fa8)
> Trying ESP: =
/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(1)/SD(0)/HD(1,0x01,0,0x81f=
,0x18fa8)
> Setting currdev to disk0p1:

Still normal above.

Not normal below:

> efipart_readwrite: rw=3D1, blk=3D0 size=3D1 status=3D2
> efipart_readwrite: rw=3D1, blk=3D64 size=3D1 status=3D2
> efipart_readwrite: rw=3D1, blk=3D1 size=3D1 status=3D2
> efipart_readwrite: rw=3D1, blk=3D250085376 size=3D1 status=3D2
> efipart_readwrite: rw=3D1, blk=3D0 size=3D1 status=3D2
> efipart_readwrite: rw=3D1, blk=3D64 size=3D1 status=3D2
> efipart_readwrite: rw=3D1, blk=3D1 size=3D1 status=3D2
> efipart_readwrite: rw=3D1, blk=3D250085376 size=3D1 status=3D2

Back to normal below:

> Trying: =
/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(1)/SD(0)/HD(2,0x01,0,0x197=
c7,0xee66839)
> Setting currdev to disk0p2:

Not normal below:

> efipart_readwrite: rw=3D1, blk=3D0 size=3D1 status=3D2


The only messages that look odd to me are the
"efipart_readwrite:" ones.



For reference from the RPi4 context:

. . .
Setting currdev to disk0p2:
Loading /boot/defaults/loader.conf
Loading /boot/device.hints
Loading /boot/loader.conf
Loading /boot/loader.conf.local
Loading kernel...
. . .

=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B4CF1DF-F3C0-4ED3-AAC0-4FC0A8182787>