[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH v3 1/6] spapr: Move DT memory node rendering to a help
From: |
Alexey Kardashevskiy |
Subject: |
[Qemu-ppc] [PATCH v3 1/6] spapr: Move DT memory node rendering to a helper |
Date: |
Thu, 3 Jul 2014 13:10:02 +1000 |
This moves recurring bits of code related to address@hidden nodes
creation to a helper.
This makes use of the new helper for address@hidden
Signed-off-by: Alexey Kardashevskiy <address@hidden>
---
hw/ppc/spapr.c | 48 ++++++++++++++++++++++++++++--------------------
1 file changed, 28 insertions(+), 20 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 506d4fc..a5ffcba 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -605,6 +605,31 @@ int spapr_h_cas_compose_response(target_ulong addr,
target_ulong size)
return 0;
}
+static void spapr_populate_memory_node(void *fdt, int nodeid, hwaddr start,
+ hwaddr size)
+{
+ uint32_t associativity[] = {
+ cpu_to_be32(0x4), /* length */
+ cpu_to_be32(0x0), cpu_to_be32(0x0),
+ cpu_to_be32(nodeid), cpu_to_be32(nodeid)
+ };
+ char mem_name[32];
+ uint64_t mem_reg_property[2];
+ int off;
+
+ mem_reg_property[0] = cpu_to_be64(start);
+ mem_reg_property[1] = cpu_to_be64(size);
+
+ sprintf(mem_name, "memory@" TARGET_FMT_lx, start);
+ off = fdt_add_subnode(fdt, 0, mem_name);
+ _FDT(off);
+ _FDT((fdt_setprop_string(fdt, off, "device_type", "memory")));
+ _FDT((fdt_setprop(fdt, off, "reg", mem_reg_property,
+ sizeof(mem_reg_property))));
+ _FDT((fdt_setprop(fdt, off, "ibm,associativity", associativity,
+ sizeof(associativity))));
+}
+
static int spapr_populate_memory(sPAPREnvironment *spapr, void *fdt)
{
uint32_t associativity[] = {cpu_to_be32(0x4), cpu_to_be32(0x0),
@@ -623,29 +648,12 @@ static int spapr_populate_memory(sPAPREnvironment *spapr,
void *fdt)
}
/* RMA */
- mem_reg_property[0] = 0;
- mem_reg_property[1] = cpu_to_be64(spapr->rma_size);
- off = fdt_add_subnode(fdt, 0, "address@hidden");
- _FDT(off);
- _FDT((fdt_setprop_string(fdt, off, "device_type", "memory")));
- _FDT((fdt_setprop(fdt, off, "reg", mem_reg_property,
- sizeof(mem_reg_property))));
- _FDT((fdt_setprop(fdt, off, "ibm,associativity", associativity,
- sizeof(associativity))));
+ spapr_populate_memory_node(fdt, 0, 0, spapr->rma_size);
/* RAM: Node 0 */
if (node0_size > spapr->rma_size) {
- mem_reg_property[0] = cpu_to_be64(spapr->rma_size);
- mem_reg_property[1] = cpu_to_be64(node0_size - spapr->rma_size);
-
- sprintf(mem_name, "memory@" TARGET_FMT_lx, spapr->rma_size);
- off = fdt_add_subnode(fdt, 0, mem_name);
- _FDT(off);
- _FDT((fdt_setprop_string(fdt, off, "device_type", "memory")));
- _FDT((fdt_setprop(fdt, off, "reg", mem_reg_property,
- sizeof(mem_reg_property))));
- _FDT((fdt_setprop(fdt, off, "ibm,associativity", associativity,
- sizeof(associativity))));
+ spapr_populate_memory_node(fdt, 0, spapr->rma_size,
+ node0_size - spapr->rma_size);
}
/* RAM: Node 1 and beyond */
--
2.0.0
- [Qemu-ppc] [PATCH v3 0/6] spapr: rework memory nodes, Alexey Kardashevskiy, 2014/07/02
- [Qemu-ppc] [PATCH v3 2/6] spapr: Use DT memory node rendering helper for other nodes, Alexey Kardashevskiy, 2014/07/02
- [Qemu-ppc] [PATCH v3 3/6] spapr: Refactor spapr_populate_memory() to allow memoryless nodes, Alexey Kardashevskiy, 2014/07/02
- [Qemu-ppc] [PATCH v3 6/6] spapr: Fix ibm, associativity for memory nodes, Alexey Kardashevskiy, 2014/07/02
- [Qemu-ppc] [PATCH v3 4/6] spapr: Split memory nodes to power-of-two blocks, Alexey Kardashevskiy, 2014/07/02
- [Qemu-ppc] [PATCH v3 1/6] spapr: Move DT memory node rendering to a helper,
Alexey Kardashevskiy <=
- [Qemu-ppc] [PATCH v3 5/6] spapr: Add a helper for node0_size calculation, Alexey Kardashevskiy, 2014/07/02
- Re: [Qemu-ppc] [PATCH v3 0/6] spapr: rework memory nodes, Alexey Kardashevskiy, 2014/07/20