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>