[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC 1/2] xen/arm: Save and expose the p2m IPA address size
From: "Edgar E. Iglesias" <edgar.iglesias@xxxxxxxxxx> Save and expose the p2m IPA address size to arch specific code. This is primarily needed to setup SMMUs as these share p2m tables with guest CPUs. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxxx> --- xen/arch/arm/p2m.c | 7 ++++++- xen/include/asm-arm/p2m.h | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index 8dfee24..58df568 100644 --- a/xen/arch/arm/p2m.c +++ b/xen/arch/arm/p2m.c @@ -17,12 +17,15 @@ #ifdef CONFIG_ARM_64 static unsigned int __read_mostly p2m_root_order; static unsigned int __read_mostly p2m_root_level; +static unsigned int __read_mostly p2m_ipa_bits; #define P2M_ROOT_ORDER p2m_root_order #define P2M_ROOT_LEVEL p2m_root_level +#define P2M_IPA_BITS p2m_ipa_bits #else /* First level P2M is alway 2 consecutive pages */ #define P2M_ROOT_LEVEL 1 #define P2M_ROOT_ORDER 1 +#define P2M_IPA_BITS 40 #endif #define P2M_ROOT_PAGES (1<<P2M_ROOT_ORDER) @@ -1310,6 +1313,7 @@ int p2m_init(struct domain *d) p2m->root = NULL; + p2m->ipa_bits = P2M_IPA_BITS; p2m->max_mapped_gfn = 0; p2m->lowest_mapped_gfn = ULONG_MAX; @@ -1557,9 +1561,10 @@ void __init setup_virt_paging(void) p2m_root_order = pa_range_info[pa_range].root_order; p2m_root_level = 2 - pa_range_info[pa_range].sl0; + p2m_ipa_bits = 64 - pa_range_info[pa_range].t0sz; printk("P2M: %d-bit IPA with %d-bit PA\n", - 64 - pa_range_info[pa_range].t0sz, + p2m_ipa_bits, pa_range_info[pa_range].pabits); #endif printk("P2M: %d levels with order-%d root, VTCR 0x%lx\n", diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h index 341df55..813ddd0 100644 --- a/xen/include/asm-arm/p2m.h +++ b/xen/include/asm-arm/p2m.h @@ -28,6 +28,9 @@ struct p2m_domain { /* Current VMID in use */ uint8_t vmid; + /* Nr of bits in an IPA. */ + unsigned int ipa_bits; + /* Highest guest frame that's ever been mapped in the p2m * Only takes into account ram and foreign mapping */ -- 1.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |