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

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ibd70a42c9406941c8a93cc972f22c2475e9d0200 </div>
<div style="display:none"> Gerrit-Change-Number: 22488 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Divya Chellappa <divya.chellappa@intel.com> </div>