[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH V5 07/10] xen/arm: Set 'reg' of cpu node for dom0 to match MPIDR's affinity
From: Chen Baozi <baozich@xxxxxxxxx> According to ARM CPUs bindings, the reg field should match the MPIDR's affinity bits. We will use AFF0 and AFF1 when constructing the reg value of the guest at the moment, for it is enough for the current max vcpu number. Signed-off-by: Chen Baozi <baozich@xxxxxxxxx> --- xen/arch/arm/domain_build.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index a156de9..5591d82 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -712,6 +712,7 @@ static int make_cpus_node(const struct domain *d, void *fdt, char buf[15]; u32 clock_frequency; bool_t clock_valid; + uint32_t mpidr_aff; DPRINT("Create cpus node\n"); @@ -761,9 +762,16 @@ static int make_cpus_node(const struct domain *d, void *fdt, for ( cpu = 0; cpu < d->max_vcpus; cpu++ ) { - DPRINT("Create cpu@%u node\n", cpu); + /* + * According to ARM CPUs bindings, the reg field should match + * the MPIDR's affinity bits. We will use AFF0 and AFF1 when + * constructing the reg value of the guest at the moment, for it + * is enough for the current max vcpu number. + */ + mpidr_aff = vcpuid_to_vaffinity(cpu); + DPRINT("Create cpu@%x node\n", mpidr_aff); - snprintf(buf, sizeof(buf), "cpu@%u", cpu); + snprintf(buf, sizeof(buf), "cpu@%x", mpidr_aff); res = fdt_begin_node(fdt, buf); if ( res ) return res; @@ -776,7 +784,7 @@ static int make_cpus_node(const struct domain *d, void *fdt, if ( res ) return res; - res = fdt_property_cell(fdt, "reg", cpu); + res = fdt_property_cell(fdt, "reg", mpidr_aff); if ( res ) return res; -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |