diff options
author | William Bryan <wilbryan@us.ibm.com> | 2016-09-23 12:26:05 -0500 |
---|---|---|
committer | William A. Bryan <wilbryan@us.ibm.com> | 2016-10-11 14:45:04 -0400 |
commit | c21550d3951c6b88f12de2b5aa9565a6c23b6bd4 (patch) | |
tree | 6938a483b0d1be783f4ef02d3194fcf4eab015b6 /src/occ_405/sensor | |
parent | 720dfdf376155029a429339f7f862232081ccca0 (diff) | |
download | talos-occ-c21550d3951c6b88f12de2b5aa9565a6c23b6bd4.tar.gz talos-occ-c21550d3951c6b88f12de2b5aa9565a6c23b6bd4.zip |
Save Core & Quad DTS Avgs
Change-Id: I7c57c072f4f84f02ce7bbc5f95c80a4901d6c9a2
RTC:160341
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/30180
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Reviewed-by: Andres A. Lugo-Reyes <aalugore@us.ibm.com>
Reviewed-by: William A. Bryan <wilbryan@us.ibm.com>
Diffstat (limited to 'src/occ_405/sensor')
-rwxr-xr-x | src/occ_405/sensor/sensor_enum.h | 84 | ||||
-rwxr-xr-x | src/occ_405/sensor/sensor_info.c | 110 | ||||
-rwxr-xr-x | src/occ_405/sensor/sensor_table.c | 57 |
3 files changed, 183 insertions, 68 deletions
diff --git a/src/occ_405/sensor/sensor_enum.h b/src/occ_405/sensor/sensor_enum.h index 3305cd3..a1dd1c2 100755 --- a/src/occ_405/sensor/sensor_enum.h +++ b/src/occ_405/sensor/sensor_enum.h @@ -122,13 +122,20 @@ enum e_gsid SLEEPCNT4MSP0, WINKCNT4MSP0, SP250USP0, - TEMP4MSP0, - TEMP4MSP0PEAK, + TEMPPROCAVG, + TEMPPROCTHRM, UTIL4MSP0, TEMPNEST, VRFAN250USPROC, VRHOT250USPROC, + TEMPQ0, + TEMPQ1, + TEMPQ2, + TEMPQ3, + TEMPQ4, + TEMPQ5, + FREQ250USP0C0, FREQ250USP0C1, FREQ250USP0C2, @@ -254,30 +261,30 @@ enum e_gsid NOTFIN4MSP0C22, NOTFIN4MSP0C23, - TEMP4MSP0C0, - TEMP4MSP0C1, - TEMP4MSP0C2, - TEMP4MSP0C3, - TEMP4MSP0C4, - TEMP4MSP0C5, - TEMP4MSP0C6, - TEMP4MSP0C7, - TEMP4MSP0C8, - TEMP4MSP0C9, - TEMP4MSP0C10, - TEMP4MSP0C11, - TEMP4MSP0C12, - TEMP4MSP0C13, - TEMP4MSP0C14, - TEMP4MSP0C15, - TEMP4MSP0C16, - TEMP4MSP0C17, - TEMP4MSP0C18, - TEMP4MSP0C19, - TEMP4MSP0C20, - TEMP4MSP0C21, - TEMP4MSP0C22, - TEMP4MSP0C23, + TEMPPROCTHRMC0, + TEMPPROCTHRMC1, + TEMPPROCTHRMC2, + TEMPPROCTHRMC3, + TEMPPROCTHRMC4, + TEMPPROCTHRMC5, + TEMPPROCTHRMC6, + TEMPPROCTHRMC7, + TEMPPROCTHRMC8, + TEMPPROCTHRMC9, + TEMPPROCTHRMC10, + TEMPPROCTHRMC11, + TEMPPROCTHRMC12, + TEMPPROCTHRMC13, + TEMPPROCTHRMC14, + TEMPPROCTHRMC15, + TEMPPROCTHRMC16, + TEMPPROCTHRMC17, + TEMPPROCTHRMC18, + TEMPPROCTHRMC19, + TEMPPROCTHRMC20, + TEMPPROCTHRMC21, + TEMPPROCTHRMC22, + TEMPPROCTHRMC23, UTIL4MSP0C0, UTIL4MSP0C1, @@ -429,6 +436,31 @@ enum e_gsid PWRPX250USP0C22, PWRPX250USP0C23, + TEMPC0, + TEMPC1, + TEMPC2, + TEMPC3, + TEMPC4, + TEMPC5, + TEMPC6, + TEMPC7, + TEMPC8, + TEMPC9, + TEMPC10, + TEMPC11, + TEMPC12, + TEMPC13, + TEMPC14, + TEMPC15, + TEMPC16, + TEMPC17, + TEMPC18, + TEMPC19, + TEMPC20, + TEMPC21, + TEMPC22, + TEMPC23, + // ------------------------------------------------------ // Regulator Sensors // ------------------------------------------------------ diff --git a/src/occ_405/sensor/sensor_info.c b/src/occ_405/sensor/sensor_info.c index 82ab29b..cd29e10 100755 --- a/src/occ_405/sensor/sensor_info.c +++ b/src/occ_405/sensor/sensor_info.c @@ -62,33 +62,75 @@ #define CENTAUR_SENSOR_STRING_HELPER(sensor_name, memc,centL,cent,ppL,pp) SENSOR_STRING(sensor_name##memc##centL##cent##ppL##pp) #define CENTAUR_SENSOR_STRING(sensor_name,memc,cent,pp) CENTAUR_SENSOR_STRING_HELPER(sensor_name, memc,C,cent,P,pp) -// This will create a set of 12 sensor entries into the sensor list table. +// This will create a set of 6 sensor entries into the sensor list table. +// (one for each quad...) The base name of the sensor enum must be passed +// and this macro will take care of the paste & stringify operations. +#define SENS_QUAD_ENTRY_SET(sensor_name, units, type, location, number, frequency, scaleFactor) \ + [SENSOR_W_NUM(sensor_name,0)] = {.name = SENSOR_STRING(sensor_name ## 0), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,1)] = {.name = SENSOR_STRING(sensor_name ## 1), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,2)] = {.name = SENSOR_STRING(sensor_name ## 2), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,3)] = {.name = SENSOR_STRING(sensor_name ## 3), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,4)] = {.name = SENSOR_STRING(sensor_name ## 4), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,5)] = {.name = SENSOR_STRING(sensor_name ## 5), \ + .sensor = { units, type, location, number, frequency, scaleFactor },} + + +// This will create a set of 24 sensor entries into the sensor list table. // (one for each core...) The base name of the sensor enum must be passed // and this macro will take care of the paste & stringify operations. #define SENS_CORE_ENTRY_SET(sensor_name, units, type, location, number, frequency, scaleFactor) \ - [SENSOR_W_NUM(sensor_name,0)] = {.name = SENSOR_STRING(sensor_name ## 1), \ + [SENSOR_W_NUM(sensor_name,0)] = {.name = SENSOR_STRING(sensor_name ## 0), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,1)] = {.name = SENSOR_STRING(sensor_name ## 1), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,2)] = {.name = SENSOR_STRING(sensor_name ## 2), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,3)] = {.name = SENSOR_STRING(sensor_name ## 3), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,4)] = {.name = SENSOR_STRING(sensor_name ## 4), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,5)] = {.name = SENSOR_STRING(sensor_name ## 5), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,6)] = {.name = SENSOR_STRING(sensor_name ## 6), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,7)] = {.name = SENSOR_STRING(sensor_name ## 7), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,8)] = {.name = SENSOR_STRING(sensor_name ## 8), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,9)] = {.name = SENSOR_STRING(sensor_name ## 9), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,10)] = {.name = SENSOR_STRING(sensor_name ## 10), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,11)] = {.name = SENSOR_STRING(sensor_name ## 11), \ + .sensor = { units, type, location, number, frequency, scaleFactor },}, \ + [SENSOR_W_NUM(sensor_name,12)] = {.name = SENSOR_STRING(sensor_name ## 12), \ .sensor = { units, type, location, number, frequency, scaleFactor },}, \ - [SENSOR_W_NUM(sensor_name,1)] = {.name = SENSOR_STRING(sensor_name ## 2), \ + [SENSOR_W_NUM(sensor_name,13)] = {.name = SENSOR_STRING(sensor_name ## 13), \ .sensor = { units, type, location, number, frequency, scaleFactor },}, \ - [SENSOR_W_NUM(sensor_name,2)] = {.name = SENSOR_STRING(sensor_name ## 3), \ + [SENSOR_W_NUM(sensor_name,14)] = {.name = SENSOR_STRING(sensor_name ## 14), \ .sensor = { units, type, location, number, frequency, scaleFactor },}, \ - [SENSOR_W_NUM(sensor_name,3)] = {.name = SENSOR_STRING(sensor_name ## 4), \ + [SENSOR_W_NUM(sensor_name,15)] = {.name = SENSOR_STRING(sensor_name ## 15), \ .sensor = { units, type, location, number, frequency, scaleFactor },}, \ - [SENSOR_W_NUM(sensor_name,4)] = {.name = SENSOR_STRING(sensor_name ## 5), \ + [SENSOR_W_NUM(sensor_name,16)] = {.name = SENSOR_STRING(sensor_name ## 16), \ .sensor = { units, type, location, number, frequency, scaleFactor },}, \ - [SENSOR_W_NUM(sensor_name,5)] = {.name = SENSOR_STRING(sensor_name ## 6), \ + [SENSOR_W_NUM(sensor_name,17)] = {.name = SENSOR_STRING(sensor_name ## 17), \ .sensor = { units, type, location, number, frequency, scaleFactor },}, \ - [SENSOR_W_NUM(sensor_name,6)] = {.name = SENSOR_STRING(sensor_name ## 9), \ + [SENSOR_W_NUM(sensor_name,18)] = {.name = SENSOR_STRING(sensor_name ## 18), \ .sensor = { units, type, location, number, frequency, scaleFactor },}, \ - [SENSOR_W_NUM(sensor_name,7)] = {.name = SENSOR_STRING(sensor_name ## 10), \ + [SENSOR_W_NUM(sensor_name,19)] = {.name = SENSOR_STRING(sensor_name ## 19), \ .sensor = { units, type, location, number, frequency, scaleFactor },}, \ - [SENSOR_W_NUM(sensor_name,8)] = {.name = SENSOR_STRING(sensor_name ## 11), \ + [SENSOR_W_NUM(sensor_name,20)] = {.name = SENSOR_STRING(sensor_name ## 20), \ .sensor = { units, type, location, number, frequency, scaleFactor },}, \ - [SENSOR_W_NUM(sensor_name,9)] = {.name = SENSOR_STRING(sensor_name ## 12), \ + [SENSOR_W_NUM(sensor_name,21)] = {.name = SENSOR_STRING(sensor_name ## 21), \ .sensor = { units, type, location, number, frequency, scaleFactor },}, \ - [SENSOR_W_NUM(sensor_name,10)] = {.name = SENSOR_STRING(sensor_name ## 13), \ + [SENSOR_W_NUM(sensor_name,22)] = {.name = SENSOR_STRING(sensor_name ## 22), \ .sensor = { units, type, location, number, frequency, scaleFactor },}, \ - [SENSOR_W_NUM(sensor_name,11)] = {.name = SENSOR_STRING(sensor_name ## 14), \ + [SENSOR_W_NUM(sensor_name,23)] = {.name = SENSOR_STRING(sensor_name ## 23), \ .sensor = { units, type, location, number, frequency, scaleFactor },} // This will create a set of 8 sensor entries into the sensor list table. @@ -217,23 +259,24 @@ const sensor_info_t G_sensor_info[] = SENSOR_INFO_T_ENTRY( TODclock2, "day\0", AMEC_SENSOR_TYPE_TIME, AMEC_SENSOR_LOC_ALL, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 795364,-6) ), /* ==ProcSensors== NameString Units Type Location Number Freq ScaleFactor */ - SENSOR_INFO_T_ENTRY( FREQA4MSP0, "MHz\0", AMEC_SENSOR_TYPE_FREQ, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), - SENSOR_INFO_T_ENTRY( IPS4MSP0, "MIP\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), - SENSOR_INFO_T_ENTRY( MEMSP2MSP0, "%\0", AMEC_SENSOR_TYPE_TIME, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), + SENSOR_INFO_T_ENTRY( FREQA4MSP0, "MHz\0", AMEC_SENSOR_TYPE_FREQ, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), + SENSOR_INFO_T_ENTRY( IPS4MSP0, "MIP\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), + SENSOR_INFO_T_ENTRY( MEMSP2MSP0, "%\0", AMEC_SENSOR_TYPE_TIME, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), SENSOR_INFO_T_ENTRY( PWR250USP0, "W\0", AMEC_SENSOR_TYPE_POWER, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1, 0) ), 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( CUR250USVDD0, "A\0", AMEC_SENSOR_TYPE_CURRENT, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1,-2) ), SENSOR_INFO_T_ENTRY( PWR250USVCS0, "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_2MS_IN_HZ, AMEFP( 1, 0) ), - SENSOR_INFO_T_ENTRY( WINKCNT4MSP0, "#\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_2MS_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( TEMP4MSP0, "C\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), - SENSOR_INFO_T_ENTRY( TEMP4MSP0PEAK, "C\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), - SENSOR_INFO_T_ENTRY( UTIL4MSP0, "%\0", AMEC_SENSOR_TYPE_UTIL, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1,-2) ), + 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) ), + SENSOR_INFO_T_ENTRY( UTIL4MSP0, "%\0", AMEC_SENSOR_TYPE_UTIL, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1,-2) ), SENSOR_INFO_T_ENTRY( TEMPNEST, "C\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_PROC, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), SENSOR_INFO_T_ENTRY( VRFAN250USPROC, "pin\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_VRM, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1, 0) ), SENSOR_INFO_T_ENTRY( VRHOT250USPROC, "pin\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_VRM, AMEC_SENSOR_NONUM, AMEEFP_250US_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) ), /* ==ReguSensors== NameString Units Type Location Number Freq ScaleFactor */ SENSOR_INFO_T_ENTRY( UVOLT250USP0V0, "mV\0", AMEC_SENSOR_TYPE_VOLTAGE, AMEC_SENSOR_LOC_VRM, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1, -1) ), @@ -242,18 +285,19 @@ const sensor_info_t G_sensor_info[] = SENSOR_INFO_T_ENTRY( VOLT250USP0V1, "mV\0", AMEC_SENSOR_TYPE_VOLTAGE, AMEC_SENSOR_LOC_VRM, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1, -1) ), /* ==CoreSensors== NameString Units Type Location Number Freq ScaleFactor */ - SENS_CORE_ENTRY_SET( FREQ250USP0C , "MHz\0", AMEC_SENSOR_TYPE_FREQ, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1, 0) ), - SENS_CORE_ENTRY_SET( FREQA4MSP0C , "MHz\0", AMEC_SENSOR_TYPE_FREQ, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), - SENS_CORE_ENTRY_SET( IPS4MSP0C , "MIP\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), - SENS_CORE_ENTRY_SET( NOTBZE4MSP0C , "cyc\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), - SENS_CORE_ENTRY_SET( NOTFIN4MSP0C , "cyc\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), - SENS_CORE_ENTRY_SET( TEMP4MSP0C , "C\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), - SENS_CORE_ENTRY_SET( UTIL4MSP0C , "%\0", AMEC_SENSOR_TYPE_UTIL, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1,-2) ), - SENS_CORE_ENTRY_SET( NUTIL3SP0C , "%\0", AMEC_SENSOR_TYPE_UTIL, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_3S_IN_HZ, AMEFP( 1,-2) ), - SENS_CORE_ENTRY_SET( MSTL2MSP0C , "cpi\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), - SENS_CORE_ENTRY_SET( CMT2MSP0C , "%\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), - 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( FREQ250USP0C, "MHz\0", AMEC_SENSOR_TYPE_FREQ, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_250US_IN_HZ, AMEFP( 1, 0) ), + SENS_CORE_ENTRY_SET( FREQA4MSP0C, "MHz\0", AMEC_SENSOR_TYPE_FREQ, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), + SENS_CORE_ENTRY_SET( IPS4MSP0C, "MIP\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), + SENS_CORE_ENTRY_SET( NOTBZE4MSP0C, "cyc\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), + SENS_CORE_ENTRY_SET( NOTFIN4MSP0C, "cyc\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), + SENS_CORE_ENTRY_SET( TEMPPROCTHRMC, "C\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1, 0) ), + SENS_CORE_ENTRY_SET( UTIL4MSP0C, "%\0", AMEC_SENSOR_TYPE_UTIL, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_4MS_IN_HZ, AMEFP( 1,-2) ), + SENS_CORE_ENTRY_SET( NUTIL3SP0C, "%\0", AMEC_SENSOR_TYPE_UTIL, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_3S_IN_HZ, AMEFP( 1,-2) ), + SENS_CORE_ENTRY_SET( MSTL2MSP0C, "cpi\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), + SENS_CORE_ENTRY_SET( CMT2MSP0C, "%\0", AMEC_SENSOR_TYPE_PERF, AMEC_SENSOR_LOC_CORE, AMEC_SENSOR_NONUM, AMEEFP_2MS_IN_HZ, AMEFP( 1, 0) ), + 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) ), /* ==MemSensors== NameString Units Type Location Number Freq ScaleFactor */ SENSOR_INFO_T_ENTRY( VRFAN250USMEM, "pin\0", AMEC_SENSOR_TYPE_TEMP, AMEC_SENSOR_LOC_VRM, 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 6b8ed5a..5ab4f15 100755 --- a/src/occ_405/sensor/sensor_table.c +++ b/src/occ_405/sensor/sensor_table.c @@ -71,6 +71,17 @@ extern amec_sys_t g_amec_sys; [SENSOR_W_NUM(sensor,22)] = ptrbase[22].ptrmember, \ [SENSOR_W_NUM(sensor,23)] = ptrbase[23].ptrmember +// Will define a set of "quad sensor pointers" by passing in base sensor name +// and ptr to [0] entry of array of 6 quad sensors +#define QUAD_SENSOR_PTRS(sensor,ptrbase,ptrmember) \ + [SENSOR_W_NUM(sensor, 0)] = ptrbase[ 0].ptrmember, \ + [SENSOR_W_NUM(sensor, 1)] = ptrbase[ 1].ptrmember, \ + [SENSOR_W_NUM(sensor, 2)] = ptrbase[ 2].ptrmember, \ + [SENSOR_W_NUM(sensor, 3)] = ptrbase[ 3].ptrmember, \ + [SENSOR_W_NUM(sensor, 4)] = ptrbase[ 4].ptrmember, \ + [SENSOR_W_NUM(sensor, 5)] = ptrbase[ 5].ptrmember + + // Will define a set of "memory controller sensor pointers" by passing in // base sensor nameand ptr to [0] entry of array of 8 memcontroller sensors #define MEMCONTROL_SENSOR_PTRS(sensor,ptrbase,ptrmember) \ @@ -136,7 +147,6 @@ extern amec_sys_t g_amec_sys; [SENSOR_W_NUM(sensor,22)] = ptr[22], \ [SENSOR_W_NUM(sensor,23)] = ptr[23] -// Will define a set of "core mini-sensor pointers" as NULL, since not // every sensor must have a mini-sensor. #define CORE_MINI_SENSOR_PTRS_NULL(sensor) \ [SENSOR_W_NUM(sensor, 0)] = NULL, \ @@ -164,6 +174,25 @@ extern amec_sys_t g_amec_sys; [SENSOR_W_NUM(sensor,22)] = NULL, \ [SENSOR_W_NUM(sensor,23)] = NULL +// Will define a set of "quad mini-sensor pointers" by passing in base +// sensor name and ptr to [0] entry of array of quad sensors +#define QUAD_MINI_SENSOR_PTRS(sensor,ptr) \ + [SENSOR_W_NUM(sensor, 0)] = ptr[ 0], \ + [SENSOR_W_NUM(sensor, 1)] = ptr[ 1], \ + [SENSOR_W_NUM(sensor, 2)] = ptr[ 2], \ + [SENSOR_W_NUM(sensor, 3)] = ptr[ 3], \ + [SENSOR_W_NUM(sensor, 4)] = ptr[ 4], \ + [SENSOR_W_NUM(sensor, 5)] = ptr[ 5] + +// every sensor must have a mini-sensor. +#define QUAD_MINI_SENSOR_PTRS_NULL(sensor) \ + [SENSOR_W_NUM(sensor, 0)] = NULL, \ + [SENSOR_W_NUM(sensor, 1)] = NULL, \ + [SENSOR_W_NUM(sensor, 2)] = NULL, \ + [SENSOR_W_NUM(sensor, 3)] = NULL, \ + [SENSOR_W_NUM(sensor, 4)] = NULL, \ + [SENSOR_W_NUM(sensor, 5)] = NULL + // Will define a set of "memory controller mini sensor ptrs" by passing in // base sensor nameand ptr to [0] entry of array of 8 memcontroller sensors #define MEMCONTROL_MINI_SENSOR_PTRS(sensor,ptr) \ @@ -312,14 +341,19 @@ const sensor_ptr_t G_amec_sensor_list[] = 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( TEMP4MSP0, &g_amec_sys.proc[0].temp4ms), - SENSOR_PTR( TEMP4MSP0PEAK, &g_amec_sys.proc[0].temp4mspeak), + SENSOR_PTR( TEMPPROCAVG, &g_amec_sys.proc[0].tempprocavg), + SENSOR_PTR( TEMPPROCTHRM, &g_amec_sys.proc[0].tempprocthermal), SENSOR_PTR( UTIL4MSP0, &g_amec_sys.proc[0].util4ms), SENSOR_PTR( TEMPNEST, &g_amec_sys.proc[0].tempnest), SENSOR_PTR( VRFAN250USPROC, &g_amec_sys.sys.vrfan250usproc), SENSOR_PTR( VRHOT250USPROC, &g_amec_sys.sys.vrhot250usproc), // ------------------------------------------------------ + // Quad Sensors (6 each) + // ------------------------------------------------------ + QUAD_SENSOR_PTRS( TEMPQ, &g_amec_sys.proc[0].quad, tempq), + + // ------------------------------------------------------ // Core Sensors (24 of each) // ------------------------------------------------------ CORE_SENSOR_PTRS( FREQ250USP0C , &g_amec_sys.proc[0].core, freq250us), @@ -327,13 +361,14 @@ const sensor_ptr_t G_amec_sensor_list[] = CORE_SENSOR_PTRS( IPS4MSP0C , &g_amec_sys.proc[0].core, ips4ms), CORE_SENSOR_PTRS( NOTBZE4MSP0C , &g_amec_sys.proc[0].core, mcpifd4ms), CORE_SENSOR_PTRS( NOTFIN4MSP0C , &g_amec_sys.proc[0].core, mcpifi4ms), - CORE_SENSOR_PTRS( TEMP4MSP0C , &g_amec_sys.proc[0].core, temp4ms), + CORE_SENSOR_PTRS( TEMPPROCTHRMC , &g_amec_sys.proc[0].core, tempprocthermal), CORE_SENSOR_PTRS( UTIL4MSP0C , &g_amec_sys.proc[0].core, util4ms), CORE_SENSOR_PTRS( NUTIL3SP0C , &g_amec_sys.proc[0].core, nutil3s), CORE_SENSOR_PTRS( MSTL2MSP0C , &g_amec_sys.proc[0].core, mstl2ms), CORE_SENSOR_PTRS( CMT2MSP0C , &g_amec_sys.proc[0].core, cmt2ms), 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), // ------------------------------------------------------ // Memory Sensors @@ -464,14 +499,19 @@ const minisensor_ptr_t G_amec_mini_sensor_list[] INIT_SECTION = 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( TEMP4MSP0, &G_dcom_slv_outbox_tx.temp4msp0), - MINI_SENSOR_PTR( TEMP4MSP0PEAK, &G_dcom_slv_outbox_tx.temp4msp0peak), + MINI_SENSOR_PTR( TEMPPROCAVG, &G_dcom_slv_outbox_tx.tempprocavg), + MINI_SENSOR_PTR( TEMPPROCTHRM, &G_dcom_slv_outbox_tx.tempprocthermal), MINI_SENSOR_PTR( UTIL4MSP0, &G_dcom_slv_outbox_tx.util4msp0), MINI_SENSOR_PTR( TEMPNEST, NULL), MINI_SENSOR_PTR( VRFAN250USPROC, &G_dcom_slv_outbox_tx.vrfan250usproc), MINI_SENSOR_PTR( VRHOT250USPROC, NULL), // ------------------------------------------------------ + // Quad Sensors (6 each) + // ------------------------------------------------------ + QUAD_MINI_SENSOR_PTRS_NULL( TEMPQ ), + + // ------------------------------------------------------ // Core Sensors (24 of each) // ------------------------------------------------------ CORE_MINI_SENSOR_PTRS_NULL( FREQ250USP0C ), @@ -479,13 +519,14 @@ const minisensor_ptr_t G_amec_mini_sensor_list[] INIT_SECTION = CORE_MINI_SENSOR_PTRS( IPS4MSP0C, &G_dcom_slv_outbox_tx.ips4msp0cy ), CORE_MINI_SENSOR_PTRS( NOTBZE4MSP0C, &G_dcom_slv_outbox_tx.mcpifd4msp0cy ), CORE_MINI_SENSOR_PTRS( NOTFIN4MSP0C, &G_dcom_slv_outbox_tx.mcpifi4msp0cy ), - CORE_MINI_SENSOR_PTRS_NULL( TEMP4MSP0C ), + CORE_MINI_SENSOR_PTRS_NULL( TEMPPROCTHRMC ), CORE_MINI_SENSOR_PTRS( UTIL4MSP0C, &G_dcom_slv_outbox_tx.util4msp0cy ), CORE_MINI_SENSOR_PTRS( NUTIL3SP0C, &G_dcom_slv_outbox_tx.nutil3sp0cy ), CORE_MINI_SENSOR_PTRS_NULL( MSTL2MSP0C ), CORE_MINI_SENSOR_PTRS_NULL( CMT2MSP0C ), CORE_MINI_SENSOR_PTRS_NULL( PPICP0C ), CORE_MINI_SENSOR_PTRS( PWRPX250USP0C, &G_dcom_slv_outbox_tx.pwrpx250usp0cy), // + CORE_MINI_SENSOR_PTRS_NULL( TEMPC ), // ------------------------------------------------------ // Memory Sensors @@ -539,5 +580,3 @@ const minisensor_ptr_t G_amec_mini_sensor_list[] INIT_SECTION = }; STATIC_ASSERT( (NUMBER_OF_SENSORS_IN_LIST != (sizeof(G_amec_mini_sensor_list)/sizeof(uint16_t *))) ); STATIC_ASSERT( (MAX_AMEC_SENSORS < (sizeof(G_amec_mini_sensor_list)/sizeof(uint16_t *))) ); - - |