Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 7 Jan 2023 16:59:41 -0800
From:      Mark Millard <marklmi@yahoo.com>
To:        =?utf-8?Q?Klaus_K=C3=BCchemann?= <maciphone2@googlemail.com>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: How to make FreeBSD's kernel boot a RPi4B with modern RPi* firmware
Message-ID:  <217ACD33-A466-4A01-AD36-5D4A0C1B3CF0@yahoo.com>
In-Reply-To: <E1A6057C-4E0F-45B7-9278-86A09426DE49@googlemail.com>
References:  <9C037D3F-A440-4708-993D-117F313691BB@yahoo.com> <374EC3E5-4CB4-4336-A8B9-7A9CF6151691@yahoo.com> <BCCBE0D7-8BEB-4D6D-A017-9A59000F1E2B@yahoo.com> <9E9C739E-8308-472A-B797-05A37559DD00@googlemail.com> <EAD84A57-E8F0-4149-BCFC-8A06FF03B11B@yahoo.com> <E1A6057C-4E0F-45B7-9278-86A09426DE49@googlemail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Jan 7, 2023, at 10:58, Klaus K=C3=BCchemann =
<maciphone2@googlemail.com> wrote:

>=20
>> Am 07.01.2023 um 11:18 schrieb Mark Millard <marklmi@yahoo.com>:
>>=20
>>=20
>> =E2=80=A6=E2=80=A6=E2=80=A6=E2=80=A6=E2=80=A6=E2=80=A6=E2=80=A6=E2=80=A6=
...
>>>>=20
>>>>=20
>>>> stable/13's source code changes are ( similarly for
>>>> releng/13.1 ):
>>>>=20
>>>> # git -C /usr/13S-src/ diff sys/arm/broadcom/bcm2835/bcm2835_dma.c
>>>> diff --git a/sys/arm/broadcom/bcm2835/bcm2835_dma.c =
b/sys/arm/broadcom/bcm2835/bcm2835_dma.c
>>>> index cab8639bb607..6d521d6dcace 100644
>>>> --- a/sys/arm/broadcom/bcm2835/bcm2835_dma.c
>>>> +++ b/sys/arm/broadcom/bcm2835/bcm2835_dma.c
>>>> @@ -766,5 +766,6 @@ static driver_t bcm_dma_driver =3D {
>>>>=20
>>>> static devclass_t bcm_dma_devclass;
>>>>=20
>>>> -DRIVER_MODULE(bcm_dma, simplebus, bcm_dma_driver, =
bcm_dma_devclass, 0, 0);
>>>> +EARLY_DRIVER_MODULE(bcm_dma, simplebus, bcm_dma_driver, =
bcm_dma_devclass,
>>>> +    0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE);
>>>> MODULE_VERSION(bcm_dma, 1);
>>>>=20
>>>>=20
>>>> main's [so: 14's] source code changes are:
>>>>=20
>>>> # git -C /usr/main-src/ diff sys/arm/broadcom/bcm2835/bcm2835_dma.c
>>>> diff --git a/sys/arm/broadcom/bcm2835/bcm2835_dma.c =
b/sys/arm/broadcom/bcm2835/bcm2835_dma.c
>>>> index 5f9ecb0b7981..d901447df1e9 100644
>>>> --- a/sys/arm/broadcom/bcm2835/bcm2835_dma.c
>>>> +++ b/sys/arm/broadcom/bcm2835/bcm2835_dma.c
>>>> @@ -764,5 +764,6 @@ static driver_t bcm_dma_driver =3D {
>>>>      sizeof(struct bcm_dma_softc),
>>>> };
>>>>=20
>>>> -DRIVER_MODULE(bcm_dma, simplebus, bcm_dma_driver, 0, 0);
>>>> +EARLY_DRIVER_MODULE(bcm_dma, simplebus, bcm_dma_driver, 0, 0,
>>>> +    BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE);
>>>> MODULE_VERSION(bcm_dma, 1);
>>>>=20
>>=20
>>=20
>> =3D=3D=3D
>> Mark Millard
>> marklmi at yahoo.com
>>=20
>=20
>=20
> =E2=80=A6=E2=80=A6.on the other hand : if your =
EARLY_DRIVER_MODULE(bcm_dma=E2=80=A6 doesn=E2=80=99t do anything wrong,
> you could give it in phabricator review, why not?!..

Yep, once I've better evidence from the RPi*'s that I have
access to.

I'll note that no vintages of the following .dtb files are
in the current sysutils/rpi-firmware port:

bcm2709-rpi-cm2.dtb
bcm2710-rpi-zero-2-w.dtb
bcm2710-rpi-zero-2.dtb
bcm2711-rpi-cm4s.dtb

I've no direct evidence of if any vintage of any of these
would end up hitting the bcm_dma issue or not. But I expect
that the EARLY_DRIVER_MODULE related patching would avoid
(just!) that specific crash problem if it would otherwise
would occur.

There is:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D261147

reporting the absence of bcm2710-rpi-zero-2-w.dtb . So
someone might want to experiment with more recent RPi*
firmware, possibly even to develop some level of support
for bcm2710-rpi-zero-2-w.dtb (live Device Tree possibly
adjusted by the RPi* firmware) --if changes are needed.

The .dtb vintage and the RPi* start*.efi and the like
vintages are not necessarily fully independent. Mixing
and matching could be a problem, independent of any
additional FreeBSD kernel-related issues. (It is another
example of the poor level of documentation for the RPi*
context.)

=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?217ACD33-A466-4A01-AD36-5D4A0C1B3CF0>