Peter Maydell <[email protected]> writes:

> On Tue, 9 Jan 2024 at 11:33, Peter Maydell <[email protected]> wrote:
>> On Mon, 8 Jan 2024 at 17:38, Michael Tokarev <[email protected]> wrote:
>> > Speaking of config. This is standard debian config, I'm attaching one
>> > to this email.  It can be found in the package, eg
>> > http://deb.debian.org/debian/pool/main/l/linux/linux-image-6.6.9-armmp_6.6.9-1_armhf.deb
>> > in /boot/config-$(uname -r).
>>
>> It does seem to be a config thing -- on a plain upstream
>> v6.6.9 my config works and that debian default one does
>> not. Now to try to identify which particular config
>> difference is at fault. (It's not the CONFIG_VMSPLIT one,
>> I just tried that.)
>
> Oh, your kernel isn't an LPAE one (i.e. CONFIG_LPAE is not
> set). That will obviously never be able to access registers
> above the 4GB mark (though the kernel's error message in this
> situation is a bit unhelpful and could perhaps be improved).
> If I set CONFIG_LPAE on the non-working config it starts working.
>
> I think then the answer is:
>  * if you want to use the (default) highmem setup, use an LPAE kernel
>  * if you want to use a non-LPAE kernel, tell QEMU to avoid
>    highmem using '-machine virt,highmem=off'

Could we expand the "highmem" description in
https://www.qemu.org/docs/master/system/arm/virt.html to make it
clearer. I'm sure this isn't the first time there have been 32bit
difficulties with non-LPAE kernels?

>
> It was just a bug that we were accidentally disabling highmem
> for the 32-bit 'max' CPU before b8f7959f28c4f3.
>
> The linux-image-6.6.9-armmp-lpae_6.6.9-1_armhf.deb kernel
> will probably work (though I haven't tested it).
>
> thanks
> -- PMM

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro

Reply via email to