[PATCH] ARM: uncompress: Enable debug in head.S

Linus Walleij linus.walleij at linaro.org
Tue Sep 29 09:48:48 EDT 2020


On Wed, Sep 23, 2020 at 12:13 AM Dmitry Osipenko <digetx at gmail.com> wrote:

> I have CONFIG_DEBUG_UNCOMPRESS=y and was trying today's linux-next which
> unfortunately doesn't work well on NVIDIA Tegra30 because it's
> frequently failing to boot, hanging early during boot, about 1 of 5
> boots are failing. Then I also noticed that Tegra20 has a similar
> problem, but worse, only 1 of 10 boots succeed.

Hm let's try to fix that.

So you got the "Uncompressing Linux..." message before and all
worked fine? So we know the physical UART base is correct.

> I loaded Tegra2 QEMU and got it also hanging on boot. I retried multiple
> times and most of the times it's was a silent CPU hang, but one time I
> got an endlessly reoccurring debug message from QEMU telling that CPU
> tries to write to a wrong/non-existent IO address. Then I attached to
> QEMU's GDB session and found that CPU hangs at the busyuart.

Could you try to implement
waituarttxrdy in arch/arm/include/debug/tegra.S?
A copy of the contents in busyuart should work.

I suspect this could be FIFO overflow making the hardware
hang.

If this is trouble to you I can try to make a patch
that you can test, just tell me.

> Reverting
> this patch resolves the trouble for both QEMU and real HW.
>
> I also tried to revert only the "ARM: 9006/1: uncompress: Wait for ready
> and busy in debug prints" patch and got this in QEMU:
>
> Starting kernel ...
>
> DTB:0x016F6A20 (0x00005DA6)
> C:0x010000C0-0x016FC820->0x0125AF00-0x01957660
> Uncompressing Linux...
(...)
> LZMA data is corrupt
>
>  -- System halted

Hmmmm is the physical and virtual address to the UART
really correct?

Else it might write in some random memory.

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list