<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>