aboutsummaryrefslogtreecommitdiff
path: root/hdata
diff options
context:
space:
mode:
authorOliver O'Halloran <oohall@gmail.com>2017-01-12 14:54:03 +1100
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-01-15 12:32:23 +1100
commitb7ac68771baaebff3fb47120a73b3901e8e6a839 (patch)
tree30cff4b35b61d6a24fc3dab64ff65d2cd4a4133a /hdata
parent79736e767244497f1886c6c8f978f5667d21d2ed (diff)
downloadskiboot-b7ac68771baaebff3fb47120a73b3901e8e6a839.zip
skiboot-b7ac68771baaebff3fb47120a73b3901e8e6a839.tar.gz
skiboot-b7ac68771baaebff3fb47120a73b3901e8e6a839.tar.bz2
hdat: create XIVE nodes under each xscom node
Adds the XIVE node under each chip's XSCOM controller node. Signed-off-by: Oliver O'Halloran <oohall@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hdata')
-rw-r--r--hdata/spira.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/hdata/spira.c b/hdata/spira.c
index 5c12239..58278c9 100644
--- a/hdata/spira.c
+++ b/hdata/spira.c
@@ -333,6 +333,17 @@ static void add_psihb_node(struct dt_node *np)
}
}
+static void add_xive_node(struct dt_node *np)
+{
+ struct dt_node *xive = dt_new_addr(np, "xive", 0x5013000);
+
+ dt_add_property_cells(xive, "reg", 0x5013000, 0x300);
+ dt_add_property_string(xive, "compatible", "ibm,power9-xive-x");
+
+ /* HACK: required for simics */
+ dt_add_property(xive, "force-assign-bars", NULL, 0);
+}
+
static void add_xscom_add_pcia_assoc(struct dt_node *np, uint32_t pcid)
{
const struct HDIF_common_hdr *hdr;
@@ -440,6 +451,9 @@ static bool add_xscom_sppcrd(uint64_t xscom_base)
/* Add PSI Host bridge */
add_psihb_node(np);
+
+ if (proc_gen >= proc_gen_p9)
+ add_xive_node(np);
}
return i > 0;