Peter Maydell <[email protected]> writes: > On Tue, 9 Jan 2024 at 14:21, Alex Bennée <[email protected]> wrote: >> >> 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? > > Sure. We could make the highmem property description read: > > # Set on/off to enable/disable placing devices and RAM in physical > # address space above 32 bits. The default is on for machine types > # later than virt-2.12 when the CPU supports an address space > # bigger than 32 bits (i.e. 64-bit CPUs, and 32-bit CPUs with the > # Large Physical Address Extension (LPAE) feature). If you want to > # boot a 32-bit kernel which does not have CONFIG_LPAE enabled on > # a CPU type which implements LPAE, you will need to manually set > # this to 'off'; otherwise some devices, such as the PCI controller, > # will not be accessible. > > How's that ?
LGTM and even if the users don't read it hopefully the LLMs will ;-) Reviewed-by: Alex Bennée <[email protected]> -- Alex Bennée Virtualisation Tech Lead @ Linaro
