summaryrefslogtreecommitdiffstats
path: root/hdata/hdata.h
diff options
context:
space:
mode:
authorMichael Neuling <mikey@neuling.org>2017-08-10 16:02:50 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-08-11 16:37:25 +1000
commit78e1d91725deb70898d4960837cad6f721c35fa2 (patch)
tree7d8e092c076ba2b665c76a9d7d918cfbd6313201 /hdata/hdata.h
parent8bdfaa24f88bd8800385a6997bb178dfdd970648 (diff)
downloadtalos-skiboot-78e1d91725deb70898d4960837cad6f721c35fa2.tar.gz
talos-skiboot-78e1d91725deb70898d4960837cad6f721c35fa2.zip
hdat: Make is_power9n() global
This splits out is_power9n() so it can be used elsewhere. It also adds a check for for POWER9 so the function does more of what it's name suggests (and so the caller doesn't need to do it). Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hdata/hdata.h')
-rw-r--r--hdata/hdata.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/hdata/hdata.h b/hdata/hdata.h
index e3871860..6da9b55c 100644
--- a/hdata/hdata.h
+++ b/hdata/hdata.h
@@ -17,6 +17,8 @@
#ifndef __HDATA_H
#define __HDATA_H
+#include <processor.h>
+
struct dt_node;
extern void memory_parse(void);
@@ -32,6 +34,20 @@ extern void vpd_parse(void);
extern struct dt_node *find_xscom_for_chip(uint32_t chip_id);
extern uint32_t pcid_to_chip_id(uint32_t proc_chip_id);
+static __unused bool is_power9n(uint32_t version)
+{
+ if (PVR_TYPE(version) != PVR_TYPE_P9)
+ return false;
+ /*
+ * Bit 13 tells us:
+ * 0 = Scale out (aka Nimbus)
+ * 1 = Scale up (aka Cumulus)
+ */
+ if ((version >> 13) & 1)
+ return false;
+ return true;
+}
+
extern struct dt_node *add_core_common(struct dt_node *cpus,
const struct sppaca_cpu_cache *cache,
const struct sppaca_cpu_timebase *tb,
OpenPOWER on IntegriCloud