[2/4] hdat: Add POWER9 DD2.0 specific pa_features

Message ID 20170810060253.11928-2-mikey@neuling.org
State Accepted
Headers show

Commit Message

Michael Neuling Aug. 10, 2017, 6:02 a.m.
Same as the default but with TM off.

Signed-off-by: Michael Neuling <mikey@neuling.org>
---
 hdata/cpu-common.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

Patch

diff --git a/hdata/cpu-common.c b/hdata/cpu-common.c
index f40d08b398..01228f3d15 100644
--- a/hdata/cpu-common.c
+++ b/hdata/cpu-common.c
@@ -53,6 +53,17 @@  struct dt_node * add_core_common(struct dt_node *cpus,
 	       0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, /* 48 .. 55 */
 	       0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, /* 56 .. 63 */
 	};
+	const uint8_t pa_features_p9n_dd20[] = {
+	       64, 0,
+	       0xf6, 0x3f, 0xc7, 0xc0, 0x80, 0xd0, 0x80, 0x00, /*  0 ..  7 */
+	       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*  8 .. 15 */
+	       0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, /* 16 .. 23 */
+	       0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, /* 24 .. 31 */
+	       0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, /* 32 .. 39 */
+	       0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, /* 40 .. 47 */
+	       0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, /* 48 .. 55 */
+	       0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, /* 56 .. 63 */
+	};
 	const uint8_t pa_features_p9[] = {
 	       64, 0,
 	       0xf6, 0x3f, 0xc7, 0xc0, 0x80, 0xd0, 0x80, 0x00, /*  0 ..  7 */
@@ -99,9 +110,17 @@  struct dt_node * add_core_common(struct dt_node *cpus,
 		break;
 	case PVR_TYPE_P9:
 		name = "PowerPC,POWER9";
-		if ((PVR_VERS_MAJ(version) == 1) && is_power9n(version)) {
+		if (is_power9n(version) &&
+		    (PVR_VERS_MAJ(version) == 1)) {
+			/* P9N DD1 */
 			pa_features = pa_features_p9n_dd1;
 			pa_features_size = sizeof(pa_features_p9n_dd1);
+		} else if (is_power9n(version) &&
+			   (PVR_VERS_MAJ(version) == 2) &&
+			   (PVR_VERS_MIN(version) == 0)) {
+			/* P9N DD2.0 */
+			pa_features = pa_features_p9n_dd20;
+			pa_features_size = sizeof(pa_features_p9n_dd20);
 		} else {
 			pa_features = pa_features_p9;
 			pa_features_size = sizeof(pa_features_p9);