diff options
author | nagurram-in <nagendra.g@in.ibm.com> | 2017-12-12 04:24:45 -0600 |
---|---|---|
committer | William G. Hoffa <wghoffa@us.ibm.com> | 2017-12-15 16:28:49 -0500 |
commit | aed872bfb917645669000049f52a2f24488f2782 (patch) | |
tree | 48214af6069d8783a1ed1b37cc294ab9c89e2456 /src/usr/hdat/hdatiplparms.H | |
parent | bd1519429ab3594d7808d2bd3d0d2aa824c3e062 (diff) | |
download | blackbird-hostboot-aed872bfb917645669000049f52a2f24488f2782.tar.gz blackbird-hostboot-aed872bfb917645669000049f52a2f24488f2782.zip |
HDAT: Feature flag settings movement from PCRD to IPLP
Added versioned HDIF header for Feature flag setting array.
Defined feature strings and settings agreed with OPAL
Change-Id: I08bccf55c661c1423eed9e4a4fe579f86d2ca924
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/50793
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Dean Sanner <dsanner@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/usr/hdat/hdatiplparms.H')
-rwxr-xr-x | src/usr/hdat/hdatiplparms.H | 86 |
1 files changed, 73 insertions, 13 deletions
diff --git a/src/usr/hdat/hdatiplparms.H b/src/usr/hdat/hdatiplparms.H index 2e8a574be..1db9d8e6e 100755 --- a/src/usr/hdat/hdatiplparms.H +++ b/src/usr/hdat/hdatiplparms.H @@ -54,7 +54,7 @@ namespace HDAT /* Typedefs */ /*----------------------------------------------------------------------------*/ -const uint16_t HDAT_IPL_PARAMS_VERSION = 0x70; // First P9 version +const uint16_t HDAT_IPL_PARAMS_VERSION = 0x71; // Second P9 version const char HDAT_IPLP_STRUCT_NAME[7] = "IPLPMS"; @@ -64,16 +64,17 @@ const char HDAT_IPLP_STRUCT_NAME[7] = "IPLPMS"; */ enum hdatIplDataPtrs { - HDAT_IPL_SYS = 0, - HDAT_IPL_PARMS = 1, - HDAT_IPL_TIME = 2, - HDAT_IPL_PVT = 3, - HDAT_IPL_DUMP = 4, - HDAT_IPL_HMC = 5, - HDAT_IPL_CUOD = 6, - HDAT_IPL_MANF = 7, - HDAT_IPL_PORT_CODES = 8, - HDAT_IPL_LAST = 9 + HDAT_IPL_SYS = 0, + HDAT_IPL_PARMS, + HDAT_IPL_TIME, + HDAT_IPL_PVT, + HDAT_IPL_DUMP, + HDAT_IPL_HMC, + HDAT_IPL_CUOD, + HDAT_IPL_MANF, + HDAT_IPL_PORT_CODES, + HDAT_IPL_FEATURE_FLAGS, + HDAT_IPL_LAST }; /** @brief Structure definition for system model and feature code @@ -263,6 +264,62 @@ struct hdatPortCodes_t hdatReserved1 : 15;// Reserved for future use } __attribute__ ((packed)); +#define MAX_FEATURE_FLAGS 64 // Maximum number of feature flags + +enum HDAT_FEATURE_FLAG_VERSION : uint32_t +{ + V1 = 0x00000001 +}; +struct hdatIplpFeatureFlagSetting_t +{ + char hdatIplpFeatureFlagString[64]; // Feature flag null terminated string + uint64_t hdatIplpFeatureFlagSetting; // bit0 indicates IPL time setting. +}__attribute__ ((packed)); + +// Agreed strings and settings of different feature flags +const hdatIplpFeatureFlagSetting_t hdatIplpFeatureFlagSettingsArray_20[]= +{ +{"tm-suspend-mode-enabled", 0x8000000000000000}, +{"inst-thread-reconfig-control-trig0-1", 0x8000000000000000}, +{"inst-l1d-flush-trig2", 0x8000000000000000}, +{"inst-l1d-flush-ori30,30,0", 0x0000000000000000}, +{"inst-spec-barrier-ori31,31,0", 0x8000000000000000}, +{"needs-l1d-flush-msr-hv-1-to-0", 0x8000000000000000}, +{"needs-l1d-flush-msr-pr-0-to-1", 0x8000000000000000}, +{"needs-spec-barrier-for-bound-checks", 0x8000000000000000}, +{"fw-l1d-thread-split", 0x8000000000000000}, +{"fw-bcctrl-serialized", 0x0000000000000000}, +{"speculation-policy-favor-security", 0x8000000000000000}}; + +const hdatIplpFeatureFlagSetting_t hdatIplpFeatureFlagSettingsArray_21[]= +{ +{"tm-suspend-mode-enabled", 0x0000000000000000}, +{"inst-thread-reconfig-control-trig0-1", 0x8000000000000000}, +{"inst-l1d-flush-trig2", 0x8000000000000000}, +{"inst-l1d-flush-ori30,30,0", 0x0000000000000000}, +{"inst-spec-barrier-ori31,31,0", 0x8000000000000000}, +{"needs-l1d-flush-msr-hv-1-to-0", 0x8000000000000000}, +{"needs-l1d-flush-msr-pr-0-to-1", 0x8000000000000000}, +{"needs-spec-barrier-for-bound-checks", 0x8000000000000000}, +{"fw-l1d-thread-split", 0x8000000000000000}, +{"fw-bcctrl-serialized", 0x0000000000000000}, +{"speculation-policy-favor-security", 0x8000000000000000}}; + +const hdatIplpFeatureFlagSetting_t hdatIplpFeatureFlagSettingsArray_22[]= +{ +{"tm-suspend-mode-enabled", 0x8000000000000000}, +{"inst-thread-reconfig-control-trig0-1", 0x0000000000000000}, +{"inst-l1d-flush-trig2", 0x8000000000000000}, +{"inst-l1d-flush-ori30,30,0", 0x0000000000000000}, +{"inst-spec-barrier-ori31,31,0", 0x8000000000000000}, +{"needs-l1d-flush-msr-hv-1-to-0", 0x8000000000000000}, +{"needs-l1d-flush-msr-pr-0-to-1", 0x8000000000000000}, +{"needs-spec-barrier-for-bound-checks", 0x8000000000000000}, +{"fw-l1d-thread-split", 0x8000000000000000}, +{"fw-bcctrl-serialized", 0x8000000000000000}, +{"speculation-policy-favor-security", 0x8000000000000000}}; + + #define HDAT_CHIP_TYPE_MURANO "MURANO" #define HDAT_CHIP_TYPE_VENICE "VENICE" @@ -328,8 +385,9 @@ enum hdatIPLParamsDataPtrs HDAT_IPL_PARAMS_CUOD_DATA = 6, HDAT_IPL_PARAMS_MFG_DATA = 7, HDAT_IPL_PARAMS_SERIAL_PORTS = 8, - HDAT_IPL_PARAMS_DA_CNT = 9, - HDAT_IPL_PARAMS_DA_LAST = 10 + HDAT_IPL_PARAMS_FEATURE_FLAGS = 9, + HDAT_IPL_PARAMS_DA_CNT = 10, + HDAT_IPL_PARAMS_DA_LAST = 11 }; struct hdatIPLParameters_t{ @@ -358,6 +416,8 @@ struct hdatIPLParameters_t{ hdatManf_t iv_manf; hdatHDIFDataArray_t iv_portArrayHdr; hdatPortCodes_t iv_ports[hdatMaxPorts]; + hdatHDIFVersionedDataArray_t iv_featureFlagArrayHdr; + hdatIplpFeatureFlagSetting_t iv_featureFlagSettings[MAX_FEATURE_FLAGS]; }; /*----------------------------------------------------------------------------*/ |