From nobody Sat Mar 04 14:03:12 2023 X-Original-To: freebsd-arm@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4PTRQX4MbPz3w43Q for ; Sat, 4 Mar 2023 14:03:48 +0000 (UTC) (envelope-from karl@denninger.net) Received: from colo1.denninger.net (colo1.denninger.net [104.236.120.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4PTRQW564Rz4Pdb for ; Sat, 4 Mar 2023 14:03:47 +0000 (UTC) (envelope-from karl@denninger.net) Authentication-Results: mx1.freebsd.org; dkim=none; spf=pass (mx1.freebsd.org: domain of karl@denninger.net designates 104.236.120.189 as permitted sender) smtp.mailfrom=karl@denninger.net; dmarc=pass (policy=none) header.from=denninger.net Received: from denninger.net (097-081-026-048.res.spectrum.com [97.81.26.48]) by colo1.denninger.net (Postfix) with ESMTP id 4F3352110C0 for ; Sat, 4 Mar 2023 09:03:16 -0500 (EST) Received: from [192.168.10.25] (D15.Denninger.Net [192.168.10.25]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by denninger.net (Postfix) with ESMTPSA id D59E932EF34 for ; Sat, 4 Mar 2023 09:03:15 -0500 (EST) Message-ID: Date: Sat, 4 Mar 2023 09:03:12 -0500 List-Id: Porting FreeBSD to ARM processors List-Archive: https://lists.freebsd.org/archives/freebsd-arm List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-arm@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: uBoot broken on RPI2 Model B? Content-Language: en-US To: freebsd-arm@freebsd.org References: <20230304082122.aa28fdf4e18f53fa58618329@bidouilliste.com> From: Karl Denninger In-Reply-To: Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-512; boundary="------------ms070607020105020207070304" X-Spamd-Result: default: False [-4.90 / 15.00]; SIGNED_SMIME(-2.00)[]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; DMARC_POLICY_ALLOW(-0.50)[denninger.net,none]; MIME_GOOD(-0.20)[multipart/signed,multipart/alternative,text/plain]; R_SPF_ALLOW(-0.20)[+mx]; ARC_NA(0.00)[]; ASN(0.00)[asn:14061, ipnet:104.236.64.0/18, country:US]; MLMMJ_DEST(0.00)[freebsd-arm@freebsd.org]; R_DKIM_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; RCVD_TLS_LAST(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; FROM_HAS_DN(0.00)[]; FREEFALL_USER(0.00)[karl]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:~,4:~]; TO_MATCH_ENVRCPT_ALL(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-arm@freebsd.org]; HAS_ATTACHMENT(0.00)[]; TO_DN_NONE(0.00)[]; MID_RHS_MATCH_FROM(0.00)[] X-Rspamd-Queue-Id: 4PTRQW564Rz4Pdb X-Spamd-Bar: ---- X-ThisMailContainsUnwantedMimeParts: N This is a cryptographically signed message in MIME format. --------------ms070607020105020207070304 Content-Type: multipart/alternative; boundary="------------6UT4SR0uru7SerTJHML9NJnL" --------------6UT4SR0uru7SerTJHML9NJnL Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 3/4/2023 03:48, Mark Millard wrote: > On Mar 3, 2023, at 23:21, Emmanuel Vadot wrote: > >> On Fri, 3 Mar 2023 16:12:48 -0500 >> Karl Denninger wrote: >> >>> Just tried to build -13STABLE for the RPi2 and ran into this (I'm using >>> Crochet and have had to make some changes to the board-specific files, >>> but it appears the problem that results in it not working is in uboot; >>> I've made a number of changes since it looks like the system now wants >>> to boot off EFI as opposed to what worked in -12, which would be ok if >>> it can find the boot device -- I think (may be wrong here) >>> >>> U-Boot 2023.01 (Jan 26 2023 - 04:25:18 +0000) >>> >>> DRAM: 948 MiB >>> RPI 2 Model B (0xa21041) >>> Core: 70 devices, 13 uclasses, devicetree: board >>> MMC: mmc@7e300000: 1 >>> Loading Environment from FAT... ** Bad device specification mmc 0 ** >>> In: serial >>> Out: vidconsole >>> Err: vidconsole >>> Net: No ethernet found. >>> starting USB... >>> Bus usb@7e980000: USB DWC2 >>> scanning bus usb@7e980000 for devices... 3 USB Device(s) found >>> scanning usb for storage devices... 0 Storage Device(s) found >>> Hit any key to stop autoboot: 0 >>> U-Boot> >>> >>> Needless to say if I let it try to continue it fails as it can't find >>> the SD card and "mmc dev" shows nothing present. >>> >>> Obviously going to dig into this further myself but I recalled something >>> about this uBoot version being broken on older Pis... >>> >>> The layout of the disk on the boot partition is thus: >>> >>> root@NewFS:/mnt # ls -la >>> total 12679 >>> drwxr-xr-x 1 root wheel 16384 Dec 31 1979 . >>> drwxr-xr-x 35 root wheel 42 Jan 20 10:16 .. >>> drwxr-xr-x 1 root wheel 4096 Feb 13 11:09 EFI >>> -rwxr-xr-x 1 root wheel 709 Feb 13 11:09 README >>> -rwxr-xr-x 1 root wheel 26745 Feb 13 11:09 bcm2709-rpi-2-b.dtb >>> -rwxr-xr-x 1 root wheel 52456 Feb 13 11:09 bootcode.bin >>> -rwxr-xr-x 1 root wheel 141 Feb 13 11:09 config.txt >>> -rwxr-xr-x 1 root wheel 7314 Feb 13 11:09 fixup.dat >>> -rwxr-xr-x 1 root wheel 3187 Feb 13 11:09 fixup_cd.dat >>> -rwxr-xr-x 1 root wheel 10298 Feb 13 11:09 fixup_db.dat >>> -rwxr-xr-x 1 root wheel 10298 Feb 13 11:09 fixup_x.dat >>> drwxr-xr-x 1 root wheel 20480 Feb 13 11:09 overlays >>> -rwxr-xr-x 1 root wheel 21169 Feb 13 11:09 rpi2.dtb >>> -rwxr-xr-x 1 root wheel 2952960 Feb 13 11:09 start.elf >>> -rwxr-xr-x 1 root wheel 793116 Feb 13 11:09 start_cd.elf >>> -rwxr-xr-x 1 root wheel 4794472 Feb 13 11:09 start_db.elf >>> -rwxr-xr-x 1 root wheel 3704808 Feb 13 11:09 start_x.elf >>> -rwxr-xr-x 1 root wheel 521916 Feb 13 11:09 u-boot.bin >>> >>> root@NewFS:/mnt # ls -laR EFI >>> total 24 >>> drwxr-xr-x 1 root wheel 4096 Feb 13 11:09 . >>> drwxr-xr-x 1 root wheel 16384 Dec 31 1979 .. >>> drwxr-xr-x 1 root wheel 4096 Feb 13 11:09 BOOT >>> >>> EFI/BOOT: >>> total 140 >>> drwxr-xr-x 1 root wheel 4096 Feb 13 11:09 . >>> drwxr-xr-x 1 root wheel 4096 Feb 13 11:09 .. >>> -rwxr-xr-x 1 root wheel 133812 Feb 13 11:09 bootarm.efi >>> >>> root@NewFS:/mnt # more config.txt >>> init_uart_clock=3000000 >>> enable_uart=1 >>> kernel=u-boot.bin >>> kernel7=u-boot.bin >>> dtoverlay=mmc >>> audio_pwm_mode=2 >>> dtparam=audio=on,i2c_arm=on,spi=on >>> >>> root@NewFS:/mnt # ls -la overlays | grep mmc >>> -rwxr-xr-x 1 root wheel 1221 Feb 13 11:09 mmc.dtbo >>> >>> Which I BELIEVE should work -- assuming that I can get "see" the SD card >>> from u-boot that is.... >>> >>> Installed rpi-related packages: >>> >>> root@NewFS:/mnt # pkg info|grep rpi >>> rpi-firmware-1.20210303.g20210303 Firmware for RaspberryPi Single Board >>> Computer >>> u-boot-rpi2-2023.01 Cross-build das u-boot for model rpi2 >>> u-boot-rpi3-2023.01 Cross-build das u-boot for model rpi3 >>> u-boot-rpi4-2023.01 Cross-build das u-boot for model rpi4 >>> >>> -- >>> Karl Denninger >>> karl@denninger.net >>> /The Market Ticker/ >>> /[S/MIME encrypted email preferred]/ >> I would not be the first time that a u-boot update break booting on a >> board. I didn't test on RPI* the last two (or three) update. >> Just to be sure could you test the official image ? Latest armv7 >> 14-CURRENT snapshot should have the last u-boot. > Karl reported that he was using boot1.efi instead of > loader.efi and just substituting in the likes of > loader.efi got booting to work. > > Why boot1.efi ? Because that is what Crochet put in > place. > Yes, and I remember when 13-x first showed up on my AMD box suddenly boot1 blew up there too which was a nasty little and unexpected surprise.  Not a big deal to fix once you realize what is going on but given the fact that u-boot updates have blown up booting on these devices before (and I've kept older versions around for this reason) that prompted me to ask if anyone else had seen a similar problem with the older Pi2s (my '3s are all ok with modern builds) on 13.x I've fixed Crochet to build and use the lua loader rather than boot1 for EFI and it appears to be working fine. -- Karl Denninger karl@denninger.net /The Market Ticker/ /[S/MIME encrypted email preferred]/ --------------6UT4SR0uru7SerTJHML9NJnL Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit
On 3/4/2023 03:48, Mark Millard wrote:
On Mar 3, 2023, at 23:21, Emmanuel Vadot <manu@bidouilliste.com> wrote:

On Fri, 3 Mar 2023 16:12:48 -0500
Karl Denninger <karl@denninger.net> wrote:

Just tried to build -13STABLE for the RPi2 and ran into this (I'm using 
Crochet and have had to make some changes to the board-specific files, 
but it appears the problem that results in it not working is in uboot; 
I've made a number of changes since it looks like the system now wants 
to boot off EFI as opposed to what worked in -12, which would be ok if 
it can find the boot device -- I think (may be wrong here)

U-Boot 2023.01 (Jan 26 2023 - 04:25:18 +0000)

DRAM:  948 MiB
RPI 2 Model B (0xa21041)
Core:  70 devices, 13 uclasses, devicetree: board
MMC:   mmc@7e300000: 1
Loading Environment from FAT... ** Bad device specification mmc 0 **
In:    serial
Out:   vidconsole
Err:   vidconsole
Net:   No ethernet found.
starting USB...
Bus usb@7e980000: USB DWC2
scanning bus usb@7e980000 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0
U-Boot>

Needless to say if I let it try to continue it fails as it can't find 
the SD card and "mmc dev" shows nothing present.

Obviously going to dig into this further myself but I recalled something 
about this uBoot version being broken on older Pis...

The layout of the disk on the boot partition is thus:

root@NewFS:/mnt # ls -la
total 12679
drwxr-xr-x   1 root  wheel    16384 Dec 31  1979 .
drwxr-xr-x  35 root  wheel       42 Jan 20 10:16 ..
drwxr-xr-x   1 root  wheel     4096 Feb 13 11:09 EFI
-rwxr-xr-x   1 root  wheel      709 Feb 13 11:09 README
-rwxr-xr-x   1 root  wheel    26745 Feb 13 11:09 bcm2709-rpi-2-b.dtb
-rwxr-xr-x   1 root  wheel    52456 Feb 13 11:09 bootcode.bin
-rwxr-xr-x   1 root  wheel      141 Feb 13 11:09 config.txt
-rwxr-xr-x   1 root  wheel     7314 Feb 13 11:09 fixup.dat
-rwxr-xr-x   1 root  wheel     3187 Feb 13 11:09 fixup_cd.dat
-rwxr-xr-x   1 root  wheel    10298 Feb 13 11:09 fixup_db.dat
-rwxr-xr-x   1 root  wheel    10298 Feb 13 11:09 fixup_x.dat
drwxr-xr-x   1 root  wheel    20480 Feb 13 11:09 overlays
-rwxr-xr-x   1 root  wheel    21169 Feb 13 11:09 rpi2.dtb
-rwxr-xr-x   1 root  wheel  2952960 Feb 13 11:09 start.elf
-rwxr-xr-x   1 root  wheel   793116 Feb 13 11:09 start_cd.elf
-rwxr-xr-x   1 root  wheel  4794472 Feb 13 11:09 start_db.elf
-rwxr-xr-x   1 root  wheel  3704808 Feb 13 11:09 start_x.elf
-rwxr-xr-x   1 root  wheel   521916 Feb 13 11:09 u-boot.bin

root@NewFS:/mnt # ls -laR EFI
total 24
drwxr-xr-x  1 root  wheel   4096 Feb 13 11:09 .
drwxr-xr-x  1 root  wheel  16384 Dec 31  1979 ..
drwxr-xr-x  1 root  wheel   4096 Feb 13 11:09 BOOT

EFI/BOOT:
total 140
drwxr-xr-x  1 root  wheel    4096 Feb 13 11:09 .
drwxr-xr-x  1 root  wheel    4096 Feb 13 11:09 ..
-rwxr-xr-x  1 root  wheel  133812 Feb 13 11:09 bootarm.efi

root@NewFS:/mnt # more config.txt
init_uart_clock=3000000
enable_uart=1
kernel=u-boot.bin
kernel7=u-boot.bin
dtoverlay=mmc
audio_pwm_mode=2
dtparam=audio=on,i2c_arm=on,spi=on

root@NewFS:/mnt # ls -la overlays | grep mmc
-rwxr-xr-x  1 root  wheel    1221 Feb 13 11:09 mmc.dtbo

Which I BELIEVE should work -- assuming that I can get "see" the SD card 
from u-boot that is....

Installed rpi-related packages:

root@NewFS:/mnt # pkg info|grep rpi
rpi-firmware-1.20210303.g20210303 Firmware for RaspberryPi Single Board 
Computer
u-boot-rpi2-2023.01            Cross-build das u-boot for model rpi2
u-boot-rpi3-2023.01            Cross-build das u-boot for model rpi3
u-boot-rpi4-2023.01            Cross-build das u-boot for model rpi4

-- 
Karl Denninger
karl@denninger.net
/The Market Ticker/
/[S/MIME encrypted email preferred]/
I would not be the first time that a u-boot update break booting on a
board. I didn't test on RPI* the last two (or three) update.
Just to be sure could you test the official image ? Latest armv7
14-CURRENT snapshot should have the last u-boot.
Karl reported that he was using boot1.efi instead of
loader.efi and just substituting in the likes of
loader.efi got booting to work.

Why boot1.efi ? Because that is what Crochet put in
place.

Yes, and I remember when 13-x first showed up on my AMD box suddenly boot1 blew up there too which was a nasty little and unexpected surprise.  Not a big deal to fix once you realize what is going on but given the fact that u-boot updates have blown up booting on these devices before (and I've kept older versions around for this reason) that prompted me to ask if anyone else had seen a similar problem with the older Pi2s (my '3s are all ok with modern builds) on 13.x

I've fixed Crochet to build and use the lua loader rather than boot1 for EFI and it appears to be working fine.

--
Karl Denninger
karl@denninger.net
The Market Ticker
[S/MIME encrypted email preferred]
--------------6UT4SR0uru7SerTJHML9NJnL-- --------------ms070607020105020207070304 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 AAAAAA== --------------ms070607020105020207070304--