Garbage UART output on RPI 4 with upstream kernel DTB

Stefan Wahren stefan.wahren at i2se.com
Tue Dec 24 12:56:54 CET 2019


Hi Matthias,

Am 23.12.19 um 21:20 schrieb Matthias Brugger:
> Hi Stefan,
>
> On 23/12/2019 19:51, Stefan Wahren wrote:
>> Am 20.12.19 um 14:58 schrieb Stefan Wahren:
>>> Hi,
>>>
>>> i tried to run current U-Boot (rpi_4_32b_defconfig) on my RPi 4 with
>>> bcm2711-rpi-4-b.dtb from the upstream kernel. Unfortunately i only see
>>> garbage on the debug UART (pin 14 & 15). Using the DTB from the
>>> downstream kernel has a proper UART output. The config.txt contains
>>> debug_uart=1
>>>
>>> I compared both and identified an offending Linux commit:
>>> ARM: dts: bcm283x: Remove brcm,bcm2835-pl011 compatible
>>>
>>> Unfortunately reverting this patch still doesn't fix the issue. Any ideas?
>> After hours of playing with the DTB, i finally found the reason why the
>> upstream kernel DTB doesn't work with U-Boot on RPI 4. The DTS must be
>> compiled with flag "-@".
>>
>> It isn't clear to me, why this is necessary but it would be nice to make
>> U-Boot work without this.
>>
> Can you provide the exact command you are using?

i didn't call dtc directly via command line. I just added this Makefile
hack [1] to the Linux upstream tree. This will add a __symbols__ section
to the DTB which is required for overlays. You can verify this with dtdiff.

Since the upstream kernel boots without the __symbols__ section, i think
this garbage output issue could be fixed in u-boot.

Regards
Stefan

[1] -
https://github.com/raspberrypi/linux/blob/b85f76a63d5f1b13220c61244469d55487db84f1/arch/arm/boot/dts/Makefile#L1231

>
> Regards,
> Matthias



More information about the U-Boot mailing list