Am 31.03.22 um 15:19 schrieb Peter Robinson:
> Hi Stefan,
>>>> At least the 32 bit issues on Raspberry Pi 4 are expected since the
>>>> kernel config doesn't have ARM_LPAE enabled.
>>> Okay, here is the explanation for the different behavior on Raspberry Pi
>>> 400 and Raspberry Pi 4 B. The Raspberry Pi 400 has a newer BCM2711 SoC
>>> (Stepping C0), which have less DMA restrictions for the emmc2 interface
>>> (responsible for SD card access). For the Raspberry Pi 4 B there are
>>> older boards which have Stepping B0 and all the new boards should have
>>> Stepping C0 .
>>> Unfortunately there is no 100% reliable way to detect the stepping from
>>> the kernel side. So currently the Raspberry Pi firmware patches the
>>> dma-ranges in the firmware DT . So in case U-Boot  or another
>>> bootloader ignores this firmware DT and read a fresh DTB the right
>>> dma-ranges get lost. Finally this results in unexpected behavior as soon
>>> the emmc2 switches to DMA mode .
>> Okay, at least i found a fix  for the 64 bit boot issues (Original
>> Fedora 35, Linux 5.14) with RPi 400/RPi 4 Stepping C0. This requires the
>> DTB files to be updated and U-Boot to choose between the B0 and the C0
>> variant of the Rpi 4 DTB file.
> Thanks for the update on this, great news. In the case of the RPi-400
> are they all the C0 stepping? I don't see the 400 in your patch.
Yes, please look at 
The patch changes makes bcm2711.dtsi default to C0. So all including RPi
4 boards (RPi 4, CM4, RPi 400) will be affected and all new boards don't
need to care about it.
> Is there a documented way of detecting the stepping that can be used
> in U-Boot I can use to create a patch there, or did you have a test
> patch for this?
I searched in the Raspberry Pi forum and there was the statement that
there is no direct (official) way to detect the SoC stepping. A
possibility might be to detect the DMA range provided by the firmware
FDT (U-Boot has dev_get_dma_range() for this) and based on the value
decide which DTB should be loaded (bcm2711-rpi-4-b.dtb for C0 and
bcm2711-rpi-4-b-b0.dtb for B0).
> Do you plan to send this patch upstream, if so feel free to add me to
> the cc and in the mean time I'll test it.
Yes. I didn't send it yet, because the merge window is currently open
and i want to rebase it on 5.18-rc1. The patch itself is a little bit
controversial (fix which introduce new file and change behavior).
>> Unfortunately this doesn't fix the SD card issues on 32 bit.
> That's less of a problem, Fedora 36 will be the last version of Fedora
> to support 32 bit and I've always suggested people run 64 bit Fedora
> on their RPi4 and most people do tend to do that.
 - https://github.com/raspberrypi/firmware/issues/1704
arm mailing list -- firstname.lastname@example.org
To unsubscribe send an email to email@example.com
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://firstname.lastname@example.org
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure
Post a Comment