summaryrefslogtreecommitdiffstats
path: root/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h
diff options
context:
space:
mode:
authorWael El-Essawy <welessa@us.ibm.com>2016-08-29 19:33:20 -0500
committerWael El-Essawy <welessa@us.ibm.com>2016-09-16 11:19:15 -0400
commit8a7d7b2d13098453380fbdf69c0136515ba33b06 (patch)
tree9ce20ff68625d0a6d4b5d118514a48949232e173 /src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h
parent444caf2b8e674263f27963b3c9739e48aa793d00 (diff)
downloadtalos-occ-8a7d7b2d13098453380fbdf69c0136515ba33b06.tar.gz
talos-occ-8a7d7b2d13098453380fbdf69c0136515ba33b06.zip
Memory Temperature Control Loop (memory throttling)
* Memory throttling due to over temp * Throttle when reach timeout getting new temperature readings * Log error for temperature exceeding ERROR threshold Change-Id: I089c88aadba84e7296ad87b8cb87fa8c045ff912 RTC: 131188 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/28933 Reviewed-by: Wael El-Essawy <welessa@us.ibm.com> Tested-by: Wael El-Essawy <welessa@us.ibm.com>
Diffstat (limited to 'src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h')
-rwxr-xr-xsrc/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h76
1 files changed, 32 insertions, 44 deletions
diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h
index 4857671..4c0f3ad 100755
--- a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h
+++ b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h
@@ -287,68 +287,56 @@ typedef struct __attribute__ ((packed))
// Provides memory throttle min and max values for Nimbus systems
typedef struct __attribute__ ((packed))
{
- uint8_t mc_num; // Physical MC: [0=MC01, 2=MC23]
- uint8_t port_num; // Physical port # [0-3]
-
- uint16_t min_n_per_port; // Lowest per port allowed numerator
- uint16_t min_mem_power; // Max mem Power @min (x0.1W)
-
- uint16_t pcap1_n_per_port; // Static per port numerator @PCAP1
- uint16_t pcap1_n_per_chip; // Static per chip numerator @PCAP1
- uint16_t pcap1_mem_power; // Max memory power @PCAP1 (x0.1W)
-
- uint16_t pcap2_n_per_port; // Static per port numerator @PCAP2
- uint16_t pcap2_n_per_chip; // Static per chip numerator @PCAP2
- uint16_t pcap2_mem_power; // Max memory power @PCAP2 (x0.1W)
-
- uint16_t nom_n_per_port; // Static per port @Redundant (no ovs)
- uint16_t nom_n_per_slot; // Static per slot @Redundant
- uint16_t nom_mem_power; // Max memory power @Redundant(x0.1W)
-
- uint16_t ovs_n_per_port; // Static per port @Oversubscription
- uint16_t ovs_n_per_slot; // Static per slot @Oversubscription
- uint16_t ovs_mem_power; // Max memory power @Oversubscription (x0.1W)
-}nimbus_mem_throt_t;
+ uint8_t mc_num; // Physical MC: [0=MC01, 2=MC23]
+ uint8_t port_num; // Physical port # [0-3]
+} cmdh_mem_throt_nimbus_info_t;
// Provides memory throttle min and max values for Cumulus systems
typedef struct __attribute__ ((packed))
{
- uint8_t centaur_num; // Physical centaur# [0-7]
- uint8_t mba_num; // Memory Buffer within centaur [0-1]
+ uint8_t centaur_num; // Physical centaur# [0-7]
+ uint8_t mba_num; // Memory Buffer within centaur [0-1]
+} cmdh_mem_throt_cumulus_info_t;
- uint16_t min_n_per_mba; // Lowest per MBA allowed numerator
- uint16_t min_mem_power; // Max mem Power @min (x0.1W)
+// Nimbus/Cumulus dimm/centaur Info
+typedef union cmdh_mem_throt_data_set
+{
+ cmdh_mem_throt_nimbus_info_t nimbus;
+ cmdh_mem_throt_cumulus_info_t cumulus;
+} cmdh_mem_throt_info_t;
- uint16_t pcap1_n_per_mba; // Static per MBA numerator @PCAP1
- uint16_t pcap1_n_per_chip; // Static per chip numerator @PCAP1
- uint16_t pcap1_mem_power; // Max memory power @PCAP1 (x0.1W)
+typedef struct __attribute__ ((packed))
+{
+ cmdh_mem_throt_info_t mem_throt_info; // Nimbus/Cumulus information header
- uint16_t pcap2_n_per_mba; // Static per MBA numerator @PCAP2
- uint16_t pcap2_n_per_chip; // Static per chip numerator @PCAP2
- uint16_t pcap2_mem_power; // Max memory power @PCAP2 (x0.1W)
+ uint16_t min_n_per_mba; // Lowest per MBA allowed numerator
+ uint16_t min_mem_power; // Max mem Power @min (x0.1W)
- uint16_t nom_n_per_mba; // Static per MBA @Redundant (no ovs)
- uint16_t nom_n_per_chip; // Static per chip @Redundant
- uint16_t nom_mem_power; // Max memory power @Redundant(x0.1W)
+ uint16_t turbo_n_per_mba; // Static per MBA numerator @Turbo
+ uint16_t turbo_n_per_chip; // Static per chip numerator @Turbo
+ uint16_t turbo_mem_power; // Max memory power @Turbo (x0.1W)
- uint16_t ovs_n_per_mba; // Static per MBA @Oversubscription
- uint16_t ovs_n_per_chip; // Static per chip @Oversubscription
- uint16_t ovs_mem_power; // Max memory power @Oversubscription (x0.1W)
-}cumulus_mem_throt_t;
+ uint16_t pcap_n_per_mba; // Static per MBA numerator @PCAP
+ uint16_t pcap_n_per_chip; // Static per chip numerator @PCAP
+ uint16_t pcap_mem_power; // Max memory power @PCAP (x0.1W)
-typedef union cmdh_mem_throt_data_set
-{
- nimbus_mem_throt_t nimbus;
- cumulus_mem_throt_t cumulus;
+ uint16_t nom_n_per_mba; // Static per MBA @Redundant (no ovs)
+ uint16_t nom_n_per_chip; // Static per chip @Redundant
+ uint16_t nom_mem_power; // Max memory power @Redundant(x0.1W)
+
+ uint16_t reserved_n_per_mba; // reserved
+ uint16_t reserved_n_per_chip; // reserved
+ uint16_t reserved_mem_power; // reserved
} cmdh_mem_throt_data_set_t;
+
// Config packet definition used by TMGT to
// send mem throttle min/max settings.
typedef struct __attribute__ ((packed))
{
cmdh_mem_throt_header_t header;
cmdh_mem_throt_data_set_t data_set[1];
-}cmdh_mem_throt_t;
+} cmdh_mem_throt_t;
// Used to mark present the config data TMGT has sent us.
typedef struct data_cnfg
OpenPOWER on IntegriCloud