diff options
author | Wael El-Essawy <welessa@us.ibm.com> | 2016-08-29 19:33:20 -0500 |
---|---|---|
committer | Wael El-Essawy <welessa@us.ibm.com> | 2016-09-16 11:19:15 -0400 |
commit | 8a7d7b2d13098453380fbdf69c0136515ba33b06 (patch) | |
tree | 9ce20ff68625d0a6d4b5d118514a48949232e173 /src/occ_405/occ_sys_config.h | |
parent | 444caf2b8e674263f27963b3c9739e48aa793d00 (diff) | |
download | talos-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/occ_sys_config.h')
-rwxr-xr-x | src/occ_405/occ_sys_config.h | 53 |
1 files changed, 38 insertions, 15 deletions
diff --git a/src/occ_405/occ_sys_config.h b/src/occ_405/occ_sys_config.h index ae52556..2fd7535 100755 --- a/src/occ_405/occ_sys_config.h +++ b/src/occ_405/occ_sys_config.h @@ -45,12 +45,21 @@ #define MAX_NUM_MEM_CONTROLLERS 8 #define MAX_NUM_CENTAURS 8 #define NUM_PROC_VRMS 2 + #define MAX_NUM_MCU_PORTS 4 +#define MC01 0 +#define MC23 1 +#define NUM_NIMBUS_MC_PAIRS 2 + +#define NUM_DIMMS_PER_MEM_CONTROLLER 8 +#define NUM_I2C_PORTS 2 + #define NUM_PROC_CHIPS_PER_OCC 1 #define NUM_CENTAURS_PER_MEM_CONTROLLER 1 #define NUM_PORT_PAIRS_PER_CENTAUR 2 -#define NUM_DIMMS_PER_CENTAUR 8 +#define NUM_DIMMS_PER_CENTAUR \ + (NUM_DIMMS_PER_MEM_CONTROLLER/NUM_CENTAURS_PER_MEM_CONTROLLER) #define NUM_MBAS_PER_CENTAUR 2 #define UPPER_LIMIT_PROC_FREQ_MHZ 6000 @@ -223,27 +232,30 @@ typedef struct uint8_t pcap_data_count; // Used by OCC only. Initialized to 0 and incremented by 1 with every new packet. } pcap_config_data_t; -// Memory Throttle settings +// Memory Centaur Throttle settings typedef struct { - uint16_t min_n_per_mba; //minimum value - uint16_t min_mem_power; // Max mem Power @min (x0.1W) + uint16_t min_n_per_mba; //minimum value + uint16_t min_mem_power; //Max mem Power @min (x0.1W) - uint16_t pcap1_n_per_mba; //max mba value for Power Cap Level 1 - uint16_t pcap1_mem_power; //max memory power @PCAP L1 + uint16_t turbo_n_per_mba; //max mba value for Power Cap @Turbo + uint16_t turbo_n_per_chip; //Static per chip numerator @Turbo + uint16_t turbo_mem_power; //max memory power @Turbo L1 - uint16_t pcap2_n_per_mba; //max mba value for Power Cap Level 2 - uint16_t pcap2_mem_power; //max memory power @PCAP L2 + uint16_t pcap_n_per_mba; //max mba value for Power Cap Level 2 + uint16_t pcap_n_per_chip; //Static per chip numerator @PCAP + uint16_t pcap_mem_power; //max memory power @PCAP L2 - uint16_t nom_n_per_mba; //max mba value for nominal mode - uint16_t nom_n_per_chip; //chip setting for nominal mode - uint16_t nom_mem_power; //max memory power @Redundant + uint16_t nom_n_per_mba; //max mba value for nominal mode + uint16_t nom_n_per_chip; //chip setting for nominal mode + uint16_t nom_mem_power; //max memory power @Redundant - uint16_t ovs_n_per_mba; //max mba value for oversubscription - uint16_t ovs_n_per_chip; //chip setting for oversubscription - uint16_t ovs_mem_power; //max memory power @oversubscription + uint16_t reserved_n_per_mba; //reserved + uint16_t reserved_n_per_chip; //reserved + uint16_t reserved_mem_power; //reserved } mem_throt_config_data_t; + // Sys Config Structure // Needs to be 128 bytes aligned so we can do a DMA to transfer this to SRAM from @@ -353,7 +365,18 @@ typedef struct // -------------------------------------- // Memory Throttle limits // -------------------------------------- - mem_throt_config_data_t mem_throt_limits[MAX_NUM_CENTAURS][NUM_MBAS_PER_CENTAUR]; + // This array holds throttle configuration parameters for + // both nimbus and cumulus systems. + + // Throttle limits are layout: + // - Nimbus: mem_throt_limits[mc_pair][port] + // mc_pair = 0/1 for MC01/MC23, port=0-3 + // (only first two rows populated) + + // - Cumulus mem_throt_limits[cent][mba] + // cent=0-8, mba = 0/1 for mba01/mba23 + // (only first two columns populated) + mem_throt_config_data_t mem_throt_limits[MAX_NUM_MEM_CONTROLLERS][MAX_NUM_MCU_PORTS]; // -------------------------------------- // Vdd/Vcs Uplift vid codes |