Re: USB Flash drive booting from June 22,2023 RPI Snapshot FreeBSD 14.0

Mark Millard <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]>
On Jul 3, 2023, at 07:16, Mark Millard <[email protected]> wrote:

> On Jul 3, 2023, at 05:31, Fred G. Finster <[email protected]> wrote:
> 
>> I downloaded this June 22, 2023 version of the  RPI snapshot and burned to a USB flash drive to test on my Raspberry Pi 4B with 8 GB
>> 
>> https://www.freebsd.org/where/
>> 
>> https://download.freebsd.org/snapshots/arm64/aarch64/ISO-IMAGES/14.0/
>> 
>> https://download.freebsd.org/snapshots/arm64/aarch64/ISO-IMAGES/14.0/FreeBSD-14.0-CURRENT-arm64-aarch64-RPI-20230622-b95d2237af40-263748.img.xz
>> 
>> Is there a recipe that some machine follow to build this image? Can I have that recipe to verify the build process?  What should I do about
>> 
>> the
>> 
>> It try to TFTP  boot an image,  I was not setup for yet.  I will google and find some docs and webpages to help me out.
>> 
>> EFI boot manager: Cannot load any image
>> Found EFI removable media binary efi/boot/bootaa64.efi
>> ** Reading file would overwrite reserved memory **
> 
> That message is from the u-boot.bin stage, before
> FreeBSD itself is involved but after the RPi*
> firmwmare. FreeBSD is currently using a vintage of
> U-Boot that is broken for 8 GiByte RPi4's. FreeBSD
> has not updated to use the more recent fixed
> vintaeg of U-Boot. This is a known issue that has
> been reported on multiple times on the lists.
> 
> (Note: the message content itself is misleading
> compared to the actual internal problem in U-Boot.)
> 
> You can replace the u-boot.bin with a copy of the
> older one in:
> 
> http://ftp3.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/13.1/FreeBSD-13.1-RELEASE-arm64-aarch64-RPI.img.xz
> 
> Similarly if you have other older copies of the
> arm64-aarch64 RPI u-boot.bin on other of your
> existing media.
> 
>> Failed to load 'efi/boot/bootaa64.efi'
>> No UEFI binary known at 0x00080000
>> EFI LOAD FAILED: continuing...
>> 
>> 
>> Yes, I can take a working  bootaa64.efi file and replace this one version  Then see if I can boot my raspberry pi 4B.
> 
> Replacing bootaa64.efi will not fix anything.
> 
>> What else do you suggest to do to check or verify.  My system was booting the older version of FreeBSD 14.0 from my
>> 
>> 500GB SSD.  See my blogpost for details.  Yes, snapshots of 14.0-CURRENT can have problems, so I just wish to share my experience.
>> 
>> I am afraid I over looked some small simple detail that I did not change or setup.  My apology in advance.
> 
> You did not overlook anything. FreeBSD is just
> bundling a bad version of u-boot.bin in its
> modern images, broken specifically for 8 GiByte
> RPi4 variants.
> 
>> I am interested to learn how to use this nice 2023.01 U-BOOT and learn to debug by PXE booting the Raspberry Pi.
> 
> 2023.01 is not nice for 8 GiByte RPi4 variants.
> It is broken.
> 
>> Is there a  website tutorial about using U-BOOT>  to test and learn about your ARM64 Hardware?  RTFM manual
> 
> You can not make 2023.01 work. Older or newer.
> Older is easier to get copies of.
> 
>> Anyone else encountering this particular issue from a snapshot image?
> 
> Multiple people have hit this issue in the past
> and the freebsd-arm list history has the records
> about it.
> 
>> https://ghostbsd-arm64.blogspot.com/2022/02/booting-500-gb-ssd-on-freebsd-arm64-140.html
>> 
>> https://ghostbsd-arm64.blogspot.com/2022/09/freebsd-140-compiling-kernel-for.html
>> 
>> 
>> 
>> Sorry to share this long listing with details:
>> 
>> Here is a a partial listing of the board dump  bdinfo command issued to 'U-BOOT>'  prompt
>> 
>> lmb_dump_all:
>> memory.cnt  = 0x3
>> memory[0]      [0x0-0x3b2fffff], 0x3b300000 bytes flags: 0
>> memory[1]      [0x40000000-0xfbffffff], 0xbEFI boot manager: Cannot load any image
>> Found EFI removable media binary efi/boot/bootaa64.efi
>> ** Reading file would overwrite reserved memory **
>> Failed to load 'efi/boot/bootaa64.efi'
>> No UEFI binary known at 0x00080000
>> EFI LOAD FAILED: continuing...c000000 bytes flags: 0
>> memory[2]      [0x100000000-0x1ffffffff], 0x100000000 bytes flags: 0
>> reserved.cnt  = 0x8
>> reserved[0]    [0x0-0xfff], 0x00001000 bytes flags: 0
>> reserved[1]    [0x7ef0000-0x7f0ffff], 0x00020000 bytes flags: 0
>> reserved[2]    [0x39c28000-0x3b2fffff], 0x016d8000 bytes flags: 0
>> reserved[3]    [0x3ac3c380-0x3b0fffff], 0x004c3c80 bytes flags: 0
>> reserved[4]    [0x3ee5c0a0-0x3ee5c164], 0x000000c5 bytes flags: 4
>> reserved[5]    [0x40000000-0xfbffffff], 0xbc000000 bytes flags: 0
>> reserved[6]    [0xfe100000-0xfe100fff], 0x00001000 bytes flags: 0
>> reserved[7]    [0x100000000-0x1ffffffff], 0x100000000 bytes flags: 0
> 
> Turns out the problem in u-boot.bin it tied to
> how many of the reserved[?] are actually needed
> at one stage: it ran out but needed more. They
> forgot to increase the allowed count when then
> made other changes that caused usage of more
> reserved address ranges.
> 
>> devicetree  = board
>> arch_number = 0x0000000000000000
>> TLB addr    = 0x000000003b0f0000
>> irq_sp      = 0x000000003ac40820
>> sp start    = 0x000000003ac40820
>> Early malloc usage: 878 / 2000
>> U-Boot> boot
>> Card did not respond to voltage select! : -110
>> MMC Device 1 not found
>> no mmc device at slot 1
>> MMC Device 2 not found
>> no mmc device at slot 2
>> 
>> Device 0: Vendor: Verbatim Rev: PMAP Prod: ClickUSB
>>            Type: Removable Hard Disk
>>            Capacity: 14776.0 MB = 14.4 GB (30261248 x 512)
>> ... is now current device
>> Scanning usb 0:1...
>> BootOrder not defined
>> EFI boot manager: Cannot load any image
>> Found EFI removable media binary efi/boot/bootaa64.efi
>> ** Reading file would overwrite reserved memory **
> 
> This is the misleading message that is actually
> caused by running out of reserved[?] but needing
> more.
> 
>> Failed to load 'efi/boot/bootaa64.efi'
>> No UEFI binary known at 0x00080000
>> EFI LOAD FAILED: continuing...
>> BOOTP broadcast 1
>> DHCP client bound to address 192.168.1.7 (8 ms)
>> *** Warning: no boot file name; using 'C0A80107.img'
>> Using ethernet@7d580000 device
>> TFTP from server 192.168.1.1; our IP address is 192.168.1.7
>> Filename 'C0A80107.img'.
>> Load address: 0x1000000
>> Loading: T T T T T
>> Abort
>> missing environment variable: pxeuuid
> 

Separately from u-boot.bin I also use a modified
config.txt (at least for my type of boot devices).
See the comments about use of
initial_turbo/force_turbo. force_turbo required
use of over_voltage for reliability. You may
or may not have the issue that leads to these
changes (additions).

Part of the reason for various settings is
FreeBSD's use of older RPi* firmware. That in
turn means that the RPi* firmware documentation
is inaccurate about various defaults for the
vintage that FreeBSD uses. One has to look up
older documentation to see the accurate defaults
for what FreeBSD is using.

# more /boot/efi/config.txt
[all]
arm_64bit=1
dtparam=audio=on,i2c_arm=on,spi=on
dtoverlay=mmc
dtoverlay=disable-bt
device_tree_address=0x4000
kernel=u-boot.bin

[pi4]
hdmi_safe=1
armstub=armstub8-gic.bin

[all]
#
# Local addition that avoids USB3 SSD boot failures that look like:
# uhub_reattach_port: port ? reset failed, error=USB_ERR_TIMEOUT
# uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port ?
# WARNING, not sufficient for "boot -s": that needs the full force_turbo=1
initial_turbo=60
[pi4]
over_voltage=6
arm_freq=2000
sdram_freq_min=3200
force_turbo=1
#
hdmi_safe=0


===
Mark Millard
marklmi at yahoo.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.