soc/intel/apollolake: Add PNP config

1. Programs PNP values for AUNIT, BUNIT & TUNIT registers
as per reference code.
2. A new configuration option pnp_settings is introduced in
devicetree.cb to select PNP settings among performance,
power, power & performance.

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

Change-Id: Ibd70a42c9406941c8a93cc972f22c2475e9d0200
Signed-off-by: Divya Chellap <divya.chellappa@intel.com>
Reviewed-on: https://review.coreboot.org/22488
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Divya Chellap 2017-11-29 18:53:03 +05:30 committed by Martin Roth
parent 64d855dbb0
commit 0b15b70b18
5 changed files with 860 additions and 0 deletions

View File

@ -60,6 +60,7 @@ ramstage-y += nhlt.c
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 += xdci.c

View File

@ -30,6 +30,12 @@
#define CLKREQ_DISABLED 0xf
#define APOLLOLAKE_I2C_DEV_MAX 8
enum pnp_settings {
PNP_PERF,
PNP_POWER,
PNP_PERF_POWER,
};
struct soc_intel_apollolake_config {
/*
* Mapping from PCIe root port to CLKREQ input on the SOC. The SOC has
@ -133,6 +139,12 @@ struct soc_intel_apollolake_config {
* (1) set sgx_enable = 1
* (2) set PrmrrSize to supported size */
uint8_t sgx_enable;
/* Select PNP Settings.
* (0) Performance,
* (1) Power
* (2) Power & Performance */
enum pnp_settings pnp_settings;
};
typedef struct soc_intel_apollolake_config config_t;

View File

@ -32,4 +32,8 @@
#define PID_ITSS 0xD0
#define PID_RTC 0xD1
#define PID_AUNIT 0x4d
#define PID_BUNIT 0x4c
#define PID_TUNIT 0x52
#endif /* SOC_INTEL_APL_PCR_H */

View File

@ -0,0 +1,776 @@
/*
* 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_
#include <soc/pcr_ids.h>
#define MAKE_MASK_INCLUSIVE(msb) MAKE_MASK(msb+1)
#define MAKE_MASK(msb) (uint32_t)((1ULL << (msb)) - 1)
#define MASK_VAL(msb, lsb, val) \
~(MAKE_MASK_INCLUSIVE(msb) & ~MAKE_MASK(lsb)), (val) << (lsb)
struct pnpconfig {
int msgport;
uint32_t msgregaddr;
uint32_t mask;
uint32_t value;
};
#define AUNIT_VALUEFORPERF_MSG_VALUES_PLATFORM_DEFAULT \
/* A_CR_CRDARB_GCNT_DEV_P_0_MCHBAR.CHID0 */ \
{ PID_AUNIT, 0x6430, MASK_VAL(7, 0, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_P_0_MCHBAR.CHID1 */ \
{ PID_AUNIT, 0x6430, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_P_0_MCHBAR.CHID2 */ \
{ PID_AUNIT, 0x6430, MASK_VAL(23, 16, 0x0) }, \
/* A_CR_CRDARB_GCNT_DEV_P_0_MCHBAR.CHID3 */ \
{ PID_AUNIT, 0x6430, MASK_VAL(31, 24, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_P_1_MCHBAR.CHID4 */ \
{ PID_AUNIT, 0x6434, MASK_VAL(7, 0, 0x0) }, \
/* A_CR_CRDARB_GCNT_DEV_P_1_MCHBAR.CHID5 */ \
{ PID_AUNIT, 0x6434, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_P_1_MCHBAR.CHID6 */ \
{ PID_AUNIT, 0x6434, MASK_VAL(23, 16, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_P_1_MCHBAR.CHID7 */ \
{ PID_AUNIT, 0x6434, MASK_VAL(31, 24, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_0_MCHBAR.CHID0 */ \
{ PID_AUNIT, 0x6438, MASK_VAL(7, 0, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_0_MCHBAR.CHID1 */ \
{ PID_AUNIT, 0x6438, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_0_MCHBAR.CHID2 */ \
{ PID_AUNIT, 0x6438, MASK_VAL(23, 16, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_0_MCHBAR.CHID3 */ \
{ PID_AUNIT, 0x6438, MASK_VAL(31, 24, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_1_MCHBAR.CHID4 */ \
{ PID_AUNIT, 0x643c, MASK_VAL(7, 0, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_1_MCHBAR.CHID5 */ \
{ PID_AUNIT, 0x643c, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_1_MCHBAR.CHID6 */ \
{ PID_AUNIT, 0x643c, MASK_VAL(23, 16, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_1_MCHBAR.CHID7 */ \
{ PID_AUNIT, 0x643c, MASK_VAL(31, 24, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_C_0_MCHBAR.CHID0 */ \
{ PID_AUNIT, 0x6440, MASK_VAL(7, 0, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_C_0_MCHBAR.CHID1 */ \
{ PID_AUNIT, 0x6440, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_C_0_MCHBAR.CHID2 */ \
{ PID_AUNIT, 0x6440, MASK_VAL(23, 16, 0x0) }, \
/* A_CR_CRDARB_GCNT_DEV_C_0_MCHBAR.CHID3 */ \
{ PID_AUNIT, 0x6440, MASK_VAL(31, 24, 0x0) }, \
/* A_CR_CRDARB_GCNT_CLS_MCHBAR.P */ \
{ PID_AUNIT, 0x6444, MASK_VAL(7, 0, 0x1) }, \
/* A_CR_CRDARB_GCNT_CLS_MCHBAR.NP */ \
{ PID_AUNIT, 0x6444, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_CLS_MCHBAR.C */ \
{ PID_AUNIT, 0x6444, MASK_VAL(23, 16, 0x1) }, \
/* A_CR_GZLQ_LIMIT_CH0_3_MCHBAR.CHID0 */ \
{ PID_AUNIT, 0x6448, MASK_VAL(7, 0, 0x8) }, \
/* A_CR_GZLQ_LIMIT_CH0_3_MCHBAR.CHID1 */ \
{ PID_AUNIT, 0x6448, MASK_VAL(15, 8, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH0_3_MCHBAR.CHID2 */ \
{ PID_AUNIT, 0x6448, MASK_VAL(23, 16, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH0_3_MCHBAR.CHID3 */ \
{ PID_AUNIT, 0x6448, MASK_VAL(31, 24, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH4_7_MCHBAR.CHID4 */ \
{ PID_AUNIT, 0x644c, MASK_VAL(7, 0, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH4_7_MCHBAR.CHID5 */ \
{ PID_AUNIT, 0x644c, MASK_VAL(15, 8, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH4_7_MCHBAR.CHID6 */ \
{ PID_AUNIT, 0x644c, MASK_VAL(23, 16, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH4_7_MCHBAR.CHID7 */ \
{ PID_AUNIT, 0x644c, MASK_VAL(31, 24, 0xff) }, \
/* A_CR_SLICE_CHANNEL_HASH_0_0_0_MCHBAR.SLICE_1_DISABLED */ \
{ PID_AUNIT, 0x6450, MASK_VAL(0, 0, 0x0) }, \
/* A_CR_SLICE_CHANNEL_HASH_0_0_0_MCHBAR.HVM_MODE */ \
{ PID_AUNIT, 0x6450, MASK_VAL(1, 1, 0x0) }, \
/* A_CR_SLICE_CHANNEL_HASH_0_0_0_MCHBAR.INTERLEAVE_MODE */ \
{ PID_AUNIT, 0x6450, MASK_VAL(3, 2, 0x2) }, \
/* A_CR_SLICE_CHANNEL_HASH_0_0_0_MCHBAR.SLICE_HASH_MASK */ \
{ PID_AUNIT, 0x6450, MASK_VAL(19, 6, 0x9) }, \
/* A_CR_SLICE_CHANNEL_HASH_0_0_0_MCHBAR.CH_HASH_MASK */ \
{ PID_AUNIT, 0x6454, MASK_VAL(19, 6, 0x36) }, \
/* A_CR_CHAP_SLCT1_MCHBAR.CHID_X_CNT_UPTXN */ \
{ PID_AUNIT, 0x6484, MASK_VAL(7, 0, 0xff) }, \
/* A_CR_CHAP_SLCT1_MCHBAR.CHID_Y_CNT_UPTXN */ \
{ PID_AUNIT, 0x6484, MASK_VAL(23, 16, 0xff) }
#define AUNIT_VALUEFORPOWER_MSG_VALUES_PLATFORM_DEFAULT \
/* A_CR_CRDARB_GCNT_DEV_P_0_MCHBAR.CHID0 */ \
{ PID_AUNIT, 0x6430, MASK_VAL(7, 0, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_P_0_MCHBAR.CHID1 */ \
{ PID_AUNIT, 0x6430, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_P_0_MCHBAR.CHID2 */ \
{ PID_AUNIT, 0x6430, MASK_VAL(23, 16, 0x0) }, \
/* A_CR_CRDARB_GCNT_DEV_P_0_MCHBAR.CHID3 */ \
{ PID_AUNIT, 0x6430, MASK_VAL(31, 24, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_P_1_MCHBAR.CHID4 */ \
{ PID_AUNIT, 0x6434, MASK_VAL(7, 0, 0x0) }, \
/* A_CR_CRDARB_GCNT_DEV_P_1_MCHBAR.CHID5 */ \
{ PID_AUNIT, 0x6434, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_P_1_MCHBAR.CHID6 */ \
{ PID_AUNIT, 0x6434, MASK_VAL(23, 16, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_P_1_MCHBAR.CHID7 */ \
{ PID_AUNIT, 0x6434, MASK_VAL(31, 24, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_0_MCHBAR.CHID0 */ \
{ PID_AUNIT, 0x6438, MASK_VAL(7, 0, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_0_MCHBAR.CHID1 */ \
{ PID_AUNIT, 0x6438, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_0_MCHBAR.CHID2 */ \
{ PID_AUNIT, 0x6438, MASK_VAL(23, 16, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_0_MCHBAR.CHID3 */ \
{ PID_AUNIT, 0x6438, MASK_VAL(31, 24, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_1_MCHBAR.CHID4 */ \
{ PID_AUNIT, 0x643c, MASK_VAL(7, 0, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_1_MCHBAR.CHID5 */ \
{ PID_AUNIT, 0x643c, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_1_MCHBAR.CHID6 */ \
{ PID_AUNIT, 0x643c, MASK_VAL(23, 16, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_1_MCHBAR.CHID7 */ \
{ PID_AUNIT, 0x643c, MASK_VAL(31, 24, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_C_0_MCHBAR.CHID0 */ \
{ PID_AUNIT, 0x6440, MASK_VAL(7, 0, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_C_0_MCHBAR.CHID1 */ \
{ PID_AUNIT, 0x6440, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_C_0_MCHBAR.CHID2 */ \
{ PID_AUNIT, 0x6440, MASK_VAL(23, 16, 0x0) }, \
/* A_CR_CRDARB_GCNT_DEV_C_0_MCHBAR.CHID3 */ \
{ PID_AUNIT, 0x6440, MASK_VAL(31, 24, 0x0) }, \
/* A_CR_CRDARB_GCNT_CLS_MCHBAR.P */ \
{ PID_AUNIT, 0x6444, MASK_VAL(7, 0, 0x1) }, \
/* A_CR_CRDARB_GCNT_CLS_MCHBAR.NP */ \
{ PID_AUNIT, 0x6444, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_CLS_MCHBAR.C */ \
{ PID_AUNIT, 0x6444, MASK_VAL(23, 16, 0x1) }, \
/* A_CR_GZLQ_LIMIT_CH0_3_MCHBAR.CHID0 */ \
{ PID_AUNIT, 0x6448, MASK_VAL(7, 0, 0x8) }, \
/* A_CR_GZLQ_LIMIT_CH0_3_MCHBAR.CHID1 */ \
{ PID_AUNIT, 0x6448, MASK_VAL(15, 8, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH0_3_MCHBAR.CHID2 */ \
{ PID_AUNIT, 0x6448, MASK_VAL(23, 16, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH0_3_MCHBAR.CHID3 */ \
{ PID_AUNIT, 0x6448, MASK_VAL(31, 24, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH4_7_MCHBAR.CHID4 */ \
{ PID_AUNIT, 0x644c, MASK_VAL(7, 0, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH4_7_MCHBAR.CHID5 */ \
{ PID_AUNIT, 0x644c, MASK_VAL(15, 8, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH4_7_MCHBAR.CHID6 */ \
{ PID_AUNIT, 0x644c, MASK_VAL(23, 16, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH4_7_MCHBAR.CHID7 */ \
{ PID_AUNIT, 0x644c, MASK_VAL(31, 24, 0xff) }, \
/* A_CR_SLICE_CHANNEL_HASH_0_0_0_MCHBAR.SLICE_1_DISABLED */ \
{ PID_AUNIT, 0x6450, MASK_VAL(0, 0, 0x0) }, \
/* A_CR_SLICE_CHANNEL_HASH_0_0_0_MCHBAR.HVM_MODE */ \
{ PID_AUNIT, 0x6450, MASK_VAL(1, 1, 0x0) }, \
/* A_CR_SLICE_CHANNEL_HASH_0_0_0_MCHBAR.INTERLEAVE_MODE */ \
{ PID_AUNIT, 0x6450, MASK_VAL(3, 2, 0x2) }, \
/* A_CR_SLICE_CHANNEL_HASH_0_0_0_MCHBAR.SLICE_HASH_MASK */ \
{ PID_AUNIT, 0x6450, MASK_VAL(19, 6, 0x9) }, \
/* A_CR_SLICE_CHANNEL_HASH_0_0_0_MCHBAR.CH_HASH_MASK */ \
{ PID_AUNIT, 0x6454, MASK_VAL(19, 6, 0x36) }, \
/* A_CR_CHAP_SLCT1_MCHBAR.CHID_X_CNT_UPTXN */ \
{ PID_AUNIT, 0x6484, MASK_VAL(7, 0, 0xff) }, \
/* A_CR_CHAP_SLCT1_MCHBAR.CHID_Y_CNT_UPTXN */ \
{ PID_AUNIT, 0x6484, MASK_VAL(23, 16, 0xff) }
#define AUNIT_VALUEFORPWRPERF_MSG_VALUES_PLATFORM_DEFAULT \
/* A_CR_CRDARB_GCNT_DEV_P_0_MCHBAR.CHID0 */ \
{ PID_AUNIT, 0x6430, MASK_VAL(7, 0, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_P_0_MCHBAR.CHID1 */ \
{ PID_AUNIT, 0x6430, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_P_0_MCHBAR.CHID2 */ \
{ PID_AUNIT, 0x6430, MASK_VAL(23, 16, 0x0) }, \
/* A_CR_CRDARB_GCNT_DEV_P_0_MCHBAR.CHID3 */ \
{ PID_AUNIT, 0x6430, MASK_VAL(31, 24, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_P_1_MCHBAR.CHID4 */ \
{ PID_AUNIT, 0x6434, MASK_VAL(7, 0, 0x0) }, \
/* A_CR_CRDARB_GCNT_DEV_P_1_MCHBAR.CHID5 */ \
{ PID_AUNIT, 0x6434, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_P_1_MCHBAR.CHID6 */ \
{ PID_AUNIT, 0x6434, MASK_VAL(23, 16, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_P_1_MCHBAR.CHID7 */ \
{ PID_AUNIT, 0x6434, MASK_VAL(31, 24, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_0_MCHBAR.CHID0 */ \
{ PID_AUNIT, 0x6438, MASK_VAL(7, 0, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_0_MCHBAR.CHID1 */ \
{ PID_AUNIT, 0x6438, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_0_MCHBAR.CHID2 */ \
{ PID_AUNIT, 0x6438, MASK_VAL(23, 16, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_0_MCHBAR.CHID3 */ \
{ PID_AUNIT, 0x6438, MASK_VAL(31, 24, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_1_MCHBAR.CHID4 */ \
{ PID_AUNIT, 0x643c, MASK_VAL(7, 0, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_1_MCHBAR.CHID5 */ \
{ PID_AUNIT, 0x643c, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_1_MCHBAR.CHID6 */ \
{ PID_AUNIT, 0x643c, MASK_VAL(23, 16, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_N_1_MCHBAR.CHID7 */ \
{ PID_AUNIT, 0x643c, MASK_VAL(31, 24, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_C_0_MCHBAR.CHID0 */ \
{ PID_AUNIT, 0x6440, MASK_VAL(7, 0, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_C_0_MCHBAR.CHID1 */ \
{ PID_AUNIT, 0x6440, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_DEV_C_0_MCHBAR.CHID2 */ \
{ PID_AUNIT, 0x6440, MASK_VAL(23, 16, 0x0) }, \
/* A_CR_CRDARB_GCNT_DEV_C_0_MCHBAR.CHID3 */ \
{ PID_AUNIT, 0x6440, MASK_VAL(31, 24, 0x0) }, \
/* A_CR_CRDARB_GCNT_CLS_MCHBAR.P */ \
{ PID_AUNIT, 0x6444, MASK_VAL(7, 0, 0x1) }, \
/* A_CR_CRDARB_GCNT_CLS_MCHBAR.NP */ \
{ PID_AUNIT, 0x6444, MASK_VAL(15, 8, 0x1) }, \
/* A_CR_CRDARB_GCNT_CLS_MCHBAR.C */ \
{ PID_AUNIT, 0x6444, MASK_VAL(23, 16, 0x1) }, \
/* A_CR_GZLQ_LIMIT_CH0_3_MCHBAR.CHID0 */ \
{ PID_AUNIT, 0x6448, MASK_VAL(7, 0, 0x8) }, \
/* A_CR_GZLQ_LIMIT_CH0_3_MCHBAR.CHID1 */ \
{ PID_AUNIT, 0x6448, MASK_VAL(15, 8, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH0_3_MCHBAR.CHID2 */ \
{ PID_AUNIT, 0x6448, MASK_VAL(23, 16, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH0_3_MCHBAR.CHID3 */ \
{ PID_AUNIT, 0x6448, MASK_VAL(31, 24, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH4_7_MCHBAR.CHID4 */ \
{ PID_AUNIT, 0x644c, MASK_VAL(7, 0, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH4_7_MCHBAR.CHID5 */ \
{ PID_AUNIT, 0x644c, MASK_VAL(15, 8, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH4_7_MCHBAR.CHID6 */ \
{ PID_AUNIT, 0x644c, MASK_VAL(23, 16, 0xff) }, \
/* A_CR_GZLQ_LIMIT_CH4_7_MCHBAR.CHID7 */ \
{ PID_AUNIT, 0x644c, MASK_VAL(31, 24, 0xff) }, \
/* A_CR_SLICE_CHANNEL_HASH_0_0_0_MCHBAR.SLICE_1_DISABLED */ \
{ PID_AUNIT, 0x6450, MASK_VAL(0, 0, 0x0) }, \
/* A_CR_SLICE_CHANNEL_HASH_0_0_0_MCHBAR.HVM_MODE */ \
{ PID_AUNIT, 0x6450, MASK_VAL(1, 1, 0x0) }, \
/* A_CR_SLICE_CHANNEL_HASH_0_0_0_MCHBAR.INTERLEAVE_MODE */ \
{ PID_AUNIT, 0x6450, MASK_VAL(3, 2, 0x2) }, \
/* A_CR_SLICE_CHANNEL_HASH_0_0_0_MCHBAR.SLICE_HASH_MASK */ \
{ PID_AUNIT, 0x6450, MASK_VAL(19, 6, 0x9) }, \
/* A_CR_SLICE_CHANNEL_HASH_0_0_0_MCHBAR.CH_HASH_MASK */ \
{ PID_AUNIT, 0x6454, MASK_VAL(19, 6, 0x36) }, \
/* A_CR_CHAP_SLCT1_MCHBAR.CHID_X_CNT_UPTXN */ \
{ PID_AUNIT, 0x6484, MASK_VAL(7, 0, 0xff) }, \
/* A_CR_CHAP_SLCT1_MCHBAR.CHID_Y_CNT_UPTXN */ \
{ PID_AUNIT, 0x6484, MASK_VAL(23, 16, 0xff) }
#define BUNIT_VALUEFORPERF_MSG_VALUES_PLATFORM_DEFAULT \
/* B_CR_BARBCTRL0.AGENT0_WEIGHT */ \
{ PID_BUNIT, 0x6d4c, MASK_VAL(5, 0, 0x8) }, \
/* B_CR_BARBCTRL0.AGENT1_WEIGHT */ \
{ PID_BUNIT, 0x6d4c, MASK_VAL(13, 8, 0x8) }, \
/* B_CR_BARBCTRL0.AGENT2_WEIGHT */ \
{ PID_BUNIT, 0x6d4c, MASK_VAL(21, 16, 0x8) }, \
/* B_CR_BARBCTRL0.AGENT3_WEIGHT */ \
{ PID_BUNIT, 0x6d4c, MASK_VAL(29, 24, 0x8) }, \
/* B_CR_BARBCTRL1.AGENT4_WEIGHT */ \
{ PID_BUNIT, 0x6d50, MASK_VAL(5, 0, 0x8) }, \
/* B_CR_BARBCTRL1.AGENT5_WEIGHT */ \
{ PID_BUNIT, 0x6d50, MASK_VAL(13, 8, 0x8) }, \
/* B_CR_BARBCTRL1.AGENT6_WEIGHT */ \
{ PID_BUNIT, 0x6d50, MASK_VAL(21, 16, 0x8) }, \
/* B_CR_BARBCTRL1.AGENT7_WEIGHT */ \
{ PID_BUNIT, 0x6d50, MASK_VAL(29, 24, 0x8) }, \
/* B_CR_BSCHWT0.AGENT0_WEIGHT */ \
{ PID_BUNIT, 0x6d54, MASK_VAL(5, 0, 0x8) }, \
/* B_CR_BSCHWT0.AGENT1_WEIGHT */ \
{ PID_BUNIT, 0x6d54, MASK_VAL(13, 8, 0x8) }, \
/* B_CR_BSCHWT0.AGENT2_WEIGHT */ \
{ PID_BUNIT, 0x6d54, MASK_VAL(21, 16, 0x8) }, \
/* B_CR_BSCHWT0.AGENT3_WEIGHT */ \
{ PID_BUNIT, 0x6d54, MASK_VAL(29, 24, 0x8) }, \
/* B_CR_BSCHWT1.AGENT4_WEIGHT */ \
{ PID_BUNIT, 0x6d58, MASK_VAL(5, 0, 0x8) }, \
/* B_CR_BSCHWT1.AGENT5_WEIGHT */ \
{ PID_BUNIT, 0x6d58, MASK_VAL(13, 8, 0x8) }, \
/* B_CR_BSCHWT1.AGENT6_WEIGHT */ \
{ PID_BUNIT, 0x6d58, MASK_VAL(21, 16, 0x8) }, \
/* B_CR_BSCHWT1.AGENT7_WEIGHT */ \
{ PID_BUNIT, 0x6d58, MASK_VAL(29, 24, 0x8) }, \
/* B_CR_BSCHWT2.AGENT8_WEIGHT */ \
{ PID_BUNIT, 0x6d5c, MASK_VAL(5, 0, 0x8) }, \
/* B_CR_BSCHWT2.AGENT9_WEIGHT */ \
{ PID_BUNIT, 0x6d5c, MASK_VAL(13, 8, 0x8) }, \
/* B_CR_BSCHWT2.AGENT10_WEIGHT */ \
{ PID_BUNIT, 0x6d5c, MASK_VAL(21, 16, 0x8) }, \
/* B_CR_BSCHWT2.AGENT11_WEIGHT */ \
{ PID_BUNIT, 0x6d5c, MASK_VAL(29, 24, 0x8) }, \
/* B_CR_BSCHWT3.AGENT12_WEIGHT */ \
{ PID_BUNIT, 0x6d60, MASK_VAL(5, 0, 0x8) }, \
/* B_CR_BSCHWT3.AGENT13_WEIGHT */ \
{ PID_BUNIT, 0x6d60, MASK_VAL(13, 8, 0x8) }, \
/* B_CR_BSCHWT3.AGENT14_WEIGHT */ \
{ PID_BUNIT, 0x6d60, MASK_VAL(21, 16, 0x8) }, \
/* B_CR_BSCHWT3.AGENT15_WEIGHT */ \
{ PID_BUNIT, 0x6d60, MASK_VAL(29, 24, 0x8) }, \
/* B_CR_BWFLUSH.DIRTY_HWM */ \
{ PID_BUNIT, 0x6d64, MASK_VAL(7, 0, 0x1b) }, \
/* B_CR_BWFLUSH.DIRTY_LWM */ \
{ PID_BUNIT, 0x6d64, MASK_VAL(15, 8, 0x0) }, \
/* B_CR_BWFLUSH.FLUSH_THRESHOLD */ \
{ PID_BUNIT, 0x6d64, MASK_VAL(31, 24, 0x27) }, \
/* B_CR_BFLWT.READ_WEIGHTS */ \
{ PID_BUNIT, 0x6d68, MASK_VAL(5, 0, 0x1) }, \
/* B_CR_BFLWT.WRITE_WEIGHTS */ \
{ PID_BUNIT, 0x6d68, MASK_VAL(13, 8, 0x1) }, \
/* B_CR_BFLWT.DISABLE_FLUSH_WEIGHTS */ \
{ PID_BUNIT, 0x6d68, MASK_VAL(31, 31, 0x0) }, \
/* B_CR_BISOCWT.NON_ISOC_REQUEST_WEIGHTS */ \
{ PID_BUNIT, 0x6d6c, MASK_VAL(5, 0, 0xf) }, \
/* B_CR_BISOCWT.ISOC_REQUEST_WEIGHTS */ \
{ PID_BUNIT, 0x6d6c, MASK_VAL(13, 8, 0x3f) }, \
/* B_CR_BISOCWT.ENABLE_ISOC_WEIGHTS */ \
{ PID_BUNIT, 0x6d6c, MASK_VAL(31, 31, 0x1) }, \
/* B_CR_BCTRL2.DIRTY_STALL */ \
{ PID_BUNIT, 0x6d70, MASK_VAL(0, 0, 0x0) }
#define BUNIT_VALUEFORPOWER_MSG_VALUES_PLATFORM_DEFAULT \
/* B_CR_BARBCTRL0.AGENT0_WEIGHT */ \
{ PID_BUNIT, 0x6d4c, MASK_VAL(5, 0, 0x4) }, \
/* B_CR_BARBCTRL0.AGENT1_WEIGHT */ \
{ PID_BUNIT, 0x6d4c, MASK_VAL(13, 8, 0x4) }, \
/* B_CR_BARBCTRL0.AGENT2_WEIGHT */ \
{ PID_BUNIT, 0x6d4c, MASK_VAL(21, 16, 0x4) }, \
/* B_CR_BARBCTRL0.AGENT3_WEIGHT */ \
{ PID_BUNIT, 0x6d4c, MASK_VAL(29, 24, 0x4) }, \
/* B_CR_BARBCTRL1.AGENT4_WEIGHT */ \
{ PID_BUNIT, 0x6d50, MASK_VAL(5, 0, 0x4) }, \
/* B_CR_BARBCTRL1.AGENT5_WEIGHT */ \
{ PID_BUNIT, 0x6d50, MASK_VAL(13, 8, 0x4) }, \
/* B_CR_BARBCTRL1.AGENT6_WEIGHT */ \
{ PID_BUNIT, 0x6d50, MASK_VAL(21, 16, 0x4) }, \
/* B_CR_BARBCTRL1.AGENT7_WEIGHT */ \
{ PID_BUNIT, 0x6d50, MASK_VAL(29, 24, 0x4) }, \
/* B_CR_BSCHWT0.AGENT0_WEIGHT */ \
{ PID_BUNIT, 0x6d54, MASK_VAL(5, 0, 0x4) }, \
/* B_CR_BSCHWT0.AGENT1_WEIGHT */ \
{ PID_BUNIT, 0x6d54, MASK_VAL(13, 8, 0x4) }, \
/* B_CR_BSCHWT0.AGENT2_WEIGHT */ \
{ PID_BUNIT, 0x6d54, MASK_VAL(21, 16, 0x4) }, \
/* B_CR_BSCHWT0.AGENT3_WEIGHT */ \
{ PID_BUNIT, 0x6d54, MASK_VAL(29, 24, 0x4) }, \
/* B_CR_BSCHWT1.AGENT4_WEIGHT */ \
{ PID_BUNIT, 0x6d58, MASK_VAL(5, 0, 0x4) }, \
/* B_CR_BSCHWT1.AGENT5_WEIGHT */ \
{ PID_BUNIT, 0x6d58, MASK_VAL(13, 8, 0x4) }, \
/* B_CR_BSCHWT1.AGENT6_WEIGHT */ \
{ PID_BUNIT, 0x6d58, MASK_VAL(21, 16, 0x4) }, \
/* B_CR_BSCHWT1.AGENT7_WEIGHT */ \
{ PID_BUNIT, 0x6d58, MASK_VAL(29, 24, 0x4) }, \
/* B_CR_BSCHWT2.AGENT8_WEIGHT */ \
{ PID_BUNIT, 0x6d5c, MASK_VAL(5, 0, 0x4) }, \
/* B_CR_BSCHWT2.AGENT9_WEIGHT */ \
{ PID_BUNIT, 0x6d5c, MASK_VAL(13, 8, 0x4) }, \
/* B_CR_BSCHWT2.AGENT10_WEIGHT */ \
{ PID_BUNIT, 0x6d5c, MASK_VAL(21, 16, 0x4) }, \
/* B_CR_BSCHWT2.AGENT11_WEIGHT */ \
{ PID_BUNIT, 0x6d5c, MASK_VAL(29, 24, 0x4) }, \
/* B_CR_BSCHWT3.AGENT12_WEIGHT */ \
{ PID_BUNIT, 0x6d60, MASK_VAL(5, 0, 0x4) }, \
/* B_CR_BSCHWT3.AGENT13_WEIGHT */ \
{ PID_BUNIT, 0x6d60, MASK_VAL(13, 8, 0x4) }, \
/* B_CR_BSCHWT3.AGENT14_WEIGHT */ \
{ PID_BUNIT, 0x6d60, MASK_VAL(21, 16, 0x4) }, \
/* B_CR_BSCHWT3.AGENT15_WEIGHT */ \
{ PID_BUNIT, 0x6d60, MASK_VAL(29, 24, 0x4) }, \
/* B_CR_BWFLUSH.DIRTY_HWM */ \
{ PID_BUNIT, 0x6d64, MASK_VAL(7, 0, 0x0) }, \
/* B_CR_BWFLUSH.DIRTY_LWM */ \
{ PID_BUNIT, 0x6d64, MASK_VAL(15, 8, 0x0) }, \
/* B_CR_BWFLUSH.FLUSH_THRESHOLD */ \
{ PID_BUNIT, 0x6d64, MASK_VAL(31, 24, 0x0) }, \
/* B_CR_BFLWT.READ_WEIGHTS */ \
{ PID_BUNIT, 0x6d68, MASK_VAL(5, 0, 0x0) }, \
/* B_CR_BFLWT.WRITE_WEIGHTS */ \
{ PID_BUNIT, 0x6d68, MASK_VAL(13, 8, 0x0) }, \
/* B_CR_BFLWT.DISABLE_FLUSH_WEIGHTS */ \
{ PID_BUNIT, 0x6d68, MASK_VAL(31, 31, 0x0) }, \
/* B_CR_BISOCWT.NON_ISOC_REQUEST_WEIGHTS */ \
{ PID_BUNIT, 0x6d6c, MASK_VAL(5, 0, 0x0) }, \
/* B_CR_BISOCWT.ISOC_REQUEST_WEIGHTS */ \
{ PID_BUNIT, 0x6d6c, MASK_VAL(13, 8, 0x0) }, \
/* B_CR_BISOCWT.ENABLE_ISOC_WEIGHTS */ \
{ PID_BUNIT, 0x6d6c, MASK_VAL(31, 31, 0x0) }, \
/* B_CR_BCTRL2.DIRTY_STALL */ \
{ PID_BUNIT, 0x6d70, MASK_VAL(0, 0, 0x0) }
#define BUNIT_VALUEFORPWRPERF_MSG_VALUES_PLATFORM_DEFAULT \
/* B_CR_BARBCTRL0.AGENT0_WEIGHT */ \
{ PID_BUNIT, 0x6d4c, MASK_VAL(5, 0, 0x4) }, \
/* B_CR_BARBCTRL0.AGENT1_WEIGHT */ \
{ PID_BUNIT, 0x6d4c, MASK_VAL(13, 8, 0x4) }, \
/* B_CR_BARBCTRL0.AGENT2_WEIGHT */ \
{ PID_BUNIT, 0x6d4c, MASK_VAL(21, 16, 0x4) }, \
/* B_CR_BARBCTRL0.AGENT3_WEIGHT */ \
{ PID_BUNIT, 0x6d4c, MASK_VAL(29, 24, 0x4) }, \
/* B_CR_BARBCTRL1.AGENT4_WEIGHT */ \
{ PID_BUNIT, 0x6d50, MASK_VAL(5, 0, 0x4) }, \
/* B_CR_BARBCTRL1.AGENT5_WEIGHT */ \
{ PID_BUNIT, 0x6d50, MASK_VAL(13, 8, 0x4) }, \
/* B_CR_BARBCTRL1.AGENT6_WEIGHT */ \
{ PID_BUNIT, 0x6d50, MASK_VAL(21, 16, 0x4) }, \
/* B_CR_BARBCTRL1.AGENT7_WEIGHT */ \
{ PID_BUNIT, 0x6d50, MASK_VAL(29, 24, 0x4) }, \
/* B_CR_BSCHWT0.AGENT0_WEIGHT */ \
{ PID_BUNIT, 0x6d54, MASK_VAL(5, 0, 0x4) }, \
/* B_CR_BSCHWT0.AGENT1_WEIGHT */ \
{ PID_BUNIT, 0x6d54, MASK_VAL(13, 8, 0x4) }, \
/* B_CR_BSCHWT0.AGENT2_WEIGHT */ \
{ PID_BUNIT, 0x6d54, MASK_VAL(21, 16, 0x4) }, \
/* B_CR_BSCHWT0.AGENT3_WEIGHT */ \
{ PID_BUNIT, 0x6d54, MASK_VAL(29, 24, 0x4) }, \
/* B_CR_BSCHWT1.AGENT4_WEIGHT */ \
{ PID_BUNIT, 0x6d58, MASK_VAL(5, 0, 0x4) }, \
/* B_CR_BSCHWT1.AGENT5_WEIGHT */ \
{ PID_BUNIT, 0x6d58, MASK_VAL(13, 8, 0x4) }, \
/* B_CR_BSCHWT1.AGENT6_WEIGHT */ \
{ PID_BUNIT, 0x6d58, MASK_VAL(21, 16, 0x4) }, \
/* B_CR_BSCHWT1.AGENT7_WEIGHT */ \
{ PID_BUNIT, 0x6d58, MASK_VAL(29, 24, 0x4) }, \
/* B_CR_BSCHWT2.AGENT8_WEIGHT */ \
{ PID_BUNIT, 0x6d5c, MASK_VAL(5, 0, 0x4) }, \
/* B_CR_BSCHWT2.AGENT9_WEIGHT */ \
{ PID_BUNIT, 0x6d5c, MASK_VAL(13, 8, 0x4) }, \
/* B_CR_BSCHWT2.AGENT10_WEIGHT */ \
{ PID_BUNIT, 0x6d5c, MASK_VAL(21, 16, 0x4) }, \
/* B_CR_BSCHWT2.AGENT11_WEIGHT */ \
{ PID_BUNIT, 0x6d5c, MASK_VAL(29, 24, 0x4) }, \
/* B_CR_BSCHWT3.AGENT12_WEIGHT */ \
{ PID_BUNIT, 0x6d60, MASK_VAL(5, 0, 0x4) }, \
/* B_CR_BSCHWT3.AGENT13_WEIGHT */ \
{ PID_BUNIT, 0x6d60, MASK_VAL(13, 8, 0x4) }, \
/* B_CR_BSCHWT3.AGENT14_WEIGHT */ \
{ PID_BUNIT, 0x6d60, MASK_VAL(21, 16, 0x4) }, \
/* B_CR_BSCHWT3.AGENT15_WEIGHT */ \
{ PID_BUNIT, 0x6d60, MASK_VAL(29, 24, 0x4) }, \
/* B_CR_BWFLUSH.DIRTY_HWM */ \
{ PID_BUNIT, 0x6d64, MASK_VAL(7, 0, 0x0) }, \
/* B_CR_BWFLUSH.DIRTY_LWM */ \
{ PID_BUNIT, 0x6d64, MASK_VAL(15, 8, 0x0) }, \
/* B_CR_BWFLUSH.FLUSH_THRESHOLD */ \
{ PID_BUNIT, 0x6d64, MASK_VAL(31, 24, 0x0) }, \
/* B_CR_BFLWT.READ_WEIGHTS */ \
{ PID_BUNIT, 0x6d68, MASK_VAL(5, 0, 0x0) }, \
/* B_CR_BFLWT.WRITE_WEIGHTS */ \
{ PID_BUNIT, 0x6d68, MASK_VAL(13, 8, 0x0) }, \
/* B_CR_BFLWT.DISABLE_FLUSH_WEIGHTS */ \
{ PID_BUNIT, 0x6d68, MASK_VAL(31, 31, 0x0) }, \
/* B_CR_BISOCWT.NON_ISOC_REQUEST_WEIGHTS */ \
{ PID_BUNIT, 0x6d6c, MASK_VAL(5, 0, 0x0) }, \
/* B_CR_BISOCWT.ISOC_REQUEST_WEIGHTS */ \
{ PID_BUNIT, 0x6d6c, MASK_VAL(13, 8, 0x0) }, \
/* B_CR_BISOCWT.ENABLE_ISOC_WEIGHTS */ \
{ PID_BUNIT, 0x6d6c, MASK_VAL(31, 31, 0x0) }, \
/* B_CR_BCTRL2.DIRTY_STALL */ \
{ PID_BUNIT, 0x6d70, MASK_VAL(0, 0, 0x0) }
#define TUNIT_VALUEFORPERF_MSG_VALUES_PLATFORM_DEFAULT \
/* CTL_MCHBAR.ALWAYS_SNP_PII2 */ \
{ PID_TUNIT, 0x7810, MASK_VAL(0, 0, 0x0) }, \
/* CTL_MCHBAR.OUTSTND_SNP */ \
{ PID_TUNIT, 0x7810, MASK_VAL(1, 1, 0x0) }, \
/* CTL_MCHBAR.DIS_LIVE_BRAM_BYP_IDI */ \
{ PID_TUNIT, 0x7810, MASK_VAL(2, 2, 0x0) }, \
/* CTL_MCHBAR.ALWAYS_SNP_IDI */ \
{ PID_TUNIT, 0x7810, MASK_VAL(3, 3, 0x0) }, \
/* CTL_MCHBAR.SNPINV */ \
{ PID_TUNIT, 0x7810, MASK_VAL(7, 7, 0x0) }, \
/* CTL_MCHBAR.DISABLE_ISOC_HIGHPRI_RDDATA_RETURN */ \
{ PID_TUNIT, 0x7810, MASK_VAL(18, 18, 0x0) }, \
/* CTL_MCHBAR.DISABLE_OPPORTUNISTIC_SLICE1_SCHEDULE */ \
{ PID_TUNIT, 0x7810, MASK_VAL(19, 19, 0x0) }, \
/* CTL_MCHBAR.DISABLE_SNOOPING_GT */ \
{ PID_TUNIT, 0x7810, MASK_VAL(20, 20, 0x0) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC0A_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(0, 0, 0x1) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC0B_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(1, 1, 0x1) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC1A_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(2, 2, 0x0) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC1B_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(3, 3, 0x0) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC2A_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(4, 4, 0x0) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC2B_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(5, 5, 0x1) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC2C_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(6, 6, 0x1) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VCBR_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(7, 7, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC0A_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(0, 0, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC0B_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(1, 1, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC1A_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(2, 2, 0x0) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC1B_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(3, 3, 0x0) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC2A_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(4, 4, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC2B_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(5, 5, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC2C_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(6, 6, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VCBR_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(7, 7, 0x1) }, \
/* T_CR_CTL.ALWAYS_SNP_PII2 */ \
{ PID_TUNIT, 0x523c, MASK_VAL(0, 0, 0x0) }, \
/* T_CR_CTL.DIS_LIVE_BRAM_BYP_IDI */ \
{ PID_TUNIT, 0x523c, MASK_VAL(2, 2, 0x0) }, \
/* T_CR_CTL.ALWAYS_SNP_IDI */ \
{ PID_TUNIT, 0x523c, MASK_VAL(3, 3, 0x0) }, \
/* T_CR_CTL.DISABLE_ISOC_HIGHPRI_RDDATA_RETURN */ \
{ PID_TUNIT, 0x523c, MASK_VAL(18, 18, 0x0) }, \
/* T_CR_CTL.DISABLE_OPPORTUNISTIC_SLICE1_SCHEDULE */ \
{ PID_TUNIT, 0x523c, MASK_VAL(19, 19, 0x0) }, \
/* T_CR_CTL.DISABLE_SNOOPING_GT */ \
{ PID_TUNIT, 0x523c, MASK_VAL(20, 20, 0x0) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC0A_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(0, 0, 0x1) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC0B_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(1, 1, 0x1) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC1A_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(2, 2, 0x0) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC1B_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(3, 3, 0x0) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC2A_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(4, 4, 0x1) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC2B_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(5, 5, 0x1) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC2C_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(6, 6, 0x1) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VCBR_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(7, 7, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC0A_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(0, 0, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC0B_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(1, 1, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC1A_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(2, 2, 0x0) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC1B_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(3, 3, 0x0) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC2A_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(4, 4, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC2B_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(5, 5, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC2C_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(6, 6, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VCBR_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(7, 7, 0x1) }
#define TUNIT_VALUEFORPOWER_MSG_VALUES_PLATFORM_DEFAULT \
/* CTL_MCHBAR.ALWAYS_SNP_PII2 */ \
{ PID_TUNIT, 0x7810, MASK_VAL(0, 0, 0x0) }, \
/* CTL_MCHBAR.OUTSTND_SNP */ \
{ PID_TUNIT, 0x7810, MASK_VAL(1, 1, 0x0) }, \
/* CTL_MCHBAR.DIS_LIVE_BRAM_BYP_IDI */ \
{ PID_TUNIT, 0x7810, MASK_VAL(2, 2, 0x0) }, \
/* CTL_MCHBAR.ALWAYS_SNP_IDI */ \
{ PID_TUNIT, 0x7810, MASK_VAL(3, 3, 0x0) }, \
/* CTL_MCHBAR.SNPINV */ \
{ PID_TUNIT, 0x7810, MASK_VAL(7, 7, 0x0) }, \
/* CTL_MCHBAR.DISABLE_ISOC_HIGHPRI_RDDATA_RETURN */ \
{ PID_TUNIT, 0x7810, MASK_VAL(18, 18, 0x0) }, \
/* CTL_MCHBAR.DISABLE_OPPORTUNISTIC_SLICE1_SCHEDULE */ \
{ PID_TUNIT, 0x7810, MASK_VAL(19, 19, 0x0) }, \
/* CTL_MCHBAR.DISABLE_SNOOPING_GT */ \
{ PID_TUNIT, 0x7810, MASK_VAL(20, 20, 0x0) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC0A_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(0, 0, 0x1) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC0B_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(1, 1, 0x1) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC1A_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(2, 2, 0x0) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC1B_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(3, 3, 0x0) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC2A_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(4, 4, 0x1) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC2B_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(5, 5, 0x1) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC2C_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(6, 6, 0x1) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VCBR_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(7, 7, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC0A_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(0, 0, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC0B_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(1, 1, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC1A_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(2, 2, 0x0) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC1B_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(3, 3, 0x0) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC2A_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(4, 4, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC2B_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(5, 5, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC2C_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(6, 6, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VCBR_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(7, 7, 0x1) }, \
/* T_CR_CTL.ALWAYS_SNP_PII2 */ \
{ PID_TUNIT, 0x523c, MASK_VAL(0, 0, 0x0) }, \
/* T_CR_CTL.DIS_LIVE_BRAM_BYP_IDI */ \
{ PID_TUNIT, 0x523c, MASK_VAL(2, 2, 0x0) }, \
/* T_CR_CTL.ALWAYS_SNP_IDI */ \
{ PID_TUNIT, 0x523c, MASK_VAL(3, 3, 0x0) }, \
/* T_CR_CTL.DISABLE_ISOC_HIGHPRI_RDDATA_RETURN */ \
{ PID_TUNIT, 0x523c, MASK_VAL(18, 18, 0x0) }, \
/* T_CR_CTL.DISABLE_OPPORTUNISTIC_SLICE1_SCHEDULE */ \
{ PID_TUNIT, 0x523c, MASK_VAL(19, 19, 0x0) }, \
/* T_CR_CTL.DISABLE_SNOOPING_GT */ \
{ PID_TUNIT, 0x523c, MASK_VAL(20, 20, 0x0) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC0A_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(0, 0, 0x1) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC0B_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(1, 1, 0x1) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC1A_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(2, 2, 0x0) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC1B_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(3, 3, 0x0) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC2A_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(4, 4, 0x1) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC2B_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(5, 5, 0x1) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC2C_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(6, 6, 0x1) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VCBR_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(7, 7, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC0A_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(0, 0, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC0B_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(1, 1, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC1A_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(2, 2, 0x0) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC1B_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(3, 3, 0x0) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC2A_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(4, 4, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC2B_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(5, 5, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC2C_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(6, 6, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VCBR_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(7, 7, 0x1) }
#define TUNIT_VALUEFORPWRPERF_MSG_VALUES_PLATFORM_DEFAULT \
/* CTL_MCHBAR.ALWAYS_SNP_PII2 */ \
{ PID_TUNIT, 0x7810, MASK_VAL(0, 0, 0x0) }, \
/* CTL_MCHBAR.OUTSTND_SNP */ \
{ PID_TUNIT, 0x7810, MASK_VAL(1, 1, 0x0) }, \
/* CTL_MCHBAR.DIS_LIVE_BRAM_BYP_IDI */ \
{ PID_TUNIT, 0x7810, MASK_VAL(2, 2, 0x0) }, \
/* CTL_MCHBAR.ALWAYS_SNP_IDI */ \
{ PID_TUNIT, 0x7810, MASK_VAL(3, 3, 0x0) }, \
/* CTL_MCHBAR.SNPINV */ \
{ PID_TUNIT, 0x7810, MASK_VAL(7, 7, 0x0) }, \
/* CTL_MCHBAR.DISABLE_ISOC_HIGHPRI_RDDATA_RETURN */ \
{ PID_TUNIT, 0x7810, MASK_VAL(18, 18, 0x0) }, \
/* CTL_MCHBAR.DISABLE_OPPORTUNISTIC_SLICE1_SCHEDULE */ \
{ PID_TUNIT, 0x7810, MASK_VAL(19, 19, 0x0) }, \
/* CTL_MCHBAR.DISABLE_SNOOPING_GT */ \
{ PID_TUNIT, 0x7810, MASK_VAL(20, 20, 0x0) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC0A_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(0, 0, 0x1) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC0B_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(1, 1, 0x1) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC1A_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(2, 2, 0x0) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC1B_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(3, 3, 0x0) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC2A_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(4, 4, 0x1) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC2B_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(5, 5, 0x1) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VC2C_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(6, 6, 0x1) }, \
/* VC_READ_ORDERING_CFG_MCHBAR.UPSTREAM_VCBR_IN_ORDER */ \
{ PID_TUNIT, 0x781c, MASK_VAL(7, 7, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC0A_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(0, 0, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC0B_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(1, 1, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC1A_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(2, 2, 0x0) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC1B_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(3, 3, 0x0) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC2A_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(4, 4, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC2B_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(5, 5, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VC2C_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(6, 6, 0x1) }, \
/* VC_WRITE_ORDERING_CFG_MCHBAR.UPSTREAM_VCBR_IN_ORDER */ \
{ PID_TUNIT, 0x7820, MASK_VAL(7, 7, 0x1) }, \
/* T_CR_CTL.ALWAYS_SNP_PII2 */ \
{ PID_TUNIT, 0x523c, MASK_VAL(0, 0, 0x0) }, \
/* T_CR_CTL.DIS_LIVE_BRAM_BYP_IDI */ \
{ PID_TUNIT, 0x523c, MASK_VAL(2, 2, 0x0) }, \
/* T_CR_CTL.ALWAYS_SNP_IDI */ \
{ PID_TUNIT, 0x523c, MASK_VAL(3, 3, 0x0) }, \
/* T_CR_CTL.DISABLE_ISOC_HIGHPRI_RDDATA_RETURN */ \
{ PID_TUNIT, 0x523c, MASK_VAL(18, 18, 0x0) }, \
/* T_CR_CTL.DISABLE_OPPORTUNISTIC_SLICE1_SCHEDULE */ \
{ PID_TUNIT, 0x523c, MASK_VAL(19, 19, 0x0) }, \
/* T_CR_CTL.DISABLE_SNOOPING_GT */ \
{ PID_TUNIT, 0x523c, MASK_VAL(20, 20, 0x0) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC0A_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(0, 0, 0x1) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC0B_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(1, 1, 0x1) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC1A_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(2, 2, 0x0) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC1B_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(3, 3, 0x0) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC2A_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(4, 4, 0x1) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC2B_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(5, 5, 0x1) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VC2C_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(6, 6, 0x1) }, \
/* T_CR_VC_READ_ORDERING_CFG.UPSTREAM_VCBR_IN_ORDER */ \
{ PID_TUNIT, 0x5288, MASK_VAL(7, 7, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC0A_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(0, 0, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC0B_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(1, 1, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC1A_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(2, 2, 0x0) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC1B_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(3, 3, 0x0) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC2A_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(4, 4, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC2B_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(5, 5, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VC2C_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(6, 6, 0x1) }, \
/* T_CR_VC_WRITE_ORDERING_CFG.UPSTREAM_VCBR_IN_ORDER */ \
{ PID_TUNIT, 0x528c, MASK_VAL(7, 7, 0x1) }
#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_ */

View File

@ -0,0 +1,67 @@
/*
* 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/pci_devs.h>
#include <soc/pnpconfig.h>
#include "chip.h"
static const struct pnpconfig perf[] = {
VALUEFORPERF_MSG_VALUES_PLATFORM_DEFAULT,
};
static const struct pnpconfig power[] = {
VALUEFORPOWER_MSG_VALUES_PLATFORM_DEFAULT,
};
static const struct pnpconfig power_perf[] = {
VALUEFORPWRPERF_MSG_VALUES_PLATFORM_DEFAULT,
};
static void pnp_settings(void *unused)
{
int index;
size_t arrsize;
const struct pnpconfig *pnpconfigarr;
struct device *dev = SA_DEV_ROOT;
struct soc_intel_apollolake_config *config = dev->chip_info;
switch (config->pnp_settings) {
case PNP_PERF:
pnpconfigarr = perf;
arrsize = ARRAY_SIZE(perf);
break;
case PNP_POWER:
pnpconfigarr = power;
arrsize = ARRAY_SIZE(power);
break;
case PNP_PERF_POWER:
pnpconfigarr = power_perf;
arrsize = ARRAY_SIZE(power_perf);
break;
default:
printk(BIOS_NOTICE, "Invalid PNP settings selected");
return;
}
for (index = 0; index < arrsize; index++)
pcr_rmw32(pnpconfigarr[index].msgport,
pnpconfigarr[index].msgregaddr,
pnpconfigarr[index].mask,
pnpconfigarr[index].value);
}
BOOT_STATE_INIT_ENTRY(BS_DEV_INIT, BS_ON_EXIT, pnp_settings, NULL);