[Skiboot] [PATCH 1/3] xive/p9: use PAGE_SIZE
Cédric Le Goater
clg at kaod.org
Wed Jun 24 19:16:23 AEST 2020
Signed-off-by: Cédric Le Goater <clg at kaod.org>
---
hw/xive.c | 38 +++++++++++++++++++-------------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/hw/xive.c b/hw/xive.c
index 22fadf2dfd56..657b7e798957 100644
--- a/hw/xive.c
+++ b/hw/xive.c
@@ -168,7 +168,7 @@
*
* TODO: adjust the VC BAR range for END ESBs on this value
*/
-#define EQ_PER_PAGE (0x10000 / sizeof(struct xive_eq))
+#define EQ_PER_PAGE (PAGE_SIZE / sizeof(struct xive_eq))
#define XIVE_EQ_ORDER 20 /* 1M ENDs */
#define XIVE_EQ_COUNT (1ul << XIVE_EQ_ORDER)
@@ -203,7 +203,7 @@
*
* TODO: adjust the PC BAR range
*/
-#define VP_PER_PAGE (0x10000 / sizeof(struct xive_vp))
+#define VP_PER_PAGE (PAGE_SIZE / sizeof(struct xive_vp))
#define NVT_SHIFT 19 /* in sync with EQ_W6_NVT_INDEX */
@@ -907,7 +907,7 @@ static uint32_t xive_alloc_eq_set(struct xive *x, bool alloc_indirect)
if (alloc_indirect) {
/* Allocate/provision indirect page during boot only */
xive_vdbg(x, "Indirect empty, provisioning from local pool\n");
- page = local_alloc(x->chip_id, 0x10000, 0x10000);
+ page = local_alloc(x->chip_id, PAGE_SIZE, PAGE_SIZE);
if (!page) {
xive_dbg(x, "provisioning failed !\n");
return XIVE_ALLOC_NO_MEM;
@@ -921,7 +921,7 @@ static uint32_t xive_alloc_eq_set(struct xive *x, bool alloc_indirect)
return XIVE_ALLOC_NO_IND;
}
}
- memset(page, 0, 0x10000);
+ memset(page, 0, PAGE_SIZE);
x->eq_ind_base[ind_idx] = cpu_to_be64(vsd_flags |
(((uint64_t)page) & VSD_ADDRESS_MASK));
/* Any cache scrub needed ? */
@@ -965,7 +965,7 @@ static bool xive_provision_vp_ind(struct xive *x, uint32_t vp_idx, uint32_t orde
return false;
/* Install the page */
- memset(page, 0, 0x10000);
+ memset(page, 0, PAGE_SIZE);
vsd = ((uint64_t)page) & VSD_ADDRESS_MASK;
vsd |= SETFIELD(VSD_TSIZE, 0ull, 4);
vsd |= SETFIELD(VSD_MODE, 0ull, VSD_MODE_EXCLUSIVE);
@@ -1399,7 +1399,7 @@ static bool xive_set_local_tables(struct xive *x)
/* Setup quue overflows */
for (i = 0; i < VC_QUEUE_OVF_COUNT; i++) {
- u64 addr = ((uint64_t)x->q_ovf) + i * 0x10000;
+ u64 addr = ((uint64_t)x->q_ovf) + i * PAGE_SIZE;
u64 cfg, sreg, sregx;
if (!xive_set_vsd(x, VST_TSEL_IRQ, i, base |
@@ -1660,8 +1660,8 @@ static bool xive_prealloc_tables(struct xive *x)
xive_dbg(x, "IVT at %p size 0x%lx\n", x->ivt_base, IVT_SIZE);
/* Indirect EQ table. Limited to one top page. */
- al = ALIGN_UP(XIVE_EQ_TABLE_SIZE, 0x10000);
- if (al > 0x10000) {
+ al = ALIGN_UP(XIVE_EQ_TABLE_SIZE, PAGE_SIZE);
+ if (al > PAGE_SIZE) {
xive_err(x, "EQ indirect table is too big !\n");
return false;
}
@@ -1675,8 +1675,8 @@ static bool xive_prealloc_tables(struct xive *x)
x->eq_ind_count = XIVE_EQ_TABLE_SIZE / XIVE_VSD_SIZE;
/* Indirect VP table. Limited to one top page. */
- al = ALIGN_UP(XIVE_VP_TABLE_SIZE, 0x10000);
- if (al > 0x10000) {
+ al = ALIGN_UP(XIVE_VP_TABLE_SIZE, PAGE_SIZE);
+ if (al > PAGE_SIZE) {
xive_err(x, "VP indirect table is too big !\n");
return false;
}
@@ -1704,13 +1704,13 @@ static bool xive_prealloc_tables(struct xive *x)
u64 vsd;
/* Indirect entries have a VSD format */
- page = local_alloc(x->chip_id, 0x10000, 0x10000);
+ page = local_alloc(x->chip_id, PAGE_SIZE, PAGE_SIZE);
if (!page) {
xive_err(x, "Failed to allocate VP page\n");
return false;
}
- xive_dbg(x, "VP%d at %p size 0x%x\n", i, page, 0x10000);
- memset(page, 0, 0x10000);
+ xive_dbg(x, "VP%d at %p size 0x%x\n", i, page, PAGE_SIZE);
+ memset(page, 0, PAGE_SIZE);
vsd = ((uint64_t)page) & VSD_ADDRESS_MASK;
vsd |= SETFIELD(VSD_TSIZE, 0ull, 4);
@@ -1720,7 +1720,7 @@ static bool xive_prealloc_tables(struct xive *x)
}
/* Allocate the queue overflow pages */
- x->q_ovf = local_alloc(x->chip_id, VC_QUEUE_OVF_COUNT * 0x10000, 0x10000);
+ x->q_ovf = local_alloc(x->chip_id, VC_QUEUE_OVF_COUNT * PAGE_SIZE, PAGE_SIZE);
if (!x->q_ovf) {
xive_err(x, "Failed to allocate queue overflow\n");
return false;
@@ -1734,7 +1734,7 @@ static void xive_add_provisioning_properties(void)
uint32_t i, count;
dt_add_property_cells(xive_dt_node,
- "ibm,xive-provision-page-size", 0x10000);
+ "ibm,xive-provision-page-size", PAGE_SIZE);
count = 1 << xive_chips_alloc_bits;
for (i = 0; i < count; i++)
@@ -2719,7 +2719,7 @@ static void xive_ipi_eoi(struct xive *x, uint32_t idx)
* This allows us to then do a re-trigger if Q was set rather
* than synthetizing an interrupt in software
*/
- eoi_val = in_8(mm + 0x10000 + XIVE_ESB_SET_PQ_00);
+ eoi_val = in_8(mm + PAGE_SIZE + XIVE_ESB_SET_PQ_00);
if (eoi_val & 1) {
out_8(mm + XIVE_ESB_STORE_TRIGGER, 0);
}
@@ -2934,10 +2934,10 @@ static void xive_init_cpu_emulation(struct xive_cpu_state *xs,
xs->eqbuf = xive_get_eq_buf(xs->vp_blk,
xs->eq_idx + XIVE_EMULATION_PRIO);
assert(xs->eqbuf);
- memset(xs->eqbuf, 0, 0x10000);
+ memset(xs->eqbuf, 0, PAGE_SIZE);
xs->eqptr = 0;
- xs->eqmsk = (0x10000/4) - 1;
+ xs->eqmsk = (PAGE_SIZE/4) - 1;
xs->eqgen = 0;
x = xive_from_vc_blk(xs->eq_blk);
assert(x);
@@ -3047,7 +3047,7 @@ static void xive_provision_cpu(struct xive_cpu_state *xs, struct cpu_thread *c)
/* Provision one of the queues. Allocate the memory on the
* chip where the CPU resides
*/
- p = local_alloc(c->chip_id, 0x10000, 0x10000);
+ p = local_alloc(c->chip_id, PAGE_SIZE, PAGE_SIZE);
if (!p) {
xive_err(x, "Failed to allocate EQ backing store\n");
assert(false);
--
2.25.4
More information about the Skiboot
mailing list