summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/lib/p9_pstates_common.h
diff options
context:
space:
mode:
authorGreg Still <stillgs@us.ibm.com>2017-06-07 23:21:40 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-06-19 13:08:05 -0400
commit0c2bc532cdf1f939ecf7315d4957cc4bdf3c1ca4 (patch)
tree271716bb8b17c912b95211007a40f4f9d9ea6c4f /src/import/chips/p9/procedures/hwp/lib/p9_pstates_common.h
parent5a90aa2b1af1db09d861b37edd608d30240a3c9c (diff)
downloadtalos-hostboot-0c2bc532cdf1f939ecf7315d4957cc4bdf3c1ca4.tar.gz
talos-hostboot-0c2bc532cdf1f939ecf7315d4957cc4bdf3c1ca4.zip
WOF: fix VFRT system to HOMER translation
- Clipped WOF frequencies that are faster than the base PState VPD frequency to a WOF clip PState of 0. - Added compiler directive to pad WOFTablesHeader structure to 128B - Added compiler directives to align HOMERVFRT to 256B (for assurance) - Captured old FAPI_ERR message for freq2Pstate to FAPI_INF for now. - Reduced VFRT processing traces to just the firt 8 entries so that HB trace is not overrun down the road - Loaded IDDQ data into occ parameter block with 1mA reasolution - Updated p9_pstates_occ.h comments to fix the iddq resolution. The header did NOT change in structure. - Little endian fix on iddq traces - Fix Iddq and temp resolution data - Removed temp resolution calculation Change-Id: Iaf9e1de8f58c43a8a52353b53155956aa71ff09e Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41518 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA <prasadbgr@in.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: BRIAN D. VICTOR <brian.d.victor1@ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41520 Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/lib/p9_pstates_common.h')
-rw-r--r--src/import/chips/p9/procedures/hwp/lib/p9_pstates_common.h49
1 files changed, 20 insertions, 29 deletions
diff --git a/src/import/chips/p9/procedures/hwp/lib/p9_pstates_common.h b/src/import/chips/p9/procedures/hwp/lib/p9_pstates_common.h
index 277ec9f61..b7efeb8cf 100644
--- a/src/import/chips/p9/procedures/hwp/lib/p9_pstates_common.h
+++ b/src/import/chips/p9/procedures/hwp/lib/p9_pstates_common.h
@@ -290,7 +290,7 @@ typedef struct
//VFRT Header fields
-typedef struct __attribute__((__packed__)) VFRTHeaderLayout
+typedef struct __attribute__((packed)) VFRTHeaderLayout
{
// VFRT Magic code "VT"
uint16_t magic_number;
@@ -310,7 +310,7 @@ typedef struct __attribute__((__packed__)) VFRTHeaderLayout
uint8_t VddId_QAId;
} VFRTHeaderLayout_t;// WOF Tables Header
-typedef struct __attribute__((__packed__)) WofTablesHeader
+typedef struct __attribute__((packed, aligned(128))) WofTablesHeader
{
/// Magic Number
@@ -388,34 +388,31 @@ typedef struct __attribute__((__packed__)) WofTablesHeader
/// Future usage
uint16_t Vdn_percent[8];
- ///Socket Power (in Watts) for the WOF Tables
+ /// Socket Power (in Watts) for the WOF Tables
uint16_t socket_power_w;
- ///Nest Frequency (in MHz) used in building the WOF Tables
+ /// Nest Frequency (in MHz) used in building the WOF Tables
uint16_t nest_frequency_mhz;
- //Core Sort Power Target Frequency (in MHz) – The #V frequency associated
- //with the sort power target for this table set. This will be either the
- //Nominal or
- //Turbo #V frequency
+ /// Core Sort Power Target Frequency (in MHz) – The #V frequency associated
+ /// with the sort power target for this table set. This will be either the
+ /// Nominal or Turbo #V frequency
uint16_t sort_power_freq_mhz;
- ///Regulator Design Point Capacity (in Amps)
+ /// Regulator Design Point Capacity (in Amps)
uint16_t rdp_capacity;
- ///Up to 8 ASCII characters to be defined by the Table generation team to
- //back reference table sources
- uint64_t wof_table_source_tag;
+ /// Up to 8 ASCII characters to be defined by the Table generation team to
+ /// back reference table sources
+ char wof_table_source_tag[8];
- ///Up to 16 ASCII characters as a Package designator
- uint64_t package_name;
+ /// Up to 16 ASCII characters as a Package designator
+ char package_name[16];
- uint8_t reserved[6];
+ // Padding to 128B is left to the compiler via the following attribute.
} WofTablesHeader_t;
-
-
#define CEF_VDN_INDEX 8
#define CEF_VDD_INDEX 21
#define ACTIVE_QUADS 6
@@ -427,25 +424,23 @@ typedef struct __attribute__((__packed__)) WofTablesHeader
// 5 steps down from 100% is Fratio_step sizes
#define VFRT_FRATIO_SIZE 5
-//System VFRT layout
-typedef struct __attribute__((__packed__)) HomerSysVFRTLayout
+// System VFRT layout
+typedef struct __attribute__((packed, aligned(128))) HomerSysVFRTLayout
{
VFRTHeaderLayout_t vfrtHeader;
uint8_t vfrt_data[VFRT_FRATIO_SIZE][VFRT_VRATIO_SIZE];
} HomerSysVFRTLayout_t;
-
-
-//HOMER VFRT Layout
-typedef struct __attribute__((__packed__)) HomerVFRTLayout
+// HOMER VFRT Layout
+typedef struct __attribute__((packed, aligned(256))) HomerVFRTLayout
{
VFRTHeaderLayout_t vfrtHeader;
uint8_t vfrt_data[VFRT_FRATIO_SIZE][VFRT_VRATIO_SIZE];
uint8_t padding[128];
} HomerVFRTLayout_t;
-//HOMER WOF layout
-typedef struct __attribute__((__packed__)) HomerWOFLayout
+// HOMER WOF layout
+typedef struct __attribute__((packed)) HomerWOFLayout
{
WofTablesHeader_t wof_header_data;
HomerVFRTLayout_t homer_vfrt_data[CEF_VDN_INDEX][CEF_VDD_INDEX][ACTIVE_QUADS];
@@ -454,13 +449,9 @@ typedef struct __attribute__((__packed__)) HomerWOFLayout
typedef uint8_t VFRT_Circuit_t;
typedef Pstate VFRT_Hcode_t;
-
-
extern VFRT_Circuit_t VFRTCircuitTable[VFRT_FRATIO_SIZE][VFRT_FRATIO_SIZE];
-
extern VFRT_Hcode_t VFRTInputTable[VFRT_FRATIO_SIZE][VFRT_FRATIO_SIZE];
-
#ifdef __cplusplus
} // end extern C
#endif
OpenPOWER on IntegriCloud