aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlistair Popple <alistair@popple.id.au>2016-09-07 17:17:33 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2016-09-14 16:51:14 +1000
commit18cb0a03a8792c29e742c939f6393e6c90997f8a (patch)
tree696eedb840c6a36504dbff9e54a4d899a2080827
parentcd42d431603db168c3cb7977c0ead0dcffc0bb48 (diff)
downloadskiboot-18cb0a03a8792c29e742c939f6393e6c90997f8a.zip
skiboot-18cb0a03a8792c29e742c939f6393e6c90997f8a.tar.gz
skiboot-18cb0a03a8792c29e742c939f6393e6c90997f8a.tar.bz2
hw/npu.c: Fix reserved PE#
Currently the reserved PE is set to NPU_NUM_OF_PES, which is one greater than the maximum PE resulting in the following kernel errors at boot: [ 0.000000] pnv_ioda_reserve_pe: Invalid PE 4 on PHB#4 [ 0.000000] pnv_ioda_reserve_pe: Invalid PE 4 on PHB#5 Due to a HW errata PE#0 is already reserved in the kernel, so update the opal-reserved-pe device-tree property to match this. Signed-off-by: Alistair Popple <alistair@popple.id.au> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com> (cherry picked from commit 4802d470208093139e06b126868b76e1dc0864a1) Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r--hw/npu.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/hw/npu.c b/hw/npu.c
index 436baa1..5f6d33c 100644
--- a/hw/npu.c
+++ b/hw/npu.c
@@ -644,7 +644,7 @@ static void npu_ioda_init(struct npu *p)
/* PCT - Reset to reserved PE# */
for (i = 0; i < ARRAY_SIZE(p->pce_cache); i++) {
data64 = &p->pce_cache[i];
- *data64 = SETFIELD(NPU_IODA_PCT_PE, 0ul, NPU_NUM_OF_PES);
+ *data64 = SETFIELD(NPU_IODA_PCT_PE, 0ul, 0ul);
*data64 |= NPU_IODA_PCT_LINK_ENABLED;
}
@@ -1745,7 +1745,7 @@ static void npu_add_phb_properties(struct npu *p)
dt_add_property_cells(np, "ibm,opal-num-pes",
NPU_NUM_OF_PES);
dt_add_property_cells(np, "ibm,opal-reserved-pe",
- NPU_NUM_OF_PES);
+ 0);
dt_add_property_cells(np, "ibm,opal-tce-kill",
hi32(tkill), lo32(tkill));
@@ -1854,4 +1854,3 @@ void probe_npu(void)
dt_for_each_compatible(dt_root, np, "ibm,power8-npu-pciex")
npu_create_phb(np);
}
-