[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/9] spapr: Move server# property out of skeleton fd
From: |
Alexey Kardashevskiy |
Subject: |
[Qemu-devel] [PATCH 3/9] spapr: Move server# property out of skeleton fdt |
Date: |
Thu, 15 May 2014 21:28:05 +1000 |
The upcoming support of the "ibm,client-architecture-support"
reconfiguration method will be able to reduce the number of threads per
core so the server# and gserver# device tree properties are not parts
of the FDT skeleton anymore.
Signed-off-by: Alexey Kardashevskiy <address@hidden>
---
hw/ppc/spapr.c | 37 ++++++++++++++++++++++---------------
1 file changed, 22 insertions(+), 15 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 166c1c6..0f8bd95 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -219,6 +219,9 @@ static int spapr_fixup_cpu_dt(void *fdt, sPAPREnvironment
*spapr)
cpu_to_be32(0x0),
cpu_to_be32(cpu->numa_node),
cpu_to_be32(index)};
+ uint32_t servers_prop[smp_threads];
+ uint32_t gservers_prop[smp_threads * 2];
+ int i;
if ((index % smt) != 0) {
continue;
@@ -245,6 +248,24 @@ static int spapr_fixup_cpu_dt(void *fdt, sPAPREnvironment
*spapr)
if (ret < 0) {
return ret;
}
+
+ /* Build interrupt servers and gservers properties */
+ for (i = 0; i < smp_threads; i++) {
+ servers_prop[i] = cpu_to_be32(index + i);
+ /* Hack, direct the group queues back to cpu 0 */
+ gservers_prop[i*2] = cpu_to_be32(index + i);
+ gservers_prop[i*2 + 1] = 0;
+ }
+ ret = fdt_setprop(fdt, offset, "ibm,ppc-interrupt-server#s",
+ servers_prop, sizeof(servers_prop));
+ if (ret < 0) {
+ return ret;
+ }
+ ret = fdt_setprop(fdt, offset, "ibm,ppc-interrupt-gserver#s",
+ gservers_prop, sizeof(gservers_prop));
+ if (ret < 0) {
+ return ret;
+ }
}
return ret;
}
@@ -311,7 +332,7 @@ static void *spapr_create_fdt_skel(hwaddr initrd_base,
char qemu_hypertas_prop[] = "hcall-memop1";
uint32_t refpoints[] = {cpu_to_be32(0x4), cpu_to_be32(0x4)};
uint32_t interrupt_server_ranges_prop[] = {0, cpu_to_be32(smp_cpus)};
- int i, smt = kvmppc_smt_threads();
+ int smt = kvmppc_smt_threads();
unsigned char vec5[] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x80};
QemuOpts *opts = qemu_opts_find(qemu_find_opts("smp-opts"), NULL);
unsigned sockets = opts ? qemu_opt_get_number(opts, "sockets", 0) : 0;
@@ -378,8 +399,6 @@ static void *spapr_create_fdt_skel(hwaddr initrd_base,
DeviceClass *dc = DEVICE_GET_CLASS(cs);
PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cs);
int index = ppc_get_vcpu_dt_id(cpu);
- uint32_t servers_prop[smp_threads];
- uint32_t gservers_prop[smp_threads * 2];
char *nodename;
uint32_t segs[] = {cpu_to_be32(28), cpu_to_be32(40),
0xffffffff, 0xffffffff};
@@ -428,18 +447,6 @@ static void *spapr_create_fdt_skel(hwaddr initrd_base,
_FDT((fdt_property_string(fdt, "status", "okay")));
_FDT((fdt_property(fdt, "64-bit", NULL, 0)));
- /* Build interrupt servers and gservers properties */
- for (i = 0; i < smp_threads; i++) {
- servers_prop[i] = cpu_to_be32(index + i);
- /* Hack, direct the group queues back to cpu 0 */
- gservers_prop[i*2] = cpu_to_be32(index + i);
- gservers_prop[i*2 + 1] = 0;
- }
- _FDT((fdt_property(fdt, "ibm,ppc-interrupt-server#s",
- servers_prop, sizeof(servers_prop))));
- _FDT((fdt_property(fdt, "ibm,ppc-interrupt-gserver#s",
- gservers_prop, sizeof(gservers_prop))));
-
if (env->spr_cb[SPR_PURR].oea_read) {
_FDT((fdt_property(fdt, "ibm,purr", NULL, 0)));
}
--
1.9.rc0
- [Qemu-devel] [PATCH 0/9] spapr: Enable ibm, client-architecture-support, Alexey Kardashevskiy, 2014/05/15
- [Qemu-devel] [PATCH 1/9] kvm: add set_one_reg/get_one_reg helpers, Alexey Kardashevskiy, 2014/05/15
- [Qemu-devel] [PATCH 2/9] target-ppc: Add "compat" CPU option, Alexey Kardashevskiy, 2014/05/15
- [Qemu-devel] [PATCH 6/9] spapr: Add ibm, client-architecture-support call, Alexey Kardashevskiy, 2014/05/15
- [Qemu-devel] [PATCH 3/9] spapr: Move server# property out of skeleton fdt,
Alexey Kardashevskiy <=
- [Qemu-devel] [PATCH 4/9] target-ppc: Implement "compat" CPU option, Alexey Kardashevskiy, 2014/05/15
- Re: [Qemu-devel] [PATCH 4/9] target-ppc: Implement "compat" CPU option, Alexander Graf, 2014/05/16
- Re: [Qemu-devel] [PATCH 4/9] target-ppc: Implement "compat" CPU option, Alexey Kardashevskiy, 2014/05/16
- Re: [Qemu-devel] [PATCH 4/9] target-ppc: Implement "compat" CPU option, Alexander Graf, 2014/05/16
- Re: [Qemu-devel] [PATCH 4/9] target-ppc: Implement "compat" CPU option, Alexey Kardashevskiy, 2014/05/21
- Re: [Qemu-devel] [PATCH 4/9] target-ppc: Implement "compat" CPU option, Alexander Graf, 2014/05/21
- Re: [Qemu-devel] [PATCH 4/9] target-ppc: Implement "compat" CPU option, Alexey Kardashevskiy, 2014/05/21
- Re: [Qemu-devel] [PATCH 4/9] target-ppc: Implement "compat" CPU option, Alexander Graf, 2014/05/21
- Re: [Qemu-devel] [PATCH 4/9] target-ppc: Implement "compat" CPU option, Alexey Kardashevskiy, 2014/05/21
[Qemu-devel] [PATCH 9/9] KVM: PPC: Enable compatibility mode, Alexey Kardashevskiy, 2014/05/15