From: Vishnu Pajjuri OS Date: Thu, 30 May 2019 07:59:46 +0000 (+0000) Subject: xen/arm: p2m: configure stage-2 page table to support upto 42-bit PA systems X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=896ebdfa3a85f083c93bec8ae80a535c0e50f47e;p=people%2Fsstabellini%2Fxen-unstable.git%2F.git xen/arm: p2m: configure stage-2 page table to support upto 42-bit PA systems At the moment, on platform supporting 42-bit PA, Xen will only expose 40-bit worth of IPA to all domains. The limitation was to prevent allocating too much memory for the root page tables as those platforms only support 3-levels page-tables. At the time, this was deemed acceptable because none of the platforms had address wired above 40-bits. However, newer platforms take advantage of the full address space. This will result to break Dom0 boot as it can't access anything above 40-bit. The only way to support 42-bit IPA is to allocate 8 pages for the root page-tables. This is a bit a waste of memory as Xen does not offer per-guest stage-2 configuration. But it is considered acceptable as current platforms support 42-bit PA have a lot of memory. In the future, we may want to consider per-guest stage-2 configuration to reduce the waste. Signed-off-by: Feng Kan Signed-off-by: Vishnu [julien: rework commit message] Acked-by: Julien Grall --- diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index 92c2413f20..7712991f3b 100644 --- a/xen/arch/arm/p2m.c +++ b/xen/arch/arm/p2m.c @@ -1995,7 +1995,7 @@ void __init setup_virt_paging(void) [0] = { 32, 32/*32*/, 0, 1 }, [1] = { 36, 28/*28*/, 0, 1 }, [2] = { 40, 24/*24*/, 1, 1 }, - [3] = { 42, 24/*22*/, 1, 1 }, + [3] = { 42, 22/*22*/, 3, 1 }, [4] = { 44, 20/*20*/, 0, 2 }, [5] = { 48, 16/*16*/, 0, 2 }, [6] = { 0 }, /* Invalid */