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' 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
