Running u-boot 2021.04 on Raspberry Pi 4

Matthias Brugger mbrugger at suse.com
Fri Apr 9 12:15:24 CEST 2021



On 09/04/2021 10:14, Nicolas Saenz Julienne wrote:
> [ Adding Matthias for the SMBIOS part ]
> 
> On Fri, 2021-04-09 at 00:00 -0700, Roman Shaposhnik wrote:
>> On Thu, Apr 8, 2021 at 8:59 PM Sean Anderson <seanga2 at gmail.com> wrote:
>>> On 4/8/21 8:18 PM, Roman Shaposhnik wrote:
>>>> Hi!
>>>>
>>>> first time poster, long time lurker here. Over at Project EVE
>>>> https://github.com/lf-edge/eve I've been trying to migrate
>>>> from our current u-boot v2020.07 + patches:
>>>>
>>>> https://github.com/lf-edge/eve/tree/master/pkg/u-boot/patches/patches-v2020.07
>>>> to the latest u-boot 2021.04.
>>>>
>>>> Great news is that most of the patches we dependent
>>>> on seem to have been pulled upstream. However, this
>>>> single *chunk* of one patchset wasn't:
>>>>
>>>> https://github.com/lf-edge/eve/blob/master/pkg/u-boot/patches/patches-v2020.07/0001-usb-xhci-Load-Raspberry-Pi-4-VL805-s-firmware.patch#L293
>>>>
>>>> I'm wondering what was the reason for leaving it behind,
>>>
>>> +CC Nicolas
>>>
>>>>   - Get rid of PCI core patch as not needed with correct DT PCI topology 
>>>
>>> also from the cover letter
>>>
>>>> This also depends on a DT/bindings patch available on the linux-mailing lists:
>>>> https://www.mail-archive.com/linux-kernel@.../msg2205783.html
>>>
>>> The merged version of this series is
>>>
>>> https://patchwork.kernel.org/project/linux-usb/list/?series=310015&state=%2A&archive=both
>>>
>>>> Here is the relevant bit for reference/discussion:
>>>>
>>>>          &pcie0 {
>>>>                 pci at 1,0 {
>>>>                         #address-cells = <3>;
>>>>                         #size-cells = <2>;
>>>>                         ranges;
>>>>
>>>>                         reg = <0 0 0 0 0>;
>>>>
>>>>                         usb at 1,0 {
>>>>                                 reg = <0x10000 0 0 0 0>;
>>>>                                 resets = <&reset RASPBERRYPI_FIRMWARE_RESET_ID_USB>;
>>>>                         };
>>>>                 };
>>>>          };
>>>
> 
> Yes, instead of using a PCI quirk we settled on a reset controller. All in all
> it is less hacky. But needs changes in DT.
> 
>> Aha! Thank you so much -- this is super helpful!
>>  
>>>> since without it I don't seem to have functioning USB
>>>> devices on my  Raspberry Pi 4. In fact, adding it back:
>>>>
>>>> https://github.com/rvs/eve/tree/u-boot/pkg/u-boot/patches/patches-v2021.04
>>>> (just that one chunk -- 'cuz the reset got upstreamed)
>>>> seems to solve the issue for me.
>>>>
>>>> Another question I have is that the new u-boot seems to have
>>>> some kind of a regression that I can't quite debug. The SMBIOS
>>>> tables that it constructs during EFI boot sequence seem to be
>>>> broken (see the dmidecode output below). Again, this seems
>>>> to be a regression compared to  v2020.07. Any ideas on what
>>>> could be wrong or how can I start debugging it would be
>>>

Yes, that's not working right now. I'm working on a fix for the tables:
https://patchwork.ozlabs.org/project/uboot/patch/20210406090435.19357-1-matthias.bgg@kernel.org/

This will fix the error en dmidecode but the tables will be basically empty.
Before that there was some information that helped you to identify that you are
running on a RaspberryPi.

A quick fix would be to add that information to the DTS. Like for example done here:
https://source.denx.de/u-boot/u-boot/-/blob/master/arch/arm/dts/rk3328-rock64-u-boot.dtsi#L13

On the long run we want to add a sysinfo driver to read the information for the
mailbox driver and use that. But my understanding is that for that we would need
to create a SPL for the mailbox driver to provide that info in a shared data
structure. It's still on my list for investigation.

Regards,
Matthias

>>> You can always bisect it ;)
>>>
>>
>>
>> LOL -- true! I was just hoping someone would recognize the issue perhaps.
>>
>> Thanks,
>> Roman. 
> 
> 



More information about the U-Boot mailing list