diff options
Diffstat (limited to 'src/occ_405')
-rwxr-xr-x | src/occ_405/amec/amec_analytics.c | 13 | ||||
-rw-r--r-- | src/occ_405/amec/amec_controller.c | 23 | ||||
-rw-r--r-- | src/occ_405/amec/amec_init.c | 1 | ||||
-rwxr-xr-x | src/occ_405/amec/amec_pcap.c | 20 | ||||
-rwxr-xr-x | src/occ_405/amec/amec_sensors_core.c | 38 | ||||
-rwxr-xr-x | src/occ_405/amec/amec_slave_smh.c | 11 | ||||
-rwxr-xr-x | src/occ_405/amec/amec_sys.h | 13 | ||||
-rwxr-xr-x | src/occ_405/cmdh/cmdh_fsp_cmds.c | 1 | ||||
-rwxr-xr-x | src/occ_405/dcom/dcom.h | 6 | ||||
-rwxr-xr-x | src/occ_405/sensor/sensor_enum.h | 58 | ||||
-rwxr-xr-x | src/occ_405/sensor/sensor_info.c | 11 | ||||
-rwxr-xr-x | src/occ_405/sensor/sensor_table.c | 10 |
12 files changed, 134 insertions, 71 deletions
diff --git a/src/occ_405/amec/amec_analytics.c b/src/occ_405/amec/amec_analytics.c index 5c8edf5..9cca40d 100755 --- a/src/occ_405/amec/amec_analytics.c +++ b/src/occ_405/amec/amec_analytics.c @@ -190,13 +190,6 @@ void amec_analytics_main(void) return; } - g_amec->packednapsleep[0] = (g_amec->proc[0].winkcnt4ms.sample<<8) + - g_amec->proc[0].sleepcnt4ms.sample; - // There are no other elements in proc[] array other than element 0 - g_amec->packednapsleep[1] = 0; - g_amec->packednapsleep[2] = 0; - g_amec->packednapsleep[3] = 0; - switch (g_amec->analytics_group) { case 45: // Group 45 @@ -342,12 +335,6 @@ void amec_analytics_main(void) l=l+1; } - g_amec->g44_avg[(i*MSA)+48] = g_amec->g44_avg[(i*MSA)+48] + - (UINT32)(g_amec->proc[i].winkcnt4ms.sample<<3); // counter of cores that entered winkle for at least part of the 2msec interval: 1/8th resolution - g_amec->g44_avg[(i*MSA)+49] = g_amec->g44_avg[(i*MSA)+49] + - (UINT32)(g_amec->proc[i].sleepcnt4ms.sample<<3); // counter of cores that entered sleep for at least part of the 2msec interval: 1/8th resolution - - m=0; // counter for actual configured # of cores - 1. for (j=0; j<12; j++) // Group 45 supports up to 12 cores to be configured per OCC chip { diff --git a/src/occ_405/amec/amec_controller.c b/src/occ_405/amec/amec_controller.c index 9da01de..25901c7 100644 --- a/src/occ_405/amec/amec_controller.c +++ b/src/occ_405/amec/amec_controller.c @@ -143,6 +143,17 @@ void amec_controller_proc_thermal() g_amec->thermalproc.freq_request = amec_controller_speed2freq( g_amec->thermalproc.speed_request, g_amec->sys.fmax); + + // Update the Processor OT Throttle Sensor + if(g_amec->thermalproc.freq_request < g_amec->sys.fmax) + { + // frequency is less than max indicate throttle due to OT + sensor_update(AMECSENSOR_PTR(PROCOTTHROT), 1); + } + else // not currently throttled due to OT + { + sensor_update(AMECSENSOR_PTR(PROCOTTHROT), 0); + } } //************************************************************************* @@ -235,6 +246,18 @@ void amec_controller_dimm_thermal() // Generate the new thermal speed request g_amec->thermaldimm.speed_request = (uint16_t) l_mem_speed; + + // Update the Memory OT Throttle Sensor + if(g_amec->thermaldimm.speed_request < AMEC_MEMORY_MAX_STEP) + { + // Memory speed is less than max indicate throttle due to OT + sensor_update(AMECSENSOR_PTR(MEMOTTHROT), 1); + } + else // not currently throttled due to OT + { + sensor_update(AMECSENSOR_PTR(MEMOTTHROT), 0); + } + } diff --git a/src/occ_405/amec/amec_init.c b/src/occ_405/amec/amec_init.c index 9e4f623..7e70ed9 100644 --- a/src/occ_405/amec/amec_init.c +++ b/src/occ_405/amec/amec_init.c @@ -334,7 +334,6 @@ void amec_init_gamec_struct(void) g_amec->index_probe250us[l_idx] = 0; // Initialize all offsets to 0 (used only if size > 2) } -// g_amec->ptr_probe250us[1] = g_amec->proc[0].sleepcnt2ms.sample; // g_amec->ptr_probe250us[2] = &g_amec->g44_avg[(0*MSA)+49]; // g_amec->ptr_probe250us[2] = g_amec->ptr_probe250us[2]+2; // Point to low 16 bits of g44_avg // g_amec->ptr_probe250us[3] = &g_amec->proc[0].core[0].thread[0].util2ms_thread; diff --git a/src/occ_405/amec/amec_pcap.c b/src/occ_405/amec/amec_pcap.c index 512a82c..286921d 100755 --- a/src/occ_405/amec/amec_pcap.c +++ b/src/occ_405/amec/amec_pcap.c @@ -389,6 +389,26 @@ void amec_power_control(void) // Calculate the performance preserving bounds voting box input freq amec_ppb_fmax_calc(); } + + // Update the Processor and Memory Throttle due to power sensors + if(g_amec->proc[0].pwr_votes.proc_pcap_vote < G_proc_fmax_mhz) + { + // Frequency is being throttled due to power cap + sensor_update(AMECSENSOR_PTR(PROCPWRTHROT), 1); + } + else // not currently throttled due to power + { + sensor_update(AMECSENSOR_PTR(PROCPWRTHROT), 0); + } + if(g_amec->pcap.active_mem_level != 0) + { + // Memory is being throttled due to power cap + sensor_update(AMECSENSOR_PTR(MEMPWRTHROT), 1); + } + else // not currently throttled due to power + { + sensor_update(AMECSENSOR_PTR(MEMPWRTHROT), 0); + } } else { diff --git a/src/occ_405/amec/amec_sensors_core.c b/src/occ_405/amec/amec_sensors_core.c index 6ec8e94..e9fab2b 100755 --- a/src/occ_405/amec/amec_sensors_core.c +++ b/src/occ_405/amec/amec_sensors_core.c @@ -494,38 +494,24 @@ void amec_calc_freq_and_util_sensors(CoreData * i_core_data_ptr, uint8_t i_core) // No sensors to update for perThread Util // ------------------------------------------------------ - // Per Core Sleep/Winkle Count + // Per Core Stop State Sensors // ------------------------------------------------------ - // Get deepest idle state entered by the chiplet since the last read + // Get deepest idle state requested since the last read. bits 12:15 OCC stop state hist reg + temp16 = CONVERT_UINT64_UINT16_UPPER(i_core_data_ptr->stop_state_hist); + temp16 &= 0x000F; + if(temp16 != 0x000F) // Don't update with reset value + { + sensor_update(AMECSENSOR_ARRAY_PTR(STOPDEEPREQC0,i_core), temp16); + } - // The SLEEPCNT and WINKLECNT sensors are updated in amec_slv_state_0() function + // Get deepest idle state entered by the chiplet since the last read bits 16:19 OCC stop state hist reg temp16 = CONVERT_UINT64_UINT16_MIDUPPER(i_core_data_ptr->stop_state_hist); - temp16 = temp16 & 0xF000; temp16 = temp16 >> 12; - switch(temp16) + temp16 = temp16 & 0x000F; + if(temp16 != 0x000F) // Don't update with reset value { - case 0: // Stop 0: Run State - case 1: // Stop 1: Nap - break; - case 2: // Stop 2: Fast Sleep - case 3: // Stop 3: Fast Sleep @ Vmin - case 4: // Stop 4: Deep Sleep "instant on" - case 5: // Stop 5-7: Higher Latency Deep Sleep - case 6: - case 7: - case 8: // Stop 8-10: Deep Sleep+ - case 9: - case 10: - SETBIT(g_amec->proc[0].sleep_cnt,i_core); - break; - case 11: // Stop 11-15: Quad Deep Winkle - case 12: - case 13: - case 14: - case 15: - SETBIT(g_amec->proc[0].winkle_cnt,i_core); - break; + sensor_update(AMECSENSOR_ARRAY_PTR(STOPDEEPACTC0,i_core), temp16); } // ------------------------------------------------------ diff --git a/src/occ_405/amec/amec_slave_smh.c b/src/occ_405/amec/amec_slave_smh.c index e92308a..56fcd76 100755 --- a/src/occ_405/amec/amec_slave_smh.c +++ b/src/occ_405/amec/amec_slave_smh.c @@ -399,17 +399,6 @@ void amec_slv_state_0(void) amec_update_centaur_sensors(CENTAUR_0); */ //------------------------------------------------------- - // Update Sleep Count & Winkle Count Sensors - //------------------------------------------------------- - sensor_update(AMECSENSOR_PTR(SLEEPCNT4MSP0), - __builtin_popcount( g_amec->proc[0].sleep_cnt)); - g_amec->proc[0].sleep_cnt = 0; - - sensor_update(AMECSENSOR_PTR(WINKCNT4MSP0), - __builtin_popcount(g_amec->proc[0].winkle_cnt)); - g_amec->proc[0].winkle_cnt = 0; - - //------------------------------------------------------- // Update vector sensors //------------------------------------------------------- sensor_vector_update(AMECSENSOR_PTR(TEMPPROCAVG), 1); diff --git a/src/occ_405/amec/amec_sys.h b/src/occ_405/amec/amec_sys.h index d72a49b..d3127df 100755 --- a/src/occ_405/amec/amec_sys.h +++ b/src/occ_405/amec/amec_sys.h @@ -298,6 +298,8 @@ typedef struct sensor_t ppic; sensor_t pwrpx250us; sensor_t tempc; + sensor_t stopdeepreqc; + sensor_t stopdeepactc; //----------------------------------- // Previous Tick Data @@ -456,8 +458,6 @@ typedef struct sensor_t curvdd; sensor_t pwrvcsviovdn; sensor_t pwr250usmem; - sensor_t sleepcnt4ms; - sensor_t winkcnt4ms; sensor_t sp250us; sensor_t tempprocavg; vectorSensor_t temp4ms_vector; @@ -471,6 +471,8 @@ typedef struct sensor_t temp2mscent; sensor_t tempdimmthrm; sensor_t memsp2ms_tls; + sensor_t mempwrthrot; + sensor_t memotthrot; // Nimbus DIMM Sensors sensor_t tempdimm[NUM_DIMM_PORTS*NUM_DIMMS_PER_I2CPORT]; @@ -483,11 +485,10 @@ typedef struct sensor_t curvdn; sensor_t pwrvdd; sensor_t pwrvdn; + sensor_t procpwrthrot; + sensor_t procotthrot; // Calculations & Interim Data - uint16_t sleep_cnt; - uint16_t winkle_cnt; - uint16_t core_max_freq; // Maximum requested freq for all cores on chip. // Parameters used through Amester interface @@ -727,8 +728,6 @@ typedef struct uint8_t analytics_slot; // Used to hold selected analytics group uint16_t analytics_array[STREAM_VECTOR_SIZE_EX]; - // for group 44 support core bit maps of their napping cores (upper byte) and sleeping cores (lower byte) - uint16_t packednapsleep[MAX_NUM_CHIP_MODULES]; // holds the sum of all the memory power sensors (32msec) uint16_t total_memory_power; uint16_t probetemp[NUM_AMEC_FW_PROBES]; // array holding temporary probe data diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds.c b/src/occ_405/cmdh/cmdh_fsp_cmds.c index 4c561fe..9dac133 100755 --- a/src/occ_405/cmdh/cmdh_fsp_cmds.c +++ b/src/occ_405/cmdh/cmdh_fsp_cmds.c @@ -118,6 +118,7 @@ errlHndl_t cmdh_tmgt_poll (const cmdh_fsp_cmd_t * i_cmd_ptr, } else { + CMDH_TRAC_ERR("cmdh_tmgt_poll: Invalid version 0x%02X", l_poll_cmd->version); l_rc = ERRL_RC_INVALID_DATA; break; } diff --git a/src/occ_405/dcom/dcom.h b/src/occ_405/dcom/dcom.h index 24d3909..811aecc 100755 --- a/src/occ_405/dcom/dcom.h +++ b/src/occ_405/dcom/dcom.h @@ -200,13 +200,13 @@ typedef struct __attribute__ ((packed)) uint16_t memsp2msp0mx[MAX_NUM_MEM_CONTROLLERS]; // [148] uint16_t pwrproc; // [164] uint16_t pwr250usmemp0; // [166] - uint16_t sleepcnt4msp0; // [168] - uint16_t winkcnt4msp0; // [170] + uint16_t reserved0; // [168] + uint16_t reserved1; // [170] uint16_t tempprocavg; // [172] uint16_t tempprocthermal; // [174] uint16_t utilcy[MAX_CORES]; // [176] uint16_t vrfan; // [224] - uint16_t reserved0; // [226] + uint16_t reserved2; // [226] uint16_t mrd2msp0mx[MAX_NUM_MEM_CONTROLLERS]; // [228] uint16_t mwr2msp0mx[MAX_NUM_MEM_CONTROLLERS]; // [244] uint16_t pwrpx250usp0cy[MAX_CORES]; // [260] diff --git a/src/occ_405/sensor/sensor_enum.h b/src/occ_405/sensor/sensor_enum.h index 3937f7d..2e7db0e 100755 --- a/src/occ_405/sensor/sensor_enum.h +++ b/src/occ_405/sensor/sensor_enum.h @@ -117,8 +117,6 @@ enum e_gsid PWR250USVDD0, // from APSS (no change) PWRVCSVIOVDN, // from APSS - rename from PWR250USVCS0 to show what it includes PWR250USMEM0, - SLEEPCNT4MSP0, - WINKCNT4MSP0, SP250USP0, TEMPPROCAVG, TEMPPROCTHRM, @@ -128,7 +126,8 @@ enum e_gsid VOLTVDNSENSE, // chip voltage (remote sense adjusted for loadline) PWRVDD, // calculated from AVSBUS data PWRVDN, // calculated from AVSBUS data - + PROCPWRTHROT, + PROCOTTHROT, TEMPQ0, TEMPQ1, TEMPQ2, @@ -461,6 +460,56 @@ enum e_gsid TEMPC22, TEMPC23, + STOPDEEPREQC0, + STOPDEEPREQC1, + STOPDEEPREQC2, + STOPDEEPREQC3, + STOPDEEPREQC4, + STOPDEEPREQC5, + STOPDEEPREQC6, + STOPDEEPREQC7, + STOPDEEPREQC8, + STOPDEEPREQC9, + STOPDEEPREQC10, + STOPDEEPREQC11, + STOPDEEPREQC12, + STOPDEEPREQC13, + STOPDEEPREQC14, + STOPDEEPREQC15, + STOPDEEPREQC16, + STOPDEEPREQC17, + STOPDEEPREQC18, + STOPDEEPREQC19, + STOPDEEPREQC20, + STOPDEEPREQC21, + STOPDEEPREQC22, + STOPDEEPREQC23, + + STOPDEEPACTC0, + STOPDEEPACTC1, + STOPDEEPACTC2, + STOPDEEPACTC3, + STOPDEEPACTC4, + STOPDEEPACTC5, + STOPDEEPACTC6, + STOPDEEPACTC7, + STOPDEEPACTC8, + STOPDEEPACTC9, + STOPDEEPACTC10, + STOPDEEPACTC11, + STOPDEEPACTC12, + STOPDEEPACTC13, + STOPDEEPACTC14, + STOPDEEPACTC15, + STOPDEEPACTC16, + STOPDEEPACTC17, + STOPDEEPACTC18, + STOPDEEPACTC19, + STOPDEEPACTC20, + STOPDEEPACTC21, + STOPDEEPACTC22, + STOPDEEPACTC23, + // ------------------------------------------------------ // Regulator Sensors // ------------------------------------------------------ @@ -513,6 +562,9 @@ enum e_gsid LOCDIMMAXP0M6, LOCDIMMAXP0M7, + MEMPWRTHROT, + MEMOTTHROT, + // Individual DIMM temperatures (NIMBUS) TEMPDIMM00, TEMPDIMM01, diff --git a/src/occ_405/sensor/sensor_info.c b/src/occ_405/sensor/sensor_info.c index 926cced..c9b0806 100755 --- a/src/occ_405/sensor/sensor_info.c +++ b/src/occ_405/sensor/sensor_info.c @@ -31,6 +31,7 @@ #define AMEEFP_1MS_IN_HZ AMEFP(1,3) // 1000 Hz #define AMEEFP_2MS_IN_HZ AMEFP(5,2) // 500 Hz #define AMEEFP_4MS_IN_HZ AMEFP(25,1) // 250 Hz +#define AMEEFP_16MS_IN_HZ AMEFP(625,-1) // 62.5 Hz #define AMEEFP_32MS_IN_HZ AMEFP(3125,-2) // 31.25 Hz #define AMEEFP_3S_IN_HZ AMEFP(333,-3) // 0.333 Hz #define AMEFP_SCALE_0_16384 AMEFP(610352,-8) // scalar so that digital 16384=100% @@ -305,8 +306,6 @@ const sensor_info_t G_sensor_info[] = SENSOR_INFO_T_ENTRY( PWR250USVDD0, "W\0", AMEC_SENSOR_TYPE_POWER, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1, 0) ), SENSOR_INFO_T_ENTRY( PWRVCSVIOVDN, "W\0", AMEC_SENSOR_TYPE_POWER, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1, 0) ), SENSOR_INFO_T_ENTRY( PWR250USMEM0, "W\0", AMEC_SENSOR_TYPE_POWER, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1, 0) ), - SENSOR_INFO_T_ENTRY( SLEEPCNT4MSP0, "#\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), - SENSOR_INFO_T_ENTRY( WINKCNT4MSP0, "#\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), SENSOR_INFO_T_ENTRY( SP250USP0, "%\0", AMEC_SENSOR_TYPE_FREQ, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1, 0) ), SENSOR_INFO_T_ENTRY( TEMPPROCAVG, "C\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), SENSOR_INFO_T_ENTRY( TEMPPROCTHRM, "C\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), @@ -316,6 +315,8 @@ const sensor_info_t G_sensor_info[] = SENSOR_INFO_T_ENTRY( VOLTVDNSENSE, "mV\0", AMEC_SENSOR_TYPE_VOLTAGE, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1, -1) ), SENSOR_INFO_T_ENTRY( PWRVDD, "W\0", AMEC_SENSOR_TYPE_POWER, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_500US_IN_HZ, AMEFP( 1, 0) ), SENSOR_INFO_T_ENTRY( PWRVDN, "W\0", AMEC_SENSOR_TYPE_POWER, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_500US_IN_HZ, AMEFP( 1, 0) ), + SENSOR_INFO_T_ENTRY( PROCPWRTHROT, "#\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1, 0) ), + SENSOR_INFO_T_ENTRY( PROCOTTHROT, "#\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_16MS_IN_HZ, AMEFP( 1, 0) ), SENS_QUAD_ENTRY_SET( TEMPQ, "C\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), @@ -342,7 +343,9 @@ const sensor_info_t G_sensor_info[] = SENS_CORE_ENTRY_SET( PPICP0C, "%\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), SENS_CORE_ENTRY_SET( PWRPX250USP0C, "W\0", AMEC_SENSOR_TYPE_POWER, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1, 0) ), SENS_CORE_ENTRY_SET( TEMPC, "C\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), - + SENS_CORE_ENTRY_SET( STOPDEEPREQC, "ss\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), + SENS_CORE_ENTRY_SET( STOPDEEPACTC, "ss\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), + /* ==MemSensors== NameString Units Type Location Number Freq ScaleFactor */ SENS_MEMC_ENTRY_SET( MRD2MSP0M, "GBs\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 128, -5) ), SENS_MEMC_ENTRY_SET( MWR2MSP0M, "GBs\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 128, -5) ), @@ -351,6 +354,8 @@ const sensor_info_t G_sensor_info[] = SENS_DIMM_ENTRY_SET( TEMPDIMM, "C\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_32MS_IN_HZ, AMEFP( 1, 0) ), SENS_MEMC_ENTRY_SET( TEMPDIMMAXP0M, "C\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), SENS_MEMC_ENTRY_SET( LOCDIMMAXP0M, "loc\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), + SENSOR_INFO_T_ENTRY( MEMPWRTHROT, "#\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1, 0) ), + SENSOR_INFO_T_ENTRY( MEMOTTHROT, "#\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_16MS_IN_HZ, AMEFP( 1, 0) ), /* ==CentaurSensors== NameString Units Type Location Number Freq ScaleFactor */ SEN_CENTR_ENTRY_SET( MAC2MSP0M, "rps\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_MEM, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1, 0) ), diff --git a/src/occ_405/sensor/sensor_table.c b/src/occ_405/sensor/sensor_table.c index e5f92ca..0f85049 100755 --- a/src/occ_405/sensor/sensor_table.c +++ b/src/occ_405/sensor/sensor_table.c @@ -355,8 +355,6 @@ const sensor_ptr_t G_amec_sensor_list[] = SENSOR_PTR( PWR250USVDD0, &g_amec_sys.proc[0].pwr250usvdd), SENSOR_PTR( PWRVCSVIOVDN, &g_amec_sys.proc[0].pwrvcsviovdn), SENSOR_PTR( PWR250USMEM0, &g_amec_sys.proc[0].pwr250usmem), - SENSOR_PTR( SLEEPCNT4MSP0, &g_amec_sys.proc[0].sleepcnt4ms), - SENSOR_PTR( WINKCNT4MSP0, &g_amec_sys.proc[0].winkcnt4ms), SENSOR_PTR( SP250USP0, &g_amec_sys.proc[0].sp250us), SENSOR_PTR( TEMPPROCAVG, &g_amec_sys.proc[0].tempprocavg), SENSOR_PTR( TEMPPROCTHRM, &g_amec_sys.proc[0].tempprocthermal), @@ -366,6 +364,8 @@ const sensor_ptr_t G_amec_sensor_list[] = SENSOR_PTR( VOLTVDNSENSE, &g_amec_sys.fw.voltvdnsense), SENSOR_PTR( PWRVDD, &g_amec_sys.proc[0].pwrvdd), SENSOR_PTR( PWRVDN, &g_amec_sys.proc[0].pwrvdn), + SENSOR_PTR( PROCPWRTHROT, &g_amec_sys.proc[0].procpwrthrot), + SENSOR_PTR( PROCOTTHROT, &g_amec_sys.proc[0].procotthrot), // ------------------------------------------------------ // Quad Sensors (6 each) @@ -388,6 +388,8 @@ const sensor_ptr_t G_amec_sensor_list[] = CORE_SENSOR_PTRS( PPICP0C , &g_amec_sys.proc[0].core, ppic), CORE_SENSOR_PTRS( PWRPX250USP0C , &g_amec_sys.proc[0].core, pwrpx250us), CORE_SENSOR_PTRS( TEMPC, &g_amec_sys.proc[0].core, tempc), + CORE_SENSOR_PTRS( STOPDEEPREQC, &g_amec_sys.proc[0].core, stopdeepreqc), + CORE_SENSOR_PTRS( STOPDEEPACTC, &g_amec_sys.proc[0].core, stopdeepactc), // ------------------------------------------------------ // Memory Sensors @@ -399,6 +401,8 @@ const sensor_ptr_t G_amec_sensor_list[] = DIMM_SENSOR_PTRS(TEMPDIMM, &g_amec_sys.proc[0], tempdimm), MEMCONTROL_SENSOR_PTRS(TEMPDIMMAXP0M, &g_amec_sys.proc[0].memctl, centaur.tempdimmax), MEMCONTROL_SENSOR_PTRS(LOCDIMMAXP0M, &g_amec_sys.proc[0].memctl, centaur.locdimmax), + SENSOR_PTR(MEMPWRTHROT, &g_amec_sys.proc[0].mempwrthrot), + SENSOR_PTR(MEMOTTHROT, &g_amec_sys.proc[0].memotthrot), PORTPAIR_SENSOR_PTRS(MAC2MSP0M, &g_amec_sys.proc[0].memctl, centaur.portpair, mac2ms), PORTPAIR_SENSOR_PTRS(MPU2MSP0M, &g_amec_sys.proc[0].memctl, centaur.portpair, mpu2ms), @@ -519,8 +523,6 @@ const minisensor_ptr_t G_amec_mini_sensor_list[] INIT_SECTION = MINI_SENSOR_PTR( PWR250USVDD0, NULL), MINI_SENSOR_PTR( PWRVCSVIOVDN, NULL), MINI_SENSOR_PTR( PWR250USMEM0, &G_dcom_slv_outbox_tx.pwr250usmemp0), - MINI_SENSOR_PTR( SLEEPCNT4MSP0, &G_dcom_slv_outbox_tx.sleepcnt4msp0), - MINI_SENSOR_PTR( WINKCNT4MSP0, &G_dcom_slv_outbox_tx.winkcnt4msp0), MINI_SENSOR_PTR( SP250USP0, NULL), MINI_SENSOR_PTR( TEMPPROCAVG, &G_dcom_slv_outbox_tx.tempprocavg), MINI_SENSOR_PTR( TEMPPROCTHRM, &G_dcom_slv_outbox_tx.tempprocthermal), |