From: Penny Zheng <penny.zh...@arm.com> To add statically shared memory nodes in Dom0, user shall put according static shared memory configuration under /chosen node.
This commit adds shm-processing function process_shm in construct_dom0 to enable statically shared memory on Dom0. Signed-off-by: Penny Zheng <penny.zh...@arm.com> Reviewed-by: Stefano Stabellini <sstabell...@kernel.org> --- v5 change: - no change --- v4 change: - no change --- v3 change: - no change --- v2 change: - no change --- xen/arch/arm/domain_build.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 4d62440a0e..b57c60f411 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -2658,6 +2658,11 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo, if ( res ) return res; } + + res = make_resv_memory_node(d, kinfo->fdt, addrcells, sizecells, + &kinfo->shm_mem); + if ( res ) + return res; } res = fdt_end_node(kinfo->fdt); @@ -3730,6 +3735,9 @@ static int __init construct_dom0(struct domain *d) { struct kernel_info kinfo = {}; int rc; +#ifdef CONFIG_STATIC_SHM + const struct dt_device_node *chosen = dt_find_node_by_path("/chosen"); +#endif /* Sanity! */ BUG_ON(d->domain_id != 0); @@ -3764,6 +3772,12 @@ static int __init construct_dom0(struct domain *d) allocate_memory_11(d, &kinfo); find_gnttab_region(d, &kinfo); +#ifdef CONFIG_STATIC_SHM + rc = process_shm(d, &kinfo, chosen); + if ( rc < 0 ) + return rc; +#endif + /* Map extra GIC MMIO, irqs and other hw stuffs to dom0. */ rc = gic_map_hwdom_extra_mappings(d); if ( rc < 0 ) -- 2.25.1