[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