Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Oct 2022 23:44:45 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        Warner Losh <imp@bsdimp.com>
Cc:        freebsd-arm <freebsd-arm@freebsd.org>
Subject:   Re: FYI: FreeBSD-14.0-CURRENT-arm-armv7-GENERICSD-20220930-42dc8696df5-258315.img is broken for RPi2 v1.1 (so: armv7)
Message-ID:  <DCA9791E-6382-4FC2-A4E7-87725A002B0B@yahoo.com>
In-Reply-To: <6BA96801-D70D-48EC-8DA9-F67C2826609A@yahoo.com>
References:  <6B46F46A-2CAF-42C9-9A04-63567D7DB9B2@yahoo.com> <D9B791B7-106A-402E-AD8C-F811EB315560@yahoo.com> <CANCZdfoJ=E=ef86PRaYsvgXWLAu=AdbN%2B_kiv0vPhKVksqPY%2Bg@mail.gmail.com> <FC871551-7C49-4751-8763-2E8F82C1480A@yahoo.com> <CANCZdfoU2Ln2vqymT66Yu6ZdxSrZLAx1%2BA_hstLYSrzBmduHBw@mail.gmail.com> <28D78C89-E195-4EF1-BB7B-E7F75060BDC7@yahoo.com> <5B631C27-E68C-4F38-96B5-B311110A8F86@yahoo.com> <6EF84694-7CD7-4A9F-BF9C-DFFB52F557AD@yahoo.com> <CANCZdfrdnxUyBtj0cvAwiX%2BNJZppqrtButU48jiUVgW4op%2B-FQ@mail.gmail.com> <CANCZdfom2TLLHD1SzY8_1TuxTC8GoWwNMGYHvaT-XefHgHmJcw@mail.gmail.com> <6A679278-69E0-4592-BFED-48ED8598C2F1@yahoo.com> <6BA96801-D70D-48EC-8DA9-F67C2826609A@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2022-Oct-12, at 22:28, Mark Millard <marklmi@yahoo.com> wrote:

> On 2022-Oct-11, at 19:55, Mark Millard <marklmi@yahoo.com> wrote:
>=20
>> On 2022-Oct-11, at 12:10, Warner Losh <imp@bsdimp.com> wrote:
>>=20
>>> On Tue, Oct 11, 2022 at 1:03 PM Warner Losh <imp@bsdimp.com> wrote:
>>>>=20
>>>>=20
>>>> On Tue, Oct 11, 2022 at 12:50 PM Mark Millard <marklmi@yahoo.com> =
wrote:
>>>> . . .
>>>>=20
>>>> For:
>>>>=20
>>>> boot-2022-09-16-15-45-b44869cba1b3-good
>>>> boot-2022-09-16-18-02-dd2b9c296776-bad
>>>>=20
>>>> there are no armv7 artifacts available between.
>>>>=20
>>>> The range is:
>>>>=20
>>>>       A) =E2=80=A2 git: b44869cba1b3 - main - sound: add patch for =
Lenovo Legion 5 Intel Nuno Teixeira=20
>>>>       B) =E2=80=A2 git: a705c72f2142 - main - stand: use =
archsw.arch_copyin instead of i386_copyin Warner Losh=20
>>>>       C) =E2=80=A2 git: 4c670b53a000 - main - stand: use =
archsw.arch_copyin instead of direct call Warner Losh=20
>>>>       D) =E2=80=A2 git: 8b19d28d68a3 - main - stand: Create =
MOD_ALIGN macro and use it everywhere Warner Losh=20
>>>>       E) =E2=80=A2 git: bca9c87b6104 - main - stand: Create =
common/modinfo.h Warner Losh=20
>>>>       F) =E2=80=A2 git: 5d1531d9d4e7 - main - stand: Move =
md_copymodules into modinfo.c and reduce copies Warner Losh=20
>>>>       G) =E2=80=A2 git: 2e6ed47a4609 - main - stand: Move MOD_xxx =
macros from modinfo.h to .c Warner Losh=20
>>>>       H) =E2=80=A2 git: fc352701ff3a - main - stand: collapse all =
copies of *copyenv into md_copyenv Warner Losh=20
>>>>       =E2=80=A2 git: e895ab3fbdc1 - main - stand: Remove dead store =
to bi_kernelname Warner Losh=20
>>>>       =E2=80=A2 git: d43bcf62a218 - main - stand: Stop support =
booting 4.x and earlier kernels Warner Losh=20
>>>>       =E2=80=A2 git: 59b1d074280d - main - i386: Mark the obsolete =
fields in bootinfo with _was_ Warner Losh=20
>>>>       =E2=80=A2 git: 4134f677eb39 - main - i386: Make boot loader =
smaller by reducing size of bootinfo Warner Losh=20
>>>>       =E2=80=A2 git: 9758dd3de1cd - main - stand: Allocate bootinfo =
rather than have it be static Warner Losh=20
>>>>       =E2=80=A2 git: c0ecae78abbe - main - stand/elf: Only support =
swapping headers on powerpc. Warner Losh=20
>>>>       =E2=80=A2 git: dd2b9c296776 - main - stand: fix mismerge =
Warner Losh
>>>>=20
>>> Yea, I did a bunch of refactoring. I'm surprised that this produced =
a change at all. Would be nice to
>>> know which one of these caused the problems.
>>=20
>> 5d1531d9d4e7 has the stand/common/metadata.c "align"
>> removal that the later dd2b9c296776 fixes as the
>> "mismerge". So it appears that most of the stages
>> would not build without adjustment for that.
>>=20
>> So presume I've made the adjustment for any such
>> such cases below.
>>=20
>> H) fc352701ff3a Bad
>> D) 8b19d28d68a3 Good
>> F) 5d1531d9d4e7 Bad
>> E) bca9c87b6104 Good
>>=20
>> So the good -> bad back-to-back sequence pair is:
>>=20
>> git: bca9c87b6104 - main - stand: Create common/modinfo.h Warner Los
>> git: 5d1531d9d4e7 - main - stand: Move md_copymodules into modinfo.c =
and reduce copies Warner Losh
>>=20
>>=20
>> Note: I cross build armv7 via aarch64 normally.
>> There is no "buildstand" analogous to buildworld
>> or buildkernel that takes TARGET and TARGET_ARCH
>> for cross builds. Thus I ended up with a full
>> buildworld to establish a context for the cross
>> builds.
>>=20
>=20
> I got another oddity to add to the evidence,
> although it might just be a separate issue.
>=20
> First off some context: With the additions to
> the microsd card:
>=20
> /boot/efi/bcm2710-rpi-2-b.dtb
> /boot/efi/bcm2710-rpi-3-b-plus.dtb
> /boot/efi/bcm2710-rpi-3-b.dtb
> /boot/efi/bcm2710-rpi-cm3.dtb
>=20
> I can have armv7 13.1-STABLE FreeBSD boot:
>=20
> RPi2B v1.1 (The official support targets this.)
> RPi2B v1.2 (not tested but I could)
> RPi3B+     (no access to such)
> RPi3B      (tested)
> Computer Module 3 (no access to such)
>=20
> (I recently sent out notes out that are for mostly USB
> booting to match more closely Bob P.'s context. This
> has some more involved to span the range and some
> specifics of dealing with oddities of the media I have
> access to show up in order for me to demonstrate
> operation.)
>=20
> Part of the point of 13.1-STABLE here is avoiding all
> the recent EFI loader changes, not just one block of
> them.
>=20
> But for main [so: 14] and the same bca9c87b6104 based EFI
> loader that I reported as working on the RPi2B v1.1, I get
> differing behavior between:
>=20
> RPi2B v1.1 (boots with serial console & HDMI output throughout)
> vs.
> RPi3B      (serial output stops and, when HDMO is connected,
>            HDMI output keeps going)
>=20
> For the RPi3B, the last serial console line output is:
>=20
> Kernel args: (null)
>=20
> By contrast, for RPi2B v1.1 with both the serial console and
> the HDMI connected, both get console output, reaching the
> login prompt. (I've not certified every line is present
> on both. There could be differences for all I know.)
>=20
> So, in this context, the RPi3B seems to hit the console
> handling type of issue that you were originally expecting.
>=20
> I originally looked into this in case the results meant
> that you could use a bcm2710 based RPi* instead of a
> bcm2709 based one for investigating the armv7-style-boot
> with 5d1531d9d4e7 and later EFI loader problem(s), giving
> you more options.
>=20

Adding 2 more files (only 1 necessary) and adjusting config.txt
I get both the serial console and the HDMI console not stopping
for the armv7 bca9c87b6104 EFI loader --on both the RPi3B and
the RPi2B v1.1 .

I added:

# ls -Tld /boot/efi/overlays/*-bt.dtbo
-rwxr-xr-x  1 root  wheel  1073 Mar  3 13:29:56 2021 =
/boot/efi/overlays/disable-bt.dtbo
-rwxr-xr-x  1 root  wheel  1819 Mar  3 13:29:56 2021 =
/boot/efi/overlays/miniuart-bt.dtbo

but am just using disable-bt.dtbo --via the updated config.txt :

# diff -u /boot/efi/config.txt.orig /boot/efi/config.txt
--- /boot/efi/config.txt.orig   2022-10-07 05:38:00.000000000 +0000
+++ /boot/efi/config.txt        2022-10-13 05:39:26.000000000 +0000
@@ -3,3 +3,6 @@
 kernel=3Du-boot.bin
 kernel7=3Du-boot.bin
 dtoverlay=3Dmmc
+#
+# Local addition(s):
+dtoverlay=3Ddisable-bt

This changes which UART is used for the serial console.
(As does the alternative *-bt.dtbo .)

So, in summary, to allow armv7 boots via the likes of a RPi3B
as well as a RPi2B v1.1 with the serial console and HDMI console
both operational (if connected) . . .

Based on microsd card media that are from the likes of:

FreeBSD-14.0-CURRENT-arm-armv7-GENERICSD-20221007-b05b1ecbef0-258483.img

The changes are as follows.

For /boot/efi/EFI/BOOT/bootarm.efi , use the bca9c87b6104 EFI
loader from main [so: 14], not later.
(Other earlier ones/13.1-STABLE ones/etc. also would work.)

Add the files:

/boot/efi/bcm2710-rpi-2-b.dtb
/boot/efi/bcm2710-rpi-3-b-plus.dtb
/boot/efi/bcm2710-rpi-3-b.dtb
/boot/efi/bcm2710-rpi-cm3.dtb

Add at least one of:

/boot/efi/overlays/disable-bt.dtbo
/boot/efi/overlays/miniuart-bt.dtbo

Put one of those 2 to use via config.txt , such as via:

# diff -u /boot/efi/config.txt.orig /boot/efi/config.txt
--- /boot/efi/config.txt.orig   2022-10-07 05:38:00.000000000 +0000
+++ /boot/efi/config.txt        2022-10-13 05:39:26.000000000 +0000
@@ -3,3 +3,6 @@
 kernel=3Du-boot.bin
 kernel7=3Du-boot.bin
 dtoverlay=3Dmmc
+#
+# Local addition(s):
+dtoverlay=3Ddisable-bt

With this both the serial console and HDMI console should
work, each allowing a login.

This may suggest armv7 snapshot content changes in addition
to the EFI loader fixes for what is after bca9c87b6104 .

=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?DCA9791E-6382-4FC2-A4E7-87725A002B0B>