[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 14/25] xen/arm: introduce construct_domU
Similar to construct_dom0, construct_domU creates a barebone DomU guest. The device tree node passed as argument is compatible "xen,domain", see docs/misc/arm/device-tree/booting.txt. Signed-off-by: Stefano Stabellini <stefanos@xxxxxxxxxx> --- Changes in v3: - move setting type before allocate_memory - add ifdef around it and a comment Changes in v2: - rename mem to memory - make cpus and memory mandatory - remove wront comment from commit message - cpus and memory are read as integers - read the vpl011 option --- xen/arch/arm/domain_build.c | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 8f7ac54..101cca2 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -2208,7 +2208,41 @@ static int __init __construct_domain(struct domain *d, struct kernel_info *kinfo static int __init construct_domU(struct domain *d, struct dt_device_node *node) { - return 0; + struct kernel_info kinfo = {}; + int rc; + u32 mem; + + printk("*** LOADING DOMU ***\n"); + + rc = dt_property_read_u32(node, "cpus", &d->max_vcpus); + if ( !rc ) + return -EINVAL; + + rc = dt_property_read_u32(node, "memory", &mem); + if ( !rc ) + return -EINVAL; + kinfo.unassigned_mem = (paddr_t)mem << 10; + + d->vcpu = xzalloc_array(struct vcpu *, d->max_vcpus); + if ( !d->vcpu ) + return -ENOMEM;; + if ( alloc_vcpu(d, 0, 0) == NULL ) + return -ENOMEM; + d->max_pages = ~0U; + + kinfo.d = d; + + rc = kernel_probe(&kinfo, node); + if ( rc < 0 ) + return rc; + +#ifdef CONFIG_ARM_64 + /* type must be set before allocate memory */ + d->arch.type = kinfo.type; +#endif + allocate_memory(d, &kinfo); + + return __construct_domain(d, &kinfo); } void __init create_domUs(void) -- 1.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |