]> xenbits.xensource.com Git - people/sstabellini/xen-unstable.git/.git/commitdiff
xen/arm: p2m: configure stage-2 page table to support upto 42-bit PA systems
authorVishnu Pajjuri OS <vishnu@os.amperecomputing.com>
Thu, 30 May 2019 07:59:46 +0000 (07:59 +0000)
committerJulien Grall <julien.grall@arm.com>
Thu, 6 Jun 2019 15:48:13 +0000 (16:48 +0100)
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 <fengkan@os.amperecomputing.com>
Signed-off-by: Vishnu <vishnu@os.amperecomputing.com>
[julien: rework commit message]
Acked-by: Julien Grall <julien.grall@arm.com>
xen/arch/arm/p2m.c

index 92c2413f2025b067d1129f8084828ad75aa7e3a6..7712991f3bba432624012545559017bf84d087a9 100644 (file)
@@ -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 */