On 1/9/24 15:31, Peter Maydell wrote:
> On Tue, 9 Jan 2024 at 14:21, Alex Bennée <alex.ben...@linaro.org> wrote:
>>
>> Peter Maydell <peter.mayd...@linaro.org> writes:
>>
>>> On Tue, 9 Jan 2024 at 11:33, Peter Maydell <peter.mayd...@linaro.org> wrote:
>>>> On Mon, 8 Jan 2024 at 17:38, Michael Tokarev <m...@tls.msk.ru> 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 ?

Looks good to me.

Reviewed-by: Eric Auger <eric.au...@redhat.com>

Eric


> 
> thanks
> -- PMM
> 


Reply via email to