arm64 regression in kernel 5.12 related to the (n)VHE

Marc Zyngier maz at kernel.org
Wed Aug 11 05:50:11 PDT 2021


Hi Rafał,

On Wed, 11 Aug 2021 13:15:31 +0100,
Rafał Miłecki <zajec5 at gmail.com> wrote:
> 
> Hi,
> 
> I just tried upgrading from the old good LTS kernel 5.10 and I
> discovered that my bcm4908 boards don't boot anymore with the 5.14-rc5.
> 
> 
> The problem is kernel doesn't seem to start booting at all. I see CFE
> bootloader messages:
> 
> Starting program at 0x0000000000080000
> /memory = 0x40000000
> 
> and then nothing. Normally the first kernel line should follow like a:
> Linux version 5.11.0-rc4 (rmilecki at localhost.localdomain) (aarch64-buildroot-linux-uclibc-gcc.br_real (Buildroot -g91617ed) 9.3.0, GNU ld (GNU Binutils) 2.33.1) #30 SMP Wed Aug 11 14:01:00 CEST 2021
> 
> 
> I have zero knowledge of low level arm64 or assembler stuff. I also
> don't own any bcm4908 development board or bcm4908 datasheets.
> 
> All I could do to help debugging this regression was bisecting. The
> first bad commit (I verified it after bisecting process) is:
> 
> commit 0c93df9622d4d921bcd0dc83f71fed9e98f5119f
> Author: Marc Zyngier <maz at kernel.org>
> Date:   Mon Feb 8 09:57:14 2021 +0000
> 
>     arm64: Initialise as nVHE before switching to VHE
> 
>     As we are aiming to be able to control whether we enable VHE or
>     not, let's always drop down to EL1 first, and only then upgrade
>     to VHE if at all possible.
> 
>     This means that if the kernel is booted at EL2, we always start
>     with a nVHE init, drop to EL1 to initialise the the kernel, and
>     only then upgrade the kernel EL to EL2 if possible (the process
>     is obviously shortened for secondary CPUs).
> 
>     The resume path is handled similarly to a secondary CPU boot.
> 
>     Signed-off-by: Marc Zyngier <maz at kernel.org>
>     Acked-by: David Brazdil <dbrazdil at google.com>
>     Acked-by: Catalin Marinas <catalin.marinas at arm.com>
>     Link: https://lore.kernel.org/r/20210208095732.3267263-6-maz@kernel.org
>     [will: Avoid calling switch_to_vhe twice on kaslr path]
>     Signed-off-by: Will Deacon <will at kernel.org>
> 
> 
> Could you look at this issue, please? I'm happy to test any patches or
> provide any extra info I can obtain using kernel 5.11.
> 
> 
> My defconfig for bcm4908 is:

[...]

I don't think the dconfig is that relevant (nothing you quote here
would have an impact that early in the boot process).

On the other hand, a description of the platform (what CPUs does it
have) and how it boots (VHE, non-VHE, booted at EL2 or not) would be
extremely useful. At minimum, a boot log of a working kernel could
help.

Florian: is it something you are seeing on your own systems?

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.



More information about the linux-arm-kernel mailing list