summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/occ_405/cmdh/cmdh_fsp_cmds.h10
-rwxr-xr-xsrc/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c103
-rwxr-xr-xsrc/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h25
3 files changed, 19 insertions, 119 deletions
diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds.h b/src/occ_405/cmdh/cmdh_fsp_cmds.h
index 8cf612c..f31b210 100755
--- a/src/occ_405/cmdh/cmdh_fsp_cmds.h
+++ b/src/occ_405/cmdh/cmdh_fsp_cmds.h
@@ -243,20 +243,20 @@ typedef struct __attribute__ ((packed)) cmdh_poll_sensor_datablock
typedef struct __attribute__ ((packed)) cmdh_poll_temp_sensor
{
- uint16_t id; // Sensor id.
+ uint32_t id; // Sensor id.
uint16_t value; // current temperature sensor reading in degrees C
} cmdh_poll_temp_sensor_t;
typedef struct __attribute__ ((packed)) cmdh_poll_freq_sensor
{
- uint16_t id; // Id to represent the frequency.
+ uint32_t id; // Id to represent the frequency.
uint16_t value; // current frequency in MHZ
} cmdh_poll_freq_sensor_t;
// Only available from master occ.
typedef struct __attribute__ ((packed)) cmdh_poll_powr_sensor
{
- uint16_t id; // Sensor id - to represent the power.
+ uint32_t id; // Sensor id - to represent the power.
uint32_t update_tag; // Count of number of 250us samples represented by accumulator.
uint32_t accumul; // Accumulation of 250us power readings
uint16_t current; // Most recent 250us reading in watts.
@@ -498,7 +498,7 @@ typedef struct cmdh_dbug_sensor_list
uint16_t sample;
uint16_t sample_min;
uint16_t sample_max;
- uint16_t ipmi_sid;
+ uint32_t ipmi_sid;
}cmdh_dbug_sensor_list_t;
// Max number of sensors that can be returned with cmdh_dbug_get_ame_sensor command
@@ -565,7 +565,7 @@ typedef struct __attribute__ ((packed))
uint8_t func;
uint16_t raw;
uint16_t calculated;
- uint16_t ipmi_sid;
+ uint32_t ipmi_sid;
uint32_t offset;
uint32_t gain;
}cmdh_dbug_apss_data_t;
diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c
index a2eb2c8..eadfafa 100755
--- a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c
+++ b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c
@@ -59,8 +59,7 @@
#define DATA_SYS_VERSION_0 0
#define DATA_SYS_VERSION_10 0x10
-#define DATA_APSS_VERSION 0
-#define DATA_APSS_VERSION10 0x10
+#define DATA_APSS_VERSION20 0x20
#define DATA_THRM_THRES_VERSION_1 1
#define DATA_THRM_THRES_VERSION_10 0x10
@@ -601,7 +600,7 @@ errlHndl_t apss_store_adc_channel(const eApssAdcChannelAssignments i_func_id, co
// associated power sensor.
//
// End Function Specification
-void apss_store_ipmi_sensor_id(const uint16_t i_channel, const apss_cfg_adc_v10_t *i_adc)
+void apss_store_ipmi_sensor_id(const uint16_t i_channel, const apss_cfg_adc_v20_t *i_adc)
{
// Get current processor id.
uint8_t l_proc = G_pob_id.module_id;
@@ -851,79 +850,15 @@ errlHndl_t apss_store_gpio_pin(const eApssGpioAssignments i_func_id, const uint8
return l_err;
}
-// Function Specification
-//
-// Name: data_store_apss_config_v00
-//
-// Description: TODO Add description
-//
-// End Function Specification
-errlHndl_t data_store_apss_config_v00(const cmdh_apss_config_v00_t * i_cmd_ptr,
- cmdh_fsp_rsp_t * o_rsp_ptr)
-{
- errlHndl_t l_err = NULL;
-
- uint16_t l_channel = 0, l_port = 0, l_pin = 0;
-
- // Set to default value
- memset(&G_sysConfigData.apss_adc_map, SYSCFG_INVALID_ADC_CHAN, sizeof(G_sysConfigData.apss_adc_map));
- memset(&G_sysConfigData.apss_gpio_map, SYSCFG_INVALID_PIN, sizeof(G_sysConfigData.apss_gpio_map));
-
- // ADC channels info
- for(l_channel=0;(l_channel < MAX_APSS_ADC_CHANNELS) && (NULL == l_err);l_channel++)
- {
- G_sysConfigData.apss_cal[l_channel].gnd_select = i_cmd_ptr->adc[l_channel].gnd_select;
- G_sysConfigData.apss_cal[l_channel].gain = i_cmd_ptr->adc[l_channel].gain;
- G_sysConfigData.apss_cal[l_channel].offset = i_cmd_ptr->adc[l_channel].offset;
-
- // Assign the ADC channel
- l_err = apss_store_adc_channel(i_cmd_ptr->adc[l_channel].assignment, l_channel);
-
- }
-
- if(NULL == l_err)
- {
- // GPIO Ports
- for(l_port=0;(l_port < MAX_APSS_GPIO_PORTS) && (NULL == l_err);l_port++)
- {
- // GPIO mode
- G_sysConfigData.apssGpioPortsMode[l_port] = i_cmd_ptr->gpio[l_port].mode;
-
- // For each pin
- for(l_pin=0; (l_pin < NUM_OF_APSS_PINS_PER_GPIO_PORT) && (NULL == l_err);l_pin++)
- {
- // Assign the GPIO number
- l_err = apss_store_gpio_pin( i_cmd_ptr->gpio[l_port].assignment[l_pin],
- (l_port*NUM_OF_APSS_PINS_PER_GPIO_PORT)+l_pin);
-
- // TODO #cmdh_fsp_cmds_datacnfg_c_001
- // This is only needed for an ITE which would have an OC
- // sensor for a chassis power connector
- // Assign this global the correct pins when the oc pins are passed in.
- G_conn_oc_pins_bitmap = 0x0000;
- }
-
- }
-
- if(NULL == l_err)
- {
- // Change Data Request Mask to indicate we got this data
- G_data_cnfg->data_mask |= DATA_MASK_APSS_CONFIG;
- CMDH_TRAC_IMP("Got valid APSS Config data via TMGT");
- }
- }
-
- return l_err;
-}
// Function Specification
//
-// Name: data_store_apss_config_v10
+// Name: data_store_apss_config_v20
//
// Description: TODO Add description
//
// End Function Specification
-errlHndl_t data_store_apss_config_v10(const cmdh_apss_config_v10_t * i_cmd_ptr,
+errlHndl_t data_store_apss_config_v20(const cmdh_apss_config_v20_t * i_cmd_ptr, //New for P9
cmdh_fsp_rsp_t * o_rsp_ptr)
{
errlHndl_t l_err = NULL;
@@ -999,13 +934,11 @@ errlHndl_t data_store_apss_config(const cmdh_fsp_cmd_t * i_cmd_ptr,
{
errlHndl_t l_err = NULL;
// Temporarly cast to version 0x10 struct just to get version number.
- cmdh_apss_config_v10_t *l_cmd_ptr = (cmdh_apss_config_v10_t *)i_cmd_ptr;
+ cmdh_apss_config_v20_t *l_cmd_ptr = (cmdh_apss_config_v20_t *)i_cmd_ptr;
uint16_t l_data_length = CMDH_DATALEN_FIELD_UINT16(l_cmd_ptr); //Command length
- uint32_t l_v00_data_sz = sizeof(cmdh_apss_config_v00_t) - sizeof(cmdh_fsp_cmd_header_t);
- uint32_t l_v10_data_sz = sizeof(cmdh_apss_config_v10_t) - sizeof(cmdh_fsp_cmd_header_t);
+ uint32_t l_v20_data_sz = sizeof(cmdh_apss_config_v20_t) - sizeof(cmdh_fsp_cmd_header_t);
- if(!( ((l_cmd_ptr->version == DATA_APSS_VERSION) && (l_v00_data_sz == l_data_length)) ||
- ((l_cmd_ptr->version == DATA_APSS_VERSION10) && (l_v10_data_sz == l_data_length)) ) )
+ if( !( (l_cmd_ptr->version == DATA_APSS_VERSION20) && (l_v20_data_sz == l_data_length) ) )
{
CMDH_TRAC_ERR("data_store_apss_config: Invalid System Data packet. Given Version:0x%X",
l_cmd_ptr->version);
@@ -1019,27 +952,11 @@ errlHndl_t data_store_apss_config(const cmdh_fsp_cmd_t * i_cmd_ptr,
* @userdata4 OCC_NO_EXTENDED_RC
* @devdesc OCC recieved an invalid data packet from the FSP
*/
- l_err = createErrl(DATA_STORE_APSS_DATA,
- INVALID_INPUT_DATA,
- OCC_NO_EXTENDED_RC,
- ERRL_SEV_UNRECOVERABLE,
- NULL,
- DEFAULT_TRACE_SIZE,
- l_data_length,
- (uint32_t)l_cmd_ptr->version);
-
- // Callout firmware
- addCalloutToErrl(l_err,
- ERRL_CALLOUT_TYPE_COMPONENT_ID,
- ERRL_COMPONENT_ID_FIRMWARE,
- ERRL_CALLOUT_PRIORITY_HIGH);
+ cmdh_build_errl_rsp(i_cmd_ptr, o_rsp_ptr, ERRL_RC_INVALID_DATA, &l_err);
}
- else if (l_cmd_ptr->version == DATA_APSS_VERSION) // Version 0
- {
- l_err = data_store_apss_config_v00((cmdh_apss_config_v00_t *)i_cmd_ptr, o_rsp_ptr);
- } else // Version 0x10
+ else // Version 0x20
{
- l_err = data_store_apss_config_v10(l_cmd_ptr, o_rsp_ptr);
+ l_err = data_store_apss_config_v20(l_cmd_ptr, o_rsp_ptr);
}
return l_err;
diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h
index 8bf9a52..7bab2ae 100755
--- a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h
+++ b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.h
@@ -120,19 +120,11 @@ typedef struct __attribute__ ((packed))
typedef struct __attribute__ ((packed))
{
uint8_t assignment;
+ uint32_t ipmisensorId;
uint8_t gnd_select;
uint32_t gain;
uint32_t offset;
-} apss_cfg_adc_v00_t; //Used by FSP
-
-typedef struct __attribute__ ((packed))
-{
- uint8_t assignment;
- uint16_t ipmisensorId;
- uint8_t gnd_select;
- uint32_t gain;
- uint32_t offset;
-} apss_cfg_adc_v10_t; //Used by Habanero
+} apss_cfg_adc_v20_t; //New for P9
// Used by TMGT to send OCC the GPIO Config Data
typedef struct __attribute__ ((packed))
@@ -149,19 +141,10 @@ typedef struct __attribute__ ((packed))
uint8_t format;
uint8_t version;
uint8_t reserved[2];
- apss_cfg_adc_v00_t adc[MAX_APSS_ADC_CHANNELS];
+ apss_cfg_adc_v20_t adc[MAX_APSS_ADC_CHANNELS];
apss_cfg_gpio_t gpio[MAX_APSS_GPIO_PORTS];
-}cmdh_apss_config_v00_t; // Used by FSP
+}cmdh_apss_config_v20_t; //New for P9
-typedef struct __attribute__ ((packed))
-{
- struct cmdh_fsp_cmd_header;
- uint8_t format;
- uint8_t version;
- uint8_t reserved[2];
- apss_cfg_adc_v10_t adc[MAX_APSS_ADC_CHANNELS];
- apss_cfg_gpio_t gpio[MAX_APSS_GPIO_PORTS];
-}cmdh_apss_config_v10_t; //Used by Habanero
// Used by TMGT to send OCC the PCAP config data.
typedef struct __attribute__ ((packed))
OpenPOWER on IntegriCloud