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 <fengkan@os.amperecomputing.com>
Signed-off-by: Vishnu <vishnu@os.amperecomputing.com>
[julien: rework commit message]
Acked-by: Julien Grall <julien.grall@arm.com>
This commit is contained in:
Vishnu Pajjuri OS authored and Julien Grall committed 2019-06-06 16:48:13 +01:00
1 parent 93099a4afc
commit 896ebdfa3a
1 file changed
+1 -1
+1 -1
View 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 */
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.