Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Jul 2022 17:57:36 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        "Dr. Rolf Jansen" <freebsd-rj@cyclaero.com>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: Failed to execute custom kernels which where build on a RPi 4 operated by 13.1-RELEASE
Message-ID:  <0A80CA1D-A3B7-4565-A059-B55FF05DE51B@yahoo.com>
In-Reply-To: <B1296677-558F-49F3-B7B7-2784ACA6612B@cyclaero.com>
References:  <B1296677-558F-49F3-B7B7-2784ACA6612B@cyclaero.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2022-Jul-4, at 16:57, Dr. Rolf Jansen <freebsd-rj@cyclaero.com> =
wrote:

> Hello!

Hello.

> On my brand new RPi 4 B (0xb03115), operated by 13.1-RELEASE, I built =
2 custom kernels, with kernel configs from different sources. Building =
and installing went through without issues.

Have you tried rebuilding the kernel without customizations to
see if the installed result boots? (Compare/contrast with having
the customizations.)

(I gather that the official 13.1-RELEASE installation does
boot the modern RPi4B okay. True?)

What type of boot media are in use in each boot test? microsd card?
USB3? USB2?

I have yet to have my hands on a 0xb03115 RPi4B variant (so: Rev 1.5).
It is my understanding that the RPi4B firmware vintage has to be
recent enough to correctly handle the new PMIC used on the rev 1.5
variants:

QUOTE (of RPi engineers on its forums on 2022-Feb-08):
The PMIC has been changed. Needs firmware from April 21 or later
. . .
The firmware in both Raspberry Pi OS - Buster (legacy) and Bullseye =
supports this. The bootloader has supported this since Apr 2021 =
(previous default release).
END QUOTE

See: https://forums.raspberrypi.com/viewtopic.php?t=3D329299

> cd /
> fetch =
https://download.freebsd.org/releases/arm64/aarch64/13.1-RELEASE/src.txz
> tar -xzf src.txz
> cd /usr/src
>=20
> Here is the last kernel config which I used:
>=20
> cat /usr/src/sys/arm64/conf/GENERIC-RPi4
>=20
>   include	GENERIC
>   ident	GENERIC-RPi4
>   nooptions	SOC_NVIDIA_TEGRA210
>=20
>=20
> make -j4 buildkernel KERNCONF=3DGENERIC-RPi4
> make installkernel KERNCONF=3DGENERIC-RPi4
>=20
> When restarting with any of the new kernels, booting stalls after =
these messages in the serial console:
>=20
>   ...
>   sdhci_bcm0-slot0: AC12 err: 0x00000000 | Host ctl2:0x00000000
>   sdhci_bcm0-slot0: Caps:     0x00000000 | Caps2:    0x00000000
>   sdhci_bcm0-slot0: Max curr: 0x00000001 | ADMA err: 0x00000000
>   sdhci_bcm0-slot0: ADMA addr:0x00000000 | Slot int: 0x00000000
>   sdhci_bcm0-slot0: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=

>   uhub0: 5 ports with 4 removable, self powered
>   mmc0: No compatible cards found on bus
>=20
> The last line is not indicative for the error, since I see this as =
well with the original GENERIC kernel, only then it does not even think =
once and continues without pause in the boot sequence.

Looking at an old, saved capture of the serial console from a
prior RPi4B boot of main, I see the sequence:

. . .
uhub0: 5 ports with 4 removable, self powered
sdhci_bcm0-slot0: Got command interrupt 0x00030000, but there is no =
active command.
sdhci_bcm0-slot0: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D REGISTER =
DUMP =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
sdhci_bcm0-slot0: Sys addr: 0x00000000 | Version:  0x00009902
sdhci_bcm0-slot0: Blk size: 0x00000000 | Blk cnt:  0x00000000
sdhci_bcm0-slot0: Argument: 0x00000000 | Trn mode: 0x00000000
sdhci_bcm0-slot0: Present:  0x000f0000 | Host ctl: 0x00000001
sdhci_bcm0-slot0: Power:    0x0000000f | Blk gap:  0x00000000
sdhci_bcm0-slot0: Wake-up:  0x00000000 | Clock:    0x00003947
sdhci_bcm0-slot0: Timeout:  0x00000000 | Int stat: 0x00000000
sdhci_bcm0-slot0: Int enab: 0x01ff00bb | Sig enab: 0x01ff00bb
sdhci_bcm0-slot0: AC12 err: 0x00000000 | Host ctl2:0x00000000
sdhci_bcm0-slot0: Caps:     0x00000000 | Caps2:    0x00000000
sdhci_bcm0-slot0: Max curr: 0x00000001 | ADMA err: 0x00000000
sdhci_bcm0-slot0: ADMA addr:0x00000000 | Slot int: 0x00000000
sdhci_bcm0-slot0: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
mmc0: No compatible cards found on bus
mmc1: No compatible cards found on bus
bcm2835_cpufreq0: ARM 2000MHz, Core 500MHz, SDRAM -1094MHz, Turbo ON
CPU  0: ARM Cortex-A72 r0p3 affinity:  0
                   Cache Type =3D <64 byte D-cacheline,64 byte =
I-cacheline,PIPT ICache,64 byte ERG,64 byte CWG>
 Instruction Set Attributes 0 =3D <CRC32>
 Instruction Set Attributes 1 =3D <>
. . .

This boot was via USB3, not the microsd card. Thus the

mmc1: No compatible cards found on bus

was expected in my sequence. Were you booting from USB3?
microsd card? . . .?

If the official 13.1-RELEASE image copy boots from the same
type of media, what displays at that point for the official
build? Is it a "bcm2835_cpufreq0:" line?

Note: the -1094MHz is from FreeBSD printing unsigned data
based on a signed interpretation. My configuration is set
up to run faster than the defaults as well ("ARM 2000MHz").

> Is anyone able to build !!!working!!! custom kernels with the =
13.1-RELEASE sources on the very RPi 4?

You might want to try a boot -v to have more stages
output. It might give more accuracy about the last
stage that can successfully output.


=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?0A80CA1D-A3B7-4565-A059-B55FF05DE51B>