Physical memory start contraints in the Linux kernel (Was: Re: Xen osstest on Calxeda midway progress (Was: Re: [Xen-devel] [xen-unstable test] 21486: tolerable FAIL - PUSHED))

Russell King - ARM Linux linux at arm.linux.org.uk
Tue Nov 12 09:41:28 EST 2013


On Tue, Nov 12, 2013 at 02:35:10PM +0000, Julien Grall wrote:
> During some debugging on the Arndale and Midway, I found another  
> constraint with CONFIG_ARM_PATCH_PHYS_VIRT.
> I have noticed that all the kernel physical addresses must be lower than  
> the corresponding virtual addresses. So the delta offset compute in  
> __fixup_pv_table (arch/arm/kernel/head.S) must always be negative.
> If this assertion is not validated, when the kernel will browse the  
> memory bank (sanity_check_info in arch/arm/mm/mmu.c), __phys(...) will  
> compute a wrong address and will result to consider all memory bank as  
> highmem.
>
> After digging in the code, it seems it's due to some optimization during  
> opcode fixup in __fixup_a_pvtable. Is it a wanted constraint?

Are you talking about the code in v3.12 or the code in -next ?



More information about the linux-arm-kernel mailing list