summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRahul Batra <rbatra@us.ibm.com>2019-01-04 10:42:02 -0500
committerhostboot <hostboot@us.ibm.com>2019-01-30 10:54:07 -0600
commit7f3dc3dd47acd660a74ef74319e48db931462db5 (patch)
tree1a310ccc6b0eb005a0f73afc5108d5b09d95845b
parent211c48c95e7dc5ed6f45a883fd6af7a39be09123 (diff)
downloadtalos-hcode-7f3dc3dd47acd660a74ef74319e48db931462db5.tar.gz
talos-hcode-7f3dc3dd47acd660a74ef74319e48db931462db5.zip
PM: OCC<>PGPE Interface for P9+
Key_Cronus_Test=PM_REGRESS Change-Id: Ieabbc383d2bbbd1df8cf5a2ed5b503c860518cd8 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70412 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Martha Broyles <mbroyles@us.ibm.com> Reviewed-by: Gregory S. Still <stillgs@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
-rw-r--r--import/chips/p9/common/pmlib/include/pstate_pgpe_occ_api.h164
1 files changed, 162 insertions, 2 deletions
diff --git a/import/chips/p9/common/pmlib/include/pstate_pgpe_occ_api.h b/import/chips/p9/common/pmlib/include/pstate_pgpe_occ_api.h
index 953f05af..8a4c63db 100644
--- a/import/chips/p9/common/pmlib/include/pstate_pgpe_occ_api.h
+++ b/import/chips/p9/common/pmlib/include/pstate_pgpe_occ_api.h
@@ -337,6 +337,157 @@ typedef union requested_active_quads
// End Quad State
// -----------------------------------------------------------------------------
+typedef struct
+{
+ union
+ {
+ uint64_t value;
+ struct
+ {
+ uint32_t high_order;
+ uint32_t low_order;
+ } words;
+ struct
+ {
+ uint64_t average_pstate : 8;
+ uint64_t average_frequency_pstate : 8;
+ uint64_t clip_pstate : 8;
+ uint64_t reserved : 8;
+ uint64_t vratio_inst : 16;
+ uint64_t vratio_avg : 16;
+ } fields;
+ } dw0;
+ union
+ {
+ uint64_t value;
+ struct
+ {
+ uint32_t high_order;
+ uint32_t low_order;
+ } words;
+ struct
+ {
+ uint64_t idd_avg_ma : 16;
+ uint64_t ics_avg_ma : 16;
+ uint64_t idn_avg_ma : 16;
+ uint64_t iio_avg_ma : 16;
+
+ } fields;
+ } dw1;
+ union
+ {
+ uint64_t value;
+ struct
+ {
+ uint32_t high_order;
+ uint32_t low_order;
+ } words;
+ struct
+ {
+ uint64_t vdd_avg_mv : 16;
+ uint64_t vcs_avg_mv : 16;
+ uint64_t vdn_avg_mv : 16;
+ uint64_t vio_avg_mv : 16;
+ } fields;
+ } dw2;
+ union
+ {
+ uint64_t value;
+ struct
+ {
+ uint32_t high_order;
+ uint32_t low_order;
+ } words;
+ struct
+ {
+ uint64_t ocs_avg_0p01pct : 16;
+ uint64_t reserved : 48;
+ } fields;
+ } dw3;
+} pgpe_wof_values_t;
+
+typedef struct
+{
+ union
+ {
+ uint64_t value;
+ struct
+ {
+ uint32_t high_order;
+ uint32_t low_order;
+ } words;
+ struct
+ {
+ uint64_t magic_word : 32; //ELTC
+ uint64_t total_log_slots : 8;
+ uint64_t reserved : 24;
+ } fields;
+ } dw0;
+ union
+ {
+ uint64_t value;
+ struct
+ {
+ uint32_t high_order;
+ uint32_t low_order;
+ } words;
+ struct
+ {
+ uint64_t errlog_id : 8;
+ uint64_t errlog_src : 8;
+ uint64_t errlog_len : 16;
+ uint64_t pgpe_critical_log_address : 32;
+ } fields;
+ } dw1;
+ union
+ {
+ uint64_t value;
+ struct
+ {
+ uint32_t high_order;
+ uint32_t low_order;
+ } words;
+ struct
+ {
+ uint64_t errlog_id : 8;
+ uint64_t errlog_src : 8;
+ uint64_t errlog_len : 16;
+ uint64_t pgpe_info_log_address : 32;
+ } fields;
+ } dw2;
+ union
+ {
+ uint64_t value;
+ struct
+ {
+ uint32_t high_order;
+ uint32_t low_order;
+ } words;
+ struct
+ {
+ uint64_t errlog_id : 8;
+ uint64_t errlog_src : 8;
+ uint64_t errlog_len : 16;
+ uint64_t sgpe_critical_log_address : 32;
+ } fields;
+ } dw3;
+ union
+ {
+ uint64_t value;
+ struct
+ {
+ uint32_t high_order;
+ uint32_t low_order;
+ } words;
+ struct
+ {
+ uint64_t errlog_id : 8;
+ uint64_t errlog_src : 8;
+ uint64_t errlog_len : 16;
+ uint64_t sgpe_info_log_address : 32;
+ } fields;
+ } dw4;
+} errlog_idx_t;
typedef struct
{
@@ -358,8 +509,17 @@ typedef struct
///Requested Active Quads
requested_active_quads_t req_active_quads;
- /// FFDC Address list
- Hcode_FFDC_list_t ffdc_list;
+ //PGPE WOF Values
+ pgpe_wof_values_t pgpe_wof_values;
+
+ //Reserved
+ uint64_t reserved1;
+
+ /// Hcode Error Log Index
+ errlog_idx_t errlog_idx;
+
+ //Reserved
+ uint64_t reserved2[24];
/// Pstate Table
OCCPstateTable_t pstate_table;
OpenPOWER on IntegriCloud