[coreboot-gerrit] Change in coreboot[master]: soc/intel/apollolake: Add PNP config

Divya Chellappa (Code Review) gerrit at coreboot.org
Fri Nov 17 06:24:17 CET 2017


Divya Chellappa has uploaded this change for review. ( https://review.coreboot.org/22488


Change subject: soc/intel/apollolake: Add PNP config
......................................................................

soc/intel/apollolake: Add PNP config

TEST= built and boot glkrvp, verfied that the callback gets
control, verified warm and cold reboots.

Change-Id: Ibd70a42c9406941c8a93cc972f22c2475e9d0200
Signed-off-by: Divya Chellap <divya.chellappa at intel.com>
---
M src/soc/intel/apollolake/Kconfig
M src/soc/intel/apollolake/Makefile.inc
A src/soc/intel/apollolake/include/soc/pnpconfig.h
A src/soc/intel/apollolake/pnpconfig.c
4 files changed, 505 insertions(+), 0 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/88/22488/1

diff --git a/src/soc/intel/apollolake/Kconfig b/src/soc/intel/apollolake/Kconfig
index f568799..c3114e5 100644
--- a/src/soc/intel/apollolake/Kconfig
+++ b/src/soc/intel/apollolake/Kconfig
@@ -388,4 +388,12 @@
 	hex
 	default 0x7fff
 
+config PNP_SETTINGS
+	hex
+	default 0
+	help
+	  To select the PNP configuration settings
+	  "0" - Performance
+	  "1" - Power
+	  "2" - Power & Performance
 endif
diff --git a/src/soc/intel/apollolake/Makefile.inc b/src/soc/intel/apollolake/Makefile.inc
index 14932dd..1015e86 100644
--- a/src/soc/intel/apollolake/Makefile.inc
+++ b/src/soc/intel/apollolake/Makefile.inc
@@ -60,6 +60,7 @@
 ramstage-y += spi.c
 ramstage-y += systemagent.c
 ramstage-y += pmutil.c
+ramstage-y += pnpconfig.c
 ramstage-y += pmc.c
 ramstage-y += reset.c
 ramstage-y += sram.c
diff --git a/src/soc/intel/apollolake/include/soc/pnpconfig.h b/src/soc/intel/apollolake/include/soc/pnpconfig.h
new file mode 100644
index 0000000..0584ee9
--- /dev/null
+++ b/src/soc/intel/apollolake/include/soc/pnpconfig.h
@@ -0,0 +1,427 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2017 Intel Corporation.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+#ifndef _SOC_APOLLOLAKE_PNPCONFIG_H_
+#define _SOC_APOLLOLAKE_PNPCONFIG_H_
+
+#define MAKE_MASK_INCLUSIVE(msb) \
+    ((1ULL << (1 + (msb))) - 1)
+
+#define MAKE_MASK(msb) \
+    ((1ULL << (msb)) - 1)
+
+#define MASK_VAL(msb, lsb, val) \
+    ~(MAKE_MASK_INCLUSIVE(msb) & ~MAKE_MASK(lsb)), (val) << (lsb)
+
+struct pnpconfig {
+    uint8_t msgport;
+    uint32_t msgregaddr;
+    uint8_t msb;
+    uint8_t lsb;
+    uint8_t value;
+};
+
+#define AUNIT 0x4d
+#define BUNIT 0x4c
+#define TUNIT 0x52
+
+#define AUNIT_VALUEFORPERF_MSG_VALUES_PLATFORM_DEFAULT \
+    { AUNIT, 0x6430, 7,  0,  0x1 },  /*CRDARB_GCNT_DEV_P_0_MCHBAR.CHID0*/\
+    { AUNIT, 0x6430, 15, 8,  0x1 },  /*CRDARB_GCNT_DEV_P_0_MCHBAR.CHID1*/\
+    { AUNIT, 0x6430, 23, 16, 0x0 },  /*CRDARB_GCNT_DEV_P_0_MCHBAR.CHID2*/\
+    { AUNIT, 0x6430, 31, 24, 0x1 },  /*CRDARB_GCNT_DEV_P_0_MCHBAR.CHID3*/\
+    { AUNIT, 0x6434, 7,  0,  0x0 },  /*CRDARB_GCNT_DEV_P_1_MCHBAR.CHID4*/\
+    { AUNIT, 0x6434, 15, 8,  0x1 },  /*CRDARB_GCNT_DEV_P_1_MCHBAR.CHID5*/\
+    { AUNIT, 0x6434, 23, 16, 0x1 },  /*CRDARB_GCNT_DEV_P_1_MCHBAR.CHID6*/\
+    { AUNIT, 0x6434, 31, 24, 0x1 },  /*CRDARB_GCNT_DEV_P_1_MCHBAR.CHID7*/\
+    { AUNIT, 0x6438, 7,  0,  0x1 },  /*CRDARB_GCNT_DEV_N_0_MCHBAR.CHID0*/\
+    { AUNIT, 0x6438, 15, 8,  0x1 },  /*CRDARB_GCNT_DEV_N_0_MCHBAR.CHID1*/\
+    { AUNIT, 0x6438, 23, 16, 0x1 },  /*CRDARB_GCNT_DEV_N_0_MCHBAR.CHID2*/\
+    { AUNIT, 0x6438, 31, 24, 0x1 },  /*CRDARB_GCNT_DEV_N_0_MCHBAR.CHID3*/\
+    { AUNIT, 0x643c, 7,  0,  0x1 },  /*CRDARB_GCNT_DEV_N_1_MCHBAR.CHID4*/\
+    { AUNIT, 0x643c, 15, 8,  0x1 },  /*CRDARB_GCNT_DEV_N_1_MCHBAR.CHID5*/\
+    { AUNIT, 0x643c, 23, 16, 0x1 },  /*CRDARB_GCNT_DEV_N_1_MCHBAR.CHID6*/\
+    { AUNIT, 0x643c, 31, 24, 0x1 },  /*CRDARB_GCNT_DEV_N_1_MCHBAR.CHID7*/\
+    { AUNIT, 0x6440, 7,  0,  0x1 },  /*CRDARB_GCNT_DEV_C_0_MCHBAR.CHID0*/\
+    { AUNIT, 0x6440, 15, 8,  0x1 },  /*CRDARB_GCNT_DEV_C_0_MCHBAR.CHID1*/\
+    { AUNIT, 0x6440, 23, 16, 0x0 },  /*CRDARB_GCNT_DEV_C_0_MCHBAR.CHID2*/\
+    { AUNIT, 0x6440, 31, 24, 0x0 },  /*CRDARB_GCNT_DEV_C_0_MCHBAR.CHID3*/\
+    { AUNIT, 0x6444, 7,  0,  0x1 },  /*CRDARB_GCNT_CLS_MCHBAR.P*/\
+    { AUNIT, 0x6444, 15, 8,  0x1 },  /*CRDARB_GCNT_CLS_MCHBAR.NP*/\
+    { AUNIT, 0x6444, 23, 16, 0x1 },  /*CRDARB_GCNT_CLS_MCHBAR.C*/\
+    { AUNIT, 0x6448, 7,  0,  0x8 },  /*GZLQ_LIMIT_CH0_3_MCHBAR.CHID0*/\
+    { AUNIT, 0x6448, 15, 8,  0xff }, /*GZLQ_LIMIT_CH0_3_MCHBAR.CHID1*/\
+    { AUNIT, 0x6448, 23, 16, 0xff }, /*GZLQ_LIMIT_CH0_3_MCHBAR.CHID2*/\
+    { AUNIT, 0x6448, 31, 24, 0xff }, /*GZLQ_LIMIT_CH0_3_MCHBAR.CHID3*/\
+    { AUNIT, 0x644c, 7,  0,  0xff }, /*GZLQ_LIMIT_CH4_7_MCHBAR.CHID4*/\
+    { AUNIT, 0x644c, 15, 8,  0xff }, /*GZLQ_LIMIT_CH4_7_MCHBAR.CHID5*/\
+    { AUNIT, 0x644c, 23, 16, 0xff }, /*GZLQ_LIMIT_CH4_7_MCHBAR.CHID6*/\
+    { AUNIT, 0x644c, 31, 24, 0xff }, /*GZLQ_LIMIT_CH4_7_MCHBAR.CHID7*/\
+    { AUNIT, 0x6450, 0,  0,  0x0 },  /*SLCE_CHNL_HASH_MCHBAR.SLCE_1_DISD*/\
+    { AUNIT, 0x6450, 1,  1,  0x0 },  /*SLCE_CHNL_HASH_MCHBAR.HVM_MODE*/\
+    { AUNIT, 0x6450, 3,  2,  0x2 },  /*SLCE_CHNL_HASH_MCHBAR.INTLV_MODE*/\
+    { AUNIT, 0x6450, 19, 6,  0x9 },  /*SLCE_CHNL_HASH_MCHBAR.SLCE_HASH_MASK*/\
+    { AUNIT, 0x6450, 51, 38, 0x36 }, /*SLCE_CHNL_HASH_MCHBAR.CH_HASH_MASK*/\
+    { AUNIT, 0x6484, 7,  0,  0xff }, /*CHAP_SLCT1_MCHBAR.CHID_X_CNT_UPTXN*/\
+    { AUNIT, 0x6484, 23, 16, 0xff }  /*CHAP_SLCT1_MCHBAR.CHID_Y_CNT_UPTXN*/
+
+#define AUNIT_VALUEFORPOWER_MSG_VALUES_PLATFORM_DEFAULT \
+    { AUNIT, 0x6430, 7,  0,  0x1 },  /*CRDARB_GCNT_DEV_P_0_MCHBAR.CHID0*/\
+    { AUNIT, 0x6430, 15, 8,  0x1 },  /*CRDARB_GCNT_DEV_P_0_MCHBAR.CHID1*/\
+    { AUNIT, 0x6430, 23, 16, 0x0 },  /*CRDARB_GCNT_DEV_P_0_MCHBAR.CHID2*/\
+    { AUNIT, 0x6430, 31, 24, 0x1 },  /*CRDARB_GCNT_DEV_P_0_MCHBAR.CHID3*/\
+    { AUNIT, 0x6434, 7,  0,  0x0 },  /*CRDARB_GCNT_DEV_P_1_MCHBAR.CHID4*/\
+    { AUNIT, 0x6434, 15, 8,  0x1 },  /*CRDARB_GCNT_DEV_P_1_MCHBAR.CHID5*/\
+    { AUNIT, 0x6434, 23, 16, 0x1 },  /*CRDARB_GCNT_DEV_P_1_MCHBAR.CHID6*/\
+    { AUNIT, 0x6434, 31, 24, 0x1 },  /*CRDARB_GCNT_DEV_P_1_MCHBAR.CHID7*/\
+    { AUNIT, 0x6438, 7,  0,  0x1 },  /*CRDARB_GCNT_DEV_N_0_MCHBAR.CHID0*/\
+    { AUNIT, 0x6438, 15, 8,  0x1 },  /*CRDARB_GCNT_DEV_N_0_MCHBAR.CHID1*/\
+    { AUNIT, 0x6438, 23, 16, 0x1 },  /*CRDARB_GCNT_DEV_N_0_MCHBAR.CHID2*/\
+    { AUNIT, 0x6438, 31, 24, 0x1 },  /*CRDARB_GCNT_DEV_N_0_MCHBAR.CHID3*/\
+    { AUNIT, 0x643c, 7,  0,  0x1 },  /*CRDARB_GCNT_DEV_N_1_MCHBAR.CHID4*/\
+    { AUNIT, 0x643c, 15, 8,  0x1 },  /*CRDARB_GCNT_DEV_N_1_MCHBAR.CHID5*/\
+    { AUNIT, 0x643c, 23, 16, 0x1 },  /*CRDARB_GCNT_DEV_N_1_MCHBAR.CHID6*/\
+    { AUNIT, 0x643c, 31, 24, 0x1 },  /*CRDARB_GCNT_DEV_N_1_MCHBAR.CHID7*/\
+    { AUNIT, 0x6440, 7,  0,  0x1 },  /*CRDARB_GCNT_DEV_C_0_MCHBAR.CHID0*/\
+    { AUNIT, 0x6440, 15, 8,  0x1 },  /*CRDARB_GCNT_DEV_C_0_MCHBAR.CHID1*/\
+    { AUNIT, 0x6440, 23, 16, 0x0 },  /*CRDARB_GCNT_DEV_C_0_MCHBAR.CHID2*/\
+    { AUNIT, 0x6440, 31, 24, 0x0 },  /*CRDARB_GCNT_DEV_C_0_MCHBAR.CHID3*/\
+    { AUNIT, 0x6444, 7,  0,  0x1 },  /*CRDARB_GCNT_CLS_MCHBAR.P*/\
+    { AUNIT, 0x6444, 15, 8,  0x1 },  /*CRDARB_GCNT_CLS_MCHBAR.NP*/\
+    { AUNIT, 0x6444, 23, 16, 0x1 },  /*CRDARB_GCNT_CLS_MCHBAR.C*/\
+    { AUNIT, 0x6448, 7,  0,  0x8 },  /*GZLQ_LIMIT_CH0_3_MCHBAR.CHID0*/\
+    { AUNIT, 0x6448, 15, 8,  0xff }, /*GZLQ_LIMIT_CH0_3_MCHBAR.CHID1*/\
+    { AUNIT, 0x6448, 23, 16, 0xff }, /*GZLQ_LIMIT_CH0_3_MCHBAR.CHID2*/\
+    { AUNIT, 0x6448, 31, 24, 0xff }, /*GZLQ_LIMIT_CH0_3_MCHBAR.CHID3*/\
+    { AUNIT, 0x644c, 7,  0,  0xff }, /*GZLQ_LIMIT_CH4_7_MCHBAR.CHID4*/\
+    { AUNIT, 0x644c, 15, 8,  0xff }, /*GZLQ_LIMIT_CH4_7_MCHBAR.CHID5*/\
+    { AUNIT, 0x644c, 23, 16, 0xff }, /*GZLQ_LIMIT_CH4_7_MCHBAR.CHID6*/\
+    { AUNIT, 0x644c, 31, 24, 0xff }, /*GZLQ_LIMIT_CH4_7_MCHBAR.CHID7*/\
+    { AUNIT, 0x6450, 0,  0,  0x0 },  /*SLCE_CHNL_HASH_MCHBAR.SLCE_1_DISD*/\
+    { AUNIT, 0x6450, 1,  1,  0x0 },  /*SLCE_CHNL_HASH_MCHBAR.HVM_MODE*/\
+    { AUNIT, 0x6450, 3,  2,  0x2 },  /*SLCE_CHNL_HASH_MCHBAR.INTLV_MODE*/\
+    { AUNIT, 0x6450, 19, 6,  0x9 },  /*SLCE_CHNL_HASH_MCHBAR.SLCE_HASH_MASK*/\
+    { AUNIT, 0x6450, 51, 38, 0x36 }, /*SLCE_CHNL_HASH_MCHBAR.CH_HASH_MASK*/\
+    { AUNIT, 0x6484, 7,  0,  0xff }, /*CHAP_SLCT1_MCHBAR.CHID_X_CNT_UPTXN*/\
+    { AUNIT, 0x6484, 23, 16, 0xff}  /*CHAP_SLCT1_MCHBAR.CHID_Y_CNT_UPTXN*/
+
+#define AUNIT_VALUEFORPWRPERF_MSG_VALUES_PLATFORM_DEFAULT \
+    { AUNIT, 0x6430, 7,  0,  0x1 },  /*CRDARB_GCNT_DEV_P_0_MCHBAR.CHID0*/\
+    { AUNIT, 0x6430, 15, 8,  0x1 },  /*CRDARB_GCNT_DEV_P_0_MCHBAR.CHID1*/\
+    { AUNIT, 0x6430, 23, 16, 0x0 },  /*CRDARB_GCNT_DEV_P_0_MCHBAR.CHID2*/\
+    { AUNIT, 0x6430, 31, 24, 0x1 },  /*CRDARB_GCNT_DEV_P_0_MCHBAR.CHID3*/\
+    { AUNIT, 0x6434, 7,  0,  0x0 },  /*CRDARB_GCNT_DEV_P_1_MCHBAR.CHID4*/\
+    { AUNIT, 0x6434, 15, 8,  0x1 },  /*CRDARB_GCNT_DEV_P_1_MCHBAR.CHID5*/\
+    { AUNIT, 0x6434, 23, 16, 0x1 },  /*CRDARB_GCNT_DEV_P_1_MCHBAR.CHID6*/\
+    { AUNIT, 0x6434, 31, 24, 0x1 },  /*CRDARB_GCNT_DEV_P_1_MCHBAR.CHID7*/\
+    { AUNIT, 0x6438, 7,  0,  0x1 },  /*CRDARB_GCNT_DEV_N_0_MCHBAR.CHID0*/\
+    { AUNIT, 0x6438, 15, 8,  0x1 },  /*CRDARB_GCNT_DEV_N_0_MCHBAR.CHID1*/\
+    { AUNIT, 0x6438, 23, 16, 0x1 },  /*CRDARB_GCNT_DEV_N_0_MCHBAR.CHID2*/\
+    { AUNIT, 0x6438, 31, 24, 0x1 },  /*CRDARB_GCNT_DEV_N_0_MCHBAR.CHID3*/\
+    { AUNIT, 0x643c, 7,  0,  0x1 },  /*CRDARB_GCNT_DEV_N_1_MCHBAR.CHID4*/\
+    { AUNIT, 0x643c, 15, 8,  0x1 },  /*CRDARB_GCNT_DEV_N_1_MCHBAR.CHID5*/\
+    { AUNIT, 0x643c, 23, 16, 0x1 },  /*CRDARB_GCNT_DEV_N_1_MCHBAR.CHID6*/\
+    { AUNIT, 0x643c, 31, 24, 0x1 },  /*CRDARB_GCNT_DEV_N_1_MCHBAR.CHID7*/\
+    { AUNIT, 0x6440, 7,  0,  0x1 },  /*CRDARB_GCNT_DEV_C_0_MCHBAR.CHID0*/\
+    { AUNIT, 0x6440, 15, 8,  0x1 },  /*CRDARB_GCNT_DEV_C_0_MCHBAR.CHID1*/\
+    { AUNIT, 0x6440, 23, 16, 0x0 },  /*CRDARB_GCNT_DEV_C_0_MCHBAR.CHID2*/\
+    { AUNIT, 0x6440, 31, 24, 0x0 },  /*CRDARB_GCNT_DEV_C_0_MCHBAR.CHID3*/\
+    { AUNIT, 0x6444, 7,  0,  0x1 },  /*CRDARB_GCNT_CLS_MCHBAR.P*/\
+    { AUNIT, 0x6444, 15, 8,  0x1 },  /*CRDARB_GCNT_CLS_MCHBAR.NP*/\
+    { AUNIT, 0x6444, 23, 16, 0x1 },  /*CRDARB_GCNT_CLS_MCHBAR.C*/\
+    { AUNIT, 0x6448, 7,  0,  0x8 },  /*GZLQ_LIMIT_CH0_3_MCHBAR.CHID0*/\
+    { AUNIT, 0x6448, 15, 8,  0xff }, /*GZLQ_LIMIT_CH0_3_MCHBAR.CHID1*/\
+    { AUNIT, 0x6448, 23, 16, 0xff }, /*GZLQ_LIMIT_CH0_3_MCHBAR.CHID2*/\
+    { AUNIT, 0x6448, 31, 24, 0xff }, /*GZLQ_LIMIT_CH0_3_MCHBAR.CHID3*/\
+    { AUNIT, 0x644c, 7,  0,  0xff }, /*GZLQ_LIMIT_CH4_7_MCHBAR.CHID4*/\
+    { AUNIT, 0x644c, 15, 8,  0xff }, /*GZLQ_LIMIT_CH4_7_MCHBAR.CHID5*/\
+    { AUNIT, 0x644c, 23, 16, 0xff }, /*GZLQ_LIMIT_CH4_7_MCHBAR.CHID6*/\
+    { AUNIT, 0x644c, 31, 24, 0xff }, /*GZLQ_LIMIT_CH4_7_MCHBAR.CHID7*/\
+    { AUNIT, 0x6450, 0,  0,  0x0 },  /*SLCE_CHNL_HASH_MCHBAR.SLCE_1_DISD*/\
+    { AUNIT, 0x6450, 1,  1,  0x0 },  /*SLCE_CHNL_HASH_MCHBAR.HVM_MODE*/\
+    { AUNIT, 0x6450, 3,  2,  0x2 },  /*SLCE_CHNL_HASH_MCHBAR.INTLV_MODE*/\
+    { AUNIT, 0x6450, 19, 6,  0x9 },  /*SLCE_CHNL_HASH_MCHBAR.SLCE_HASH_MASK*/\
+    { AUNIT, 0x6450, 51, 38, 0x36 }, /*SLCE_CHNL_HASH_MCHBAR.CH_HASH_MASK*/\
+    { AUNIT, 0x6484, 7,  0,  0xff }, /*CHAP_SLCT1_MCHBAR.CHID_X_CNT_UPTXN*/\
+    { AUNIT, 0x6484, 23, 16, 0xff}  /*CHAP_SLCT1_MCHBAR.CHID_Y_CNT_UPTXN*/
+
+#define BUNIT_VALUEFORPERF_MSG_VALUES_PLATFORM_DEFAULT \
+    { BUNIT, 0x6d4c, 5,  0,  0x8 },  /*BARBCTRL0.AGENT0_WGHT*/\
+    { BUNIT, 0x6d4c, 13, 8,  0x8 },  /*BARBCTRL0.AGENT1_WGHT*/\
+    { BUNIT, 0x6d4c, 21, 16, 0x8 },  /*BARBCTRL0.AGENT2_WGHT*/\
+    { BUNIT, 0x6d4c, 29, 24, 0x8 },  /*BARBCTRL0.AGENT3_WGHT*/\
+    { BUNIT, 0x6d50, 5,  0,  0x8 },  /*BARBCTRL1.AGENT4_WGHT*/\
+    { BUNIT, 0x6d50, 13, 8,  0x8 },  /*BARBCTRL1.AGENT5_WGHT*/\
+    { BUNIT, 0x6d50, 21, 16, 0x8 },  /*BARBCTRL1.AGENT6_WGHT*/\
+    { BUNIT, 0x6d50, 29, 24, 0x8 },  /*BARBCTRL1.AGENT7_WGHT*/\
+    { BUNIT, 0x6d54, 5,  0,  0x8 },  /*BSCHWT0.AGENT0_WGHT*/\
+    { BUNIT, 0x6d54, 13, 8,  0x8 },  /*BSCHWT0.AGENT1_WGHT*/\
+    { BUNIT, 0x6d54, 21, 16, 0x8 },  /*BSCHWT0.AGENT2_WGHT*/\
+    { BUNIT, 0x6d54, 29, 24, 0x8 },  /*BSCHWT0.AGENT3_WGHT*/\
+    { BUNIT, 0x6d58, 5,  0,  0x8 },  /*BSCHWT1.AGENT4_WGHT*/\
+    { BUNIT, 0x6d58, 13, 8,  0x8 },  /*BSCHWT1.AGENT5_WGHT*/\
+    { BUNIT, 0x6d58, 21, 16, 0x8 },  /*BSCHWT1.AGENT6_WGHT*/\
+    { BUNIT, 0x6d58, 29, 24, 0x8 },  /*BSCHWT1.AGENT7_WGHT*/\
+    { BUNIT, 0x6d5c, 5,  0,  0x8 },  /*BSCHWT2.AGENT8_WGHT*/\
+    { BUNIT, 0x6d5c, 13, 8,  0x8 },  /*BSCHWT2.AGENT9_WGHT*/\
+    { BUNIT, 0x6d5c, 21, 16, 0x8 },  /*BSCHWT2.AGENT10_WGHT*/\
+    { BUNIT, 0x6d5c, 29, 24, 0x8 },  /*BSCHWT2.AGENT11_WGHT*/\
+    { BUNIT, 0x6d60, 5,  0,  0x8 },  /*BSCHWT3.AGENT12_WGHT*/\
+    { BUNIT, 0x6d60, 13, 8,  0x8 },  /*BSCHWT3.AGENT13_WGHT*/\
+    { BUNIT, 0x6d60, 21, 16, 0x8 },  /*BSCHWT3.AGENT14_WGHT*/\
+    { BUNIT, 0x6d60, 29, 24, 0x8 },  /*BSCHWT3.AGENT15_WGHT*/\
+    { BUNIT, 0x6d64, 7,  0,  0x1b }, /*BWFLUSH.DIRTY_HWM*/\
+    { BUNIT, 0x6d64, 15, 8,  0x0 },  /*BWFLUSH.DIRTY_LWM*/\
+    { BUNIT, 0x6d64, 31, 24, 0x27 }, /*BWFLUSH.FLUSH_THRSHLD*/\
+    { BUNIT, 0x6d68, 5,  0,  0x1 },  /*BFLWT.RD_WGHTS*/\
+    { BUNIT, 0x6d68, 13, 8,  0x1 },  /*BFLWT.WR_WGHTS*/\
+    { BUNIT, 0x6d68, 31, 31, 0x0 },  /*BFLWT.DIS_FLUSH_WGHTS*/\
+    { BUNIT, 0x6d6c, 5,  0,  0xf },  /*BISOCWT.NON_ISOC_REQUEST_WGHTS*/\
+    { BUNIT, 0x6d6c, 13, 8,  0x3f }, /*BISOCWT.ISOC_REQUEST_WGHTS*/\
+    { BUNIT, 0x6d6c, 31, 31, 0x1 },  /*BISOCWT.ENABLE_ISOC_WGHTS*/\
+    { BUNIT, 0x6d70, 0,  0,  0x0 }   /*BCTRL2.DIRTY_STALL*/
+
+#define BUNIT_VALUEFORPOWER_MSG_VALUES_PLATFORM_DEFAULT \
+    { BUNIT, 0x6d4c, 5,  0,  0x4 },  /*BARBCTRL0.AGENT0_WGHT*/\
+    { BUNIT, 0x6d4c, 13, 8,  0x4 },  /*BARBCTRL0.AGENT1_WGHT*/\
+    { BUNIT, 0x6d4c, 21, 16, 0x4 },  /*BARBCTRL0.AGENT2_WGHT*/\
+    { BUNIT, 0x6d4c, 29, 24, 0x4 },  /*BARBCTRL0.AGENT3_WGHT*/\
+    { BUNIT, 0x6d50, 5,  0,  0x4 },  /*BARBCTRL1.AGENT4_WGHT*/\
+    { BUNIT, 0x6d50, 13, 8,  0x4 },  /*BARBCTRL1.AGENT5_WGHT*/\
+    { BUNIT, 0x6d50, 21, 16, 0x4 },  /*BARBCTRL1.AGENT6_WGHT*/\
+    { BUNIT, 0x6d50, 29, 24, 0x4 },  /*BARBCTRL1.AGENT7_WGHT*/\
+    { BUNIT, 0x6d54, 5,  0,  0x4 },  /*BSCHWT0.AGENT0_WGHT*/\
+    { BUNIT, 0x6d54, 13, 8,  0x4 },  /*BSCHWT0.AGENT1_WGHT*/\
+    { BUNIT, 0x6d54, 21, 16, 0x4 },  /*BSCHWT0.AGENT2_WGHT*/\
+    { BUNIT, 0x6d54, 29, 24, 0x4 },  /*BSCHWT0.AGENT3_WGHT*/\
+    { BUNIT, 0x6d58, 5,  0,  0x4 },  /*BSCHWT1.AGENT4_WGHT*/\
+    { BUNIT, 0x6d58, 13, 8,  0x4 },  /*BSCHWT1.AGENT5_WGHT*/\
+    { BUNIT, 0x6d58, 21, 16, 0x4 },  /*BSCHWT1.AGENT6_WGHT*/\
+    { BUNIT, 0x6d58, 29, 24, 0x4 },  /*BSCHWT1.AGENT7_WGHT*/\
+    { BUNIT, 0x6d5c, 5,  0,  0x4 },  /*BSCHWT2.AGENT8_WGHT*/\
+    { BUNIT, 0x6d5c, 13, 8,  0x4 },  /*BSCHWT2.AGENT9_WGHT*/\
+    { BUNIT, 0x6d5c, 21, 16, 0x4 },  /*BSCHWT2.AGENT10_WGHT*/\
+    { BUNIT, 0x6d5c, 29, 24, 0x4 },  /*BSCHWT2.AGENT11_WGHT*/\
+    { BUNIT, 0x6d60, 5,  0,  0x4 },  /*BSCHWT3.AGENT12_WGHT*/\
+    { BUNIT, 0x6d60, 13, 8,  0x4 },  /*BSCHWT3.AGENT13_WGHT*/\
+    { BUNIT, 0x6d60, 21, 16, 0x4 },  /*BSCHWT3.AGENT14_WGHT*/\
+    { BUNIT, 0x6d60, 29, 24, 0x4 },  /*BSCHWT3.AGENT15_WGHT*/\
+    { BUNIT, 0x6d64, 7,  0,  0x0 },  /*BWFLUSH.DIRTY_HWM*/\
+    { BUNIT, 0x6d64, 15, 8,  0x0 },  /*BWFLUSH.DIRTY_LWM*/\
+    { BUNIT, 0x6d64, 31, 24, 0x0 },  /*BWFLUSH.FLUSH_THRSHLD*/\
+    { BUNIT, 0x6d68, 5,  0,  0x0 },  /*BFLWT.RD_WGHTS*/\
+    { BUNIT, 0x6d68, 13, 8,  0x0 },  /*BFLWT.WR_WGHTS*/\
+    { BUNIT, 0x6d68, 31, 31, 0x0 },  /*BFLWT.DIS_FLUSH_WGHTS*/\
+    { BUNIT, 0x6d6c, 5,  0,  0x0 },  /*BISOCWT.NON_ISOC_REQUEST_WGHTS*/\
+    { BUNIT, 0x6d6c, 13, 8,  0x0 },  /*BISOCWT.ISOC_REQUEST_WGHTS*/\
+    { BUNIT, 0x6d6c, 31, 31, 0x0 },  /*BISOCWT.ENABLE_ISOC_WGHTS*/\
+    { BUNIT, 0x6d70, 0,  0,  0x0 }   /*BCTRL2.DIRTY_STALL*/
+
+#define BUNIT_VALUEFORPWRPERF_MSG_VALUES_PLATFORM_DEFAULT \
+    { BUNIT, 0x6d4c, 5,  0,  0x4 },  /*BARBCTRL0.AGENT0_WGHT*/\
+    { BUNIT, 0x6d4c, 13, 8,  0x4 },  /*BARBCTRL0.AGENT1_WGHT*/\
+    { BUNIT, 0x6d4c, 21, 16, 0x4 },  /*BARBCTRL0.AGENT2_WGHT*/\
+    { BUNIT, 0x6d4c, 29, 24, 0x4 },  /*BARBCTRL0.AGENT3_WGHT*/\
+    { BUNIT, 0x6d50, 5,  0,  0x4 },  /*BARBCTRL1.AGENT4_WGHT*/\
+    { BUNIT, 0x6d50, 13, 8,  0x4 },  /*BARBCTRL1.AGENT5_WGHT*/\
+    { BUNIT, 0x6d50, 21, 16, 0x4 },  /*BARBCTRL1.AGENT6_WGHT*/\
+    { BUNIT, 0x6d50, 29, 24, 0x4 },  /*BARBCTRL1.AGENT7_WGHT*/\
+    { BUNIT, 0x6d54, 5,  0,  0x4 },  /*BSCHWT0.AGENT0_WGHT*/\
+    { BUNIT, 0x6d54, 13, 8,  0x4 },  /*BSCHWT0.AGENT1_WGHT*/\
+    { BUNIT, 0x6d54, 21, 16, 0x4 },  /*BSCHWT0.AGENT2_WGHT*/\
+    { BUNIT, 0x6d54, 29, 24, 0x4 },  /*BSCHWT0.AGENT3_WGHT*/\
+    { BUNIT, 0x6d58, 5,  0,  0x4 },  /*BSCHWT1.AGENT4_WGHT*/\
+    { BUNIT, 0x6d58, 13, 8,  0x4 },  /*BSCHWT1.AGENT5_WGHT*/\
+    { BUNIT, 0x6d58, 21, 16, 0x4 },  /*BSCHWT1.AGENT6_WGHT*/\
+    { BUNIT, 0x6d58, 29, 24, 0x4 },  /*BSCHWT1.AGENT7_WGHT*/\
+    { BUNIT, 0x6d5c, 5,  0,  0x4 },  /*BSCHWT2.AGENT8_WGHT*/\
+    { BUNIT, 0x6d5c, 13, 8,  0x4 },  /*BSCHWT2.AGENT9_WGHT*/\
+    { BUNIT, 0x6d5c, 21, 16, 0x4 },  /*BSCHWT2.AGENT10_WGHT*/\
+    { BUNIT, 0x6d5c, 29, 24, 0x4 },  /*BSCHWT2.AGENT11_WGHT*/\
+    { BUNIT, 0x6d60, 5,  0,  0x4 },  /*BSCHWT3.AGENT12_WGHT*/\
+    { BUNIT, 0x6d60, 13, 8,  0x4 },  /*BSCHWT3.AGENT13_WGHT*/\
+    { BUNIT, 0x6d60, 21, 16, 0x4 },  /*BSCHWT3.AGENT14_WGHT*/\
+    { BUNIT, 0x6d60, 29, 24, 0x4 },  /*BSCHWT3.AGENT15_WGHT*/\
+    { BUNIT, 0x6d64, 7,  0,  0x0 },  /*BWFLUSH.DIRTY_HWM*/\
+    { BUNIT, 0x6d64, 15, 8,  0x0 },  /*BWFLUSH.DIRTY_LWM*/\
+    { BUNIT, 0x6d64, 31, 24, 0x0 },  /*BWFLUSH.FLUSH_THRSHLD*/\
+    { BUNIT, 0x6d68, 5,  0,  0x0 },  /*BFLWT.RD_WGHTS*/\
+    { BUNIT, 0x6d68, 13, 8,  0x0 },  /*BFLWT.WR_WGHTS*/\
+    { BUNIT, 0x6d68, 31, 31, 0x0 },  /*BFLWT.DIS_FLUSH_WGHTS*/\
+    { BUNIT, 0x6d6c, 5,  0,  0x0 },  /*BISOCWT.NON_ISOC_REQUEST_WGHTS*/\
+    { BUNIT, 0x6d6c, 13, 8,  0x0 },  /*BISOCWT.ISOC_REQUEST_WGHTS*/\
+    { BUNIT, 0x6d6c, 31, 31, 0x0 },  /*BISOCWT.ENABLE_ISOC_WGHTS*/\
+    { BUNIT, 0x6d70, 0,  0,  0x0 }   /*BCTRL2.DIRTY_STALL*/
+
+#define TUNIT_VALUEFORPERF_MSG_VALUES_PLATFORM_DEFAULT \
+    { TUNIT, 0x7810, 0,  0,  0x0 }, /*CTL_MCHBAR.ALWYS_SNP_PII2*/\
+    { TUNIT, 0x7810, 1,  1,  0x0 }, /*CTL_MCHBAR.OUTSTND_SNP*/\
+    { TUNIT, 0x7810, 2,  2,  0x0 }, /*CTL_MCHBAR.DIS_LIVE_BRAM_BYP_IDI*/\
+    { TUNIT, 0x7810, 3,  3,  0x0 }, /*CTL_MCHBAR.ALWYS_SNP_IDI*/\
+    { TUNIT, 0x7810, 7,  7,  0x0 }, /*CTL_MCHBAR.SNPINV*/\
+    { TUNIT, 0x7810, 18, 18, 0x0 }, /*CTL_MCHBAR.DIS_ISOC_HIGHPRI_RDDATA_RTRN*/\
+    { TUNIT, 0x7810, 19, 19, 0x0 }, /*CTL_MCHBAR.DIS_OPPRTNSTC_SLCE1_SCHDL*/\
+    { TUNIT, 0x7810, 20, 20, 0x0 }, /*CTL_MCHBAR.DIS_SNOOPING_GT*/\
+    { TUNIT, 0x781c, 0,  0,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC0A_IN_ODR*/\
+    { TUNIT, 0x781c, 1,  1,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC0B_IN_ODR*/\
+    { TUNIT, 0x781c, 2,  2,  0x0 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC1A_IN_ODR*/\
+    { TUNIT, 0x781c, 3,  3,  0x0 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC1B_IN_ODR*/\
+    { TUNIT, 0x781c, 4,  4,  0x0 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC2A_IN_ODR*/\
+    { TUNIT, 0x781c, 5,  5,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC2B_IN_ODR*/\
+    { TUNIT, 0x781c, 6,  6,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC2C_IN_ODR*/\
+    { TUNIT, 0x781c, 7,  7,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VCBR_IN_ODR*/\
+    { TUNIT, 0x7820, 0,  0,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC0A_IN_ODR*/\
+    { TUNIT, 0x7820, 1,  1,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC0B_IN_ODR*/\
+    { TUNIT, 0x7820, 2,  2,  0x0 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC1A_IN_ODR*/\
+    { TUNIT, 0x7820, 3,  3,  0x0 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC1B_IN_ODR*/\
+    { TUNIT, 0x7820, 4,  4,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC2A_IN_ODR*/\
+    { TUNIT, 0x7820, 5,  5,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC2B_IN_ODR*/\
+    { TUNIT, 0x7820, 6,  6,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC2C_IN_ODR*/\
+    { TUNIT, 0x7820, 7,  7,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VCBR_IN_ODR*/\
+    { TUNIT, 0x523c, 0,  0,  0x0 }, /*T_CR_CTL.ALWYS_SNP_PII2*/\
+    { TUNIT, 0x523c, 2,  2,  0x0 }, /*T_CR_CTL.DIS_LIVE_BRAM_BYP_IDI*/\
+    { TUNIT, 0x523c, 3,  3,  0x0 }, /*T_CR_CTL.ALWYS_SNP_IDI*/\
+    { TUNIT, 0x523c, 18, 18, 0x0 }, /*T_CR_CTL.DIS_ISOC_HIGHPRI_RDDATA_RTRN*/\
+    { TUNIT, 0x523c, 19, 19, 0x0 }, /*T_CR_CTL.DIS_OPPRTNSTC_SLCE1_SCHDL*/\
+    { TUNIT, 0x523c, 20, 20, 0x0 }, /*T_CR_CTL.DIS_SNOOPING_GT*/\
+    { TUNIT, 0x5288, 0,  0,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC0A_IN_ODR*/\
+    { TUNIT, 0x5288, 1,  1,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC0B_IN_ODR*/\
+    { TUNIT, 0x5288, 2,  2,  0x0 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC1A_IN_ODR*/\
+    { TUNIT, 0x5288, 3,  3,  0x0 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC1B_IN_ODR*/\
+    { TUNIT, 0x5288, 4,  4,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC2A_IN_ODR*/\
+    { TUNIT, 0x5288, 5,  5,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC2B_IN_ODR*/\
+    { TUNIT, 0x5288, 6,  6,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC2C_IN_ODR*/\
+    { TUNIT, 0x5288, 7,  7,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VCBR_IN_ODR*/\
+    { TUNIT, 0x528c, 0,  0,  0x1 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC0A_IN_ODR*/\
+    { TUNIT, 0x528c, 1,  1,  0x1 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC0B_IN_ODR*/\
+    { TUNIT, 0x528c, 2,  2,  0x0 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC1A_IN_ODR*/\
+    { TUNIT, 0x528c, 3,  3,  0x0 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC1B_IN_ODR*/\
+    { TUNIT, 0x528c, 4,  4,  0x1 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC2A_IN_ODR*/\
+    { TUNIT, 0x528c, 5,  5,  0x1 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC2B_IN_ODR*/\
+    { TUNIT, 0x528c, 6,  6,  0x1 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC2C_IN_ODR*/\
+    { TUNIT, 0x528c, 7,  7,  0x1 }  /*T_CR_VC_WR_ODNG_CFG.UPSTR_VCBR_IN_ODR*/
+
+#define TUNIT_VALUEFORPOWER_MSG_VALUES_PLATFORM_DEFAULT \
+    { TUNIT, 0x7810, 0,  0,  0x0 }, /*CTL_MCHBAR.ALWYS_SNP_PII2*/\
+    { TUNIT, 0x7810, 1,  1,  0x0 }, /*CTL_MCHBAR.OUTSTND_SNP*/\
+    { TUNIT, 0x7810, 2,  2,  0x0 }, /*CTL_MCHBAR.DIS_LIVE_BRAM_BYP_IDI*/\
+    { TUNIT, 0x7810, 3,  3,  0x0 }, /*CTL_MCHBAR.ALWYS_SNP_IDI*/\
+    { TUNIT, 0x7810, 7,  7,  0x0 }, /*CTL_MCHBAR.SNPINV*/\
+    { TUNIT, 0x7810, 18, 18, 0x0 }, /*CTL_MCHBAR.DIS_ISOC_HIGHPRI_RDDATA_RTRN*/\
+    { TUNIT, 0x7810, 19, 19, 0x0 }, /*CTL_MCHBAR.DIS_OPPRTNSTC_SLCE1_SCHDL*/\
+    { TUNIT, 0x7810, 20, 20, 0x0 }, /*CTL_MCHBAR.DIS_SNOOPING_GT*/\
+    { TUNIT, 0x781c, 0,  0,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC0A_IN_ODR*/\
+    { TUNIT, 0x781c, 1,  1,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC0B_IN_ODR*/\
+    { TUNIT, 0x781c, 2,  2,  0x0 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC1A_IN_ODR*/\
+    { TUNIT, 0x781c, 3,  3,  0x0 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC1B_IN_ODR*/\
+    { TUNIT, 0x781c, 4,  4,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC2A_IN_ODR*/\
+    { TUNIT, 0x781c, 5,  5,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC2B_IN_ODR*/\
+    { TUNIT, 0x781c, 6,  6,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC2C_IN_ODR*/\
+    { TUNIT, 0x781c, 7,  7,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VCBR_IN_ODR*/\
+    { TUNIT, 0x7820, 0,  0,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC0A_IN_ODR*/\
+    { TUNIT, 0x7820, 1,  1,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC0B_IN_ODR*/\
+    { TUNIT, 0x7820, 2,  2,  0x0 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC1A_IN_ODR*/\
+    { TUNIT, 0x7820, 3,  3,  0x0 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC1B_IN_ODR*/\
+    { TUNIT, 0x7820, 4,  4,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC2A_IN_ODR*/\
+    { TUNIT, 0x7820, 5,  5,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC2B_IN_ODR*/\
+    { TUNIT, 0x7820, 6,  6,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC2C_IN_ODR*/\
+    { TUNIT, 0x7820, 7,  7,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VCBR_IN_ODR*/\
+    { TUNIT, 0x523c, 0,  0,  0x0 }, /*T_CR_CTL.ALWYS_SNP_PII2*/\
+    { TUNIT, 0x523c, 2,  2,  0x0 }, /*T_CR_CTL.DIS_LIVE_BRAM_BYP_IDI*/\
+    { TUNIT, 0x523c, 3,  3,  0x0 }, /*T_CR_CTL.ALWYS_SNP_IDI*/\
+    { TUNIT, 0x523c, 18, 18, 0x0 }, /*T_CR_CTL.DIS_ISOC_HIGHPRI_RDDATA_RTRN*/\
+    { TUNIT, 0x523c, 19, 19, 0x0 }, /*T_CR_CTL.DIS_OPPRTNSTC_SLCE1_SCHDL*/\
+    { TUNIT, 0x523c, 20, 20, 0x0 }, /*T_CR_CTL.DIS_SNOOPING_GT*/\
+    { TUNIT, 0x5288, 0,  0,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC0A_IN_ODR*/\
+    { TUNIT, 0x5288, 1,  1,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC0B_IN_ODR*/\
+    { TUNIT, 0x5288, 2,  2,  0x0 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC1A_IN_ODR*/\
+    { TUNIT, 0x5288, 3,  3,  0x0 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC1B_IN_ODR*/\
+    { TUNIT, 0x5288, 4,  4,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC2A_IN_ODR*/\
+    { TUNIT, 0x5288, 5,  5,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC2B_IN_ODR*/\
+    { TUNIT, 0x5288, 6,  6,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC2C_IN_ODR*/\
+    { TUNIT, 0x5288, 7,  7,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VCBR_IN_ODR*/\
+    { TUNIT, 0x528c, 0,  0,  0x1 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC0A_IN_ODR*/\
+    { TUNIT, 0x528c, 1,  1,  0x1 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC0B_IN_ODR*/\
+    { TUNIT, 0x528c, 2,  2,  0x0 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC1A_IN_ODR*/\
+    { TUNIT, 0x528c, 3,  3,  0x0 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC1B_IN_ODR*/\
+    { TUNIT, 0x528c, 4,  4,  0x1 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC2A_IN_ODR*/\
+    { TUNIT, 0x528c, 5,  5,  0x1 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC2B_IN_ODR*/\
+    { TUNIT, 0x528c, 6,  6,  0x1 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC2C_IN_ODR*/\
+    { TUNIT, 0x528c, 7,  7,  0x1 }  /*T_CR_VC_WR_ODNG_CFG.UPSTR_VCBR_IN_ODR*/
+
+#define TUNIT_VALUEFORPWRPERF_MSG_VALUES_PLATFORM_DEFAULT \
+    { TUNIT, 0x7810, 0,  0,  0x0 }, /*CTL_MCHBAR.ALWYS_SNP_PII2*/\
+    { TUNIT, 0x7810, 1,  1,  0x0 }, /*CTL_MCHBAR.OUTSTND_SNP*/\
+    { TUNIT, 0x7810, 2,  2,  0x0 }, /*CTL_MCHBAR.DIS_LIVE_BRAM_BYP_IDI*/\
+    { TUNIT, 0x7810, 3,  3,  0x0 }, /*CTL_MCHBAR.ALWYS_SNP_IDI*/\
+    { TUNIT, 0x7810, 7,  7,  0x0 }, /*CTL_MCHBAR.SNPINV*/\
+    { TUNIT, 0x7810, 18, 18, 0x0 }, /*CTL_MCHBAR.DIS_ISOC_HIGHPRI_RDDATA_RTRN*/\
+    { TUNIT, 0x7810, 19, 19, 0x0 }, /*CTL_MCHBAR.DIS_OPPRTNSTC_SLCE1_SCHDL*/\
+    { TUNIT, 0x7810, 20, 20, 0x0 }, /*CTL_MCHBAR.DIS_SNOOPING_GT*/\
+    { TUNIT, 0x781c, 0,  0,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC0A_IN_ODR*/\
+    { TUNIT, 0x781c, 1,  1,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC0B_IN_ODR*/\
+    { TUNIT, 0x781c, 2,  2,  0x0 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC1A_IN_ODR*/\
+    { TUNIT, 0x781c, 3,  3,  0x0 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC1B_IN_ODR*/\
+    { TUNIT, 0x781c, 4,  4,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC2A_IN_ODR*/\
+    { TUNIT, 0x781c, 5,  5,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC2B_IN_ODR*/\
+    { TUNIT, 0x781c, 6,  6,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VC2C_IN_ODR*/\
+    { TUNIT, 0x781c, 7,  7,  0x1 }, /*VC_RD_ODNG_CFG_MCHBAR.UPSTR_VCBR_IN_ODR*/\
+    { TUNIT, 0x7820, 0,  0,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC0A_IN_ODR*/\
+    { TUNIT, 0x7820, 1,  1,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC0B_IN_ODR*/\
+    { TUNIT, 0x7820, 2,  2,  0x0 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC1A_IN_ODR*/\
+    { TUNIT, 0x7820, 3,  3,  0x0 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC1B_IN_ODR*/\
+    { TUNIT, 0x7820, 4,  4,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC2A_IN_ODR*/\
+    { TUNIT, 0x7820, 5,  5,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC2B_IN_ODR*/\
+    { TUNIT, 0x7820, 6,  6,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VC2C_IN_ODR*/\
+    { TUNIT, 0x7820, 7,  7,  0x1 }, /*VC_WR_ODNG_CFG_MCHBAR.UPSTR_VCBR_IN_ODR*/\
+    { TUNIT, 0x523c, 0,  0,  0x0 }, /*T_CR_CTL.ALWYS_SNP_PII2*/\
+    { TUNIT, 0x523c, 2,  2,  0x0 }, /*T_CR_CTL.DIS_LIVE_BRAM_BYP_IDI*/\
+    { TUNIT, 0x523c, 3,  3,  0x0 }, /*T_CR_CTL.ALWYS_SNP_IDI*/\
+    { TUNIT, 0x523c, 18, 18, 0x0 }, /*T_CR_CTL.DIS_ISOC_HIGHPRI_RDDATA_RTRN*/\
+    { TUNIT, 0x523c, 19, 19, 0x0 }, /*T_CR_CTL.DIS_OPPRTNSTC_SLCE1_SCHDL*/\
+    { TUNIT, 0x523c, 20, 20, 0x0 }, /*T_CR_CTL.DIS_SNOOPING_GT*/\
+    { TUNIT, 0x5288, 0,  0,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC0A_IN_ODR*/\
+    { TUNIT, 0x5288, 1,  1,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC0B_IN_ODR*/\
+    { TUNIT, 0x5288, 2,  2,  0x0 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC1A_IN_ODR*/\
+    { TUNIT, 0x5288, 3,  3,  0x0 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC1B_IN_ODR*/\
+    { TUNIT, 0x5288, 4,  4,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC2A_IN_ODR*/\
+    { TUNIT, 0x5288, 5,  5,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC2B_IN_ODR*/\
+    { TUNIT, 0x5288, 6,  6,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VC2C_IN_ODR*/\
+    { TUNIT, 0x5288, 7,  7,  0x1 }, /*T_CR_VC_RD_ODNG_CFG.UPSTR_VCBR_IN_ODR*/\
+    { TUNIT, 0x528c, 0,  0,  0x1 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC0A_IN_ODR*/\
+    { TUNIT, 0x528c, 1,  1,  0x1 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC0B_IN_ODR*/\
+    { TUNIT, 0x528c, 2,  2,  0x0 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC1A_IN_ODR*/\
+    { TUNIT, 0x528c, 3,  3,  0x0 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC1B_IN_ODR*/\
+    { TUNIT, 0x528c, 4,  4,  0x1 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC2A_IN_ODR*/\
+    { TUNIT, 0x528c, 5,  5,  0x1 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC2B_IN_ODR*/\
+    { TUNIT, 0x528c, 6,  6,  0x1 }, /*T_CR_VC_WR_ODNG_CFG.UPSTR_VC2C_IN_ODR*/\
+    { TUNIT, 0x528c, 7,  7,  0x1 }  /*T_CR_VC_WR_ODNG_CFG.UPSTR_VCBR_IN_ODR*/
+
+#define VALUEFORPWRPERF_MSG_VALUES_PLATFORM_DEFAULT \
+    AUNIT_VALUEFORPWRPERF_MSG_VALUES_PLATFORM_DEFAULT, \
+    BUNIT_VALUEFORPWRPERF_MSG_VALUES_PLATFORM_DEFAULT, \
+    TUNIT_VALUEFORPWRPERF_MSG_VALUES_PLATFORM_DEFAULT
+
+#define VALUEFORPOWER_MSG_VALUES_PLATFORM_DEFAULT \
+    AUNIT_VALUEFORPOWER_MSG_VALUES_PLATFORM_DEFAULT, \
+    BUNIT_VALUEFORPOWER_MSG_VALUES_PLATFORM_DEFAULT, \
+    TUNIT_VALUEFORPOWER_MSG_VALUES_PLATFORM_DEFAULT
+
+#define VALUEFORPERF_MSG_VALUES_PLATFORM_DEFAULT \
+    AUNIT_VALUEFORPERF_MSG_VALUES_PLATFORM_DEFAULT, \
+    BUNIT_VALUEFORPERF_MSG_VALUES_PLATFORM_DEFAULT, \
+    TUNIT_VALUEFORPERF_MSG_VALUES_PLATFORM_DEFAULT
+
+#endif /*_SOC_APOLLOLAKE_PNPCONFIG_H_*/
diff --git a/src/soc/intel/apollolake/pnpconfig.c b/src/soc/intel/apollolake/pnpconfig.c
new file mode 100644
index 0000000..d7b1fa4
--- /dev/null
+++ b/src/soc/intel/apollolake/pnpconfig.c
@@ -0,0 +1,69 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2017 Intel Corporation.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+#include <bootstate.h>
+#include <console/console.h>
+#include <intelblocks/pcr.h>
+#include <soc/pnpconfig.h>
+
+static struct pnpconfig perf[] = {
+    VALUEFORPERF_MSG_VALUES_PLATFORM_DEFAULT,
+};
+
+static struct pnpconfig power[] = {
+    VALUEFORPOWER_MSG_VALUES_PLATFORM_DEFAULT,
+};
+
+static struct pnpconfig power_perf[] = {
+    VALUEFORPWRPERF_MSG_VALUES_PLATFORM_DEFAULT,
+};
+
+static void pnp_settings(void *unused)
+{
+    uint32_t  index, arrsize;
+    struct pnpconfig *pnpconfigarr;
+
+    switch(CONFIG_PNP_SETTINGS) {
+    case 0:
+            pnpconfigarr = perf;
+            arrsize = sizeof(perf) / sizeof(perf[0]);
+            break;
+    case 1:
+            pnpconfigarr = power;
+            arrsize = sizeof(power) / sizeof(power[0]);
+            break;
+    case 2:
+            pnpconfigarr = power_perf;
+            arrsize = sizeof(power_perf) / sizeof(power_perf[0]);
+            break;
+    default:
+            printk(BIOS_DEBUG, "Invalid PNP settings selected");
+            return;
+    }
+
+    for (index = 0; index < arrsize; index++) {
+        if (!pnpconfigarr[index].msgport && !pnpconfigarr[index].msgregaddr &&
+             !pnpconfigarr[index].value)
+            continue;
+
+        pcr_rmw32(pnpconfigarr[index].msgport,
+                  pnpconfigarr[index].msgregaddr,
+                  MASK_VAL(pnpconfigarr[index].msb,
+                           pnpconfigarr[index].lsb,
+                           pnpconfigarr[index].value));
+    }
+}
+
+BOOT_STATE_INIT_ENTRY(BS_DEV_INIT, BS_ON_EXIT, pnp_settings, NULL);

-- 
To view, visit https://review.coreboot.org/22488
To unsubscribe, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibd70a42c9406941c8a93cc972f22c2475e9d0200
Gerrit-Change-Number: 22488
Gerrit-PatchSet: 1
Gerrit-Owner: Divya Chellappa <divya.chellappa at intel.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20171117/8f1cb2f5/attachment-0001.html>


More information about the coreboot-gerrit mailing list