From 37f921ad3d6ff19eb31ad84fc8fcc08f6f597391 Mon Sep 17 00:00:00 2001 From: Hung-Yi Date: Wed, 13 Aug 2025 15:11:12 +0800 Subject: [PATCH 1/7] sb: rb: add p3v3 osfp for evb board Summary: - add asic board id identification - modify some gpio from input to output - add p3v3 osfp for evb board - add get vr fw version for raa228249 and mp2971 - modify prefix string for pdr sensor aux names - add test info shell command - add the other source for the ubc Test Plan: - Build code: Pass --- meta-facebook/sb-rb/src/platform/plat_class.c | 13 +- meta-facebook/sb-rb/src/platform/plat_class.h | 9 + meta-facebook/sb-rb/src/platform/plat_cpld.h | 1 + meta-facebook/sb-rb/src/platform/plat_gpio.c | 9 +- meta-facebook/sb-rb/src/platform/plat_hook.c | 9 +- meta-facebook/sb-rb/src/platform/plat_hook.h | 5 +- .../sb-rb/src/platform/plat_pldm_fw_update.c | 3 + .../sb-rb/src/platform/plat_pldm_sensor.c | 635 ++++++++++++++---- .../sb-rb/src/platform/plat_pldm_sensor.h | 12 +- meta-facebook/sb-rb/src/shell/shell_test.c | 36 + 10 files changed, 608 insertions(+), 124 deletions(-) diff --git a/meta-facebook/sb-rb/src/platform/plat_class.c b/meta-facebook/sb-rb/src/platform/plat_class.c index 240b79741b..7e64bdfe67 100644 --- a/meta-facebook/sb-rb/src/platform/plat_class.c +++ b/meta-facebook/sb-rb/src/platform/plat_class.c @@ -29,6 +29,7 @@ LOG_MODULE_REGISTER(plat_class); static uint8_t vr_module = 0; static uint8_t ubc_module = 0; static uint8_t mmc_slot = 0; +static uint8_t asic_board_id = 0; static bool plat_slot_read(uint8_t *data) { @@ -62,7 +63,12 @@ void init_plat_config() vr_module = (module & 0x01); ubc_module = (module >> 1) & 0x03; - change_sensor_cfg(vr_module); + change_sensor_cfg(vr_module, ubc_module); + + uint8_t board_id = 0; + plat_read_cpld(CPLD_OFFSET_ASIC_BOARD_ID, &board_id, 1); + + asic_board_id = board_id & 0x03; // cpld fru offset 0: slot plat_slot_read(&mmc_slot); @@ -81,4 +87,9 @@ uint8_t get_ubc_module() uint8_t get_mmc_slot() { return mmc_slot; +} + +uint8_t get_asic_board_id() +{ + return asic_board_id; } \ No newline at end of file diff --git a/meta-facebook/sb-rb/src/platform/plat_class.h b/meta-facebook/sb-rb/src/platform/plat_class.h index 950f5f1bf2..542f4fde7f 100644 --- a/meta-facebook/sb-rb/src/platform/plat_class.h +++ b/meta-facebook/sb-rb/src/platform/plat_class.h @@ -33,9 +33,18 @@ enum UBC_MODULE { UBC_MODULE_UNKNOWN, }; +enum ASIC_BOARD_ID { + ASIC_BOARD_ID_RSVD1, + ASIC_BOARD_ID_RSVD2, + ASIC_BOARD_ID_RAINBOW, + ASIC_BOARD_ID_EVB, + ASIC_BOARD_ID_UNKNOWN, +}; + void init_plat_config(); uint8_t get_vr_module(); uint8_t get_ubc_module(); uint8_t get_mmc_slot(); +uint8_t get_asic_board_id(); #endif diff --git a/meta-facebook/sb-rb/src/platform/plat_cpld.h b/meta-facebook/sb-rb/src/platform/plat_cpld.h index e09044049e..7a23abbae8 100644 --- a/meta-facebook/sb-rb/src/platform/plat_cpld.h +++ b/meta-facebook/sb-rb/src/platform/plat_cpld.h @@ -24,6 +24,7 @@ #define CPLD_OFFSET_VR_VENDER_TYPE 0x15 #define CPLD_OFFSET_POWER_CLAMP 0x25 #define CPLD_OFFSET_USERCODE 0x32 +#define CPLD_OFFSET_ASIC_BOARD_ID 0x3C typedef struct _cpld_info_ cpld_info; diff --git a/meta-facebook/sb-rb/src/platform/plat_gpio.c b/meta-facebook/sb-rb/src/platform/plat_gpio.c index f2f9f40954..51cf3d5579 100644 --- a/meta-facebook/sb-rb/src/platform/plat_gpio.c +++ b/meta-facebook/sb-rb/src/platform/plat_gpio.c @@ -133,8 +133,10 @@ GPIO_CFG plat_gpio_cfg[] = { NULL }, { CHIP_GPIO, 50, ENABLE, DISABLE, GPIO_OUTPUT, GPIO_LOW, PUSH_PULL, GPIO_INT_DISABLE, NULL }, - { CHIP_GPIO, 51, ENABLE, DISABLE, GPIO_INPUT, GPIO_LOW, PUSH_PULL, GPIO_INT_DISABLE, NULL }, - { CHIP_GPIO, 52, ENABLE, DISABLE, GPIO_INPUT, GPIO_LOW, PUSH_PULL, GPIO_INT_DISABLE, NULL }, + { CHIP_GPIO, 51, ENABLE, DISABLE, GPIO_OUTPUT, GPIO_LOW, PUSH_PULL, GPIO_INT_DISABLE, + NULL }, + { CHIP_GPIO, 52, ENABLE, DISABLE, GPIO_OUTPUT, GPIO_LOW, PUSH_PULL, GPIO_INT_DISABLE, + NULL }, { CHIP_GPIO, 53, DISABLE, DISABLE, GPIO_INPUT, GPIO_LOW, PUSH_PULL, GPIO_INT_DISABLE, NULL }, { CHIP_GPIO, 54, DISABLE, DISABLE, GPIO_INPUT, GPIO_LOW, PUSH_PULL, GPIO_INT_DISABLE, @@ -144,7 +146,8 @@ GPIO_CFG plat_gpio_cfg[] = { // GPIO 7 group { CHIP_GPIO, 56, DISABLE, DISABLE, GPIO_INPUT, GPIO_LOW, PUSH_PULL, GPIO_INT_DISABLE, NULL }, - { CHIP_GPIO, 57, ENABLE, DISABLE, GPIO_INPUT, GPIO_LOW, PUSH_PULL, GPIO_INT_DISABLE, NULL }, + { CHIP_GPIO, 57, ENABLE, DISABLE, GPIO_OUTPUT, GPIO_LOW, PUSH_PULL, GPIO_INT_DISABLE, + NULL }, { CHIP_GPIO, 58, DISABLE, DISABLE, GPIO_INPUT, GPIO_LOW, PUSH_PULL, GPIO_INT_DISABLE, NULL }, { CHIP_GPIO, 59, DISABLE, DISABLE, GPIO_INPUT, GPIO_LOW, PUSH_PULL, GPIO_INT_DISABLE, diff --git a/meta-facebook/sb-rb/src/platform/plat_hook.c b/meta-facebook/sb-rb/src/platform/plat_hook.c index 77bb62d88a..09bf85a890 100644 --- a/meta-facebook/sb-rb/src/platform/plat_hook.c +++ b/meta-facebook/sb-rb/src/platform/plat_hook.c @@ -28,9 +28,7 @@ LOG_MODULE_REGISTER(plat_hook); -static struct k_mutex vr_mutex[VR_MAX_NUM]; - -#define EEPROM_MAX_WRITE_TIME 5 // the BR24G512 eeprom max write time is 3.5 ms +static struct k_mutex vr_mutex[VR_INDEX_MAX]; vr_pre_proc_arg vr_pre_read_args[] = { { .mutex = vr_mutex + 0, .vr_page = 0x0 }, { .mutex = vr_mutex + 0, .vr_page = 0x1 }, @@ -45,6 +43,11 @@ vr_pre_proc_arg vr_pre_read_args[] = { { .mutex = vr_mutex + 9, .vr_page = 0x0 }, { .mutex = vr_mutex + 9, .vr_page = 0x1 }, { .mutex = vr_mutex + 10, .vr_page = 0x0 }, { .mutex = vr_mutex + 10, .vr_page = 0x1 }, { .mutex = vr_mutex + 11, .vr_page = 0x0 }, { .mutex = vr_mutex + 11, .vr_page = 0x1 }, + { .mutex = vr_mutex + 12, .vr_page = 0x0 }, { .mutex = vr_mutex + 12, .vr_page = 0x1 }, +}; + +mp2971_init_arg mp2971_init_args[] = { + [0] = { .vout_scale_enable = true }, }; void *vr_mutex_get(enum VR_INDEX_E vr_index) diff --git a/meta-facebook/sb-rb/src/platform/plat_hook.h b/meta-facebook/sb-rb/src/platform/plat_hook.h index 31993136b9..776e331a8b 100644 --- a/meta-facebook/sb-rb/src/platform/plat_hook.h +++ b/meta-facebook/sb-rb/src/platform/plat_hook.h @@ -18,11 +18,11 @@ #define PLAT_HOOK_H #include "sensor.h" +#include "plat_pldm_sensor.h" -#define VR_MAX_NUM 12 #define VR_MUTEX_LOCK_TIMEOUT_MS 1000 -#include "plat_pldm_sensor.h" +extern mp2971_init_arg mp2971_init_args[]; enum VR_INDEX_E { VR_INDEX_E_1 = 0, @@ -37,6 +37,7 @@ enum VR_INDEX_E { VR_INDEX_E_10, VR_INDEX_E_11, VR_INDEX_E_12, + VR_INDEX_E_13, // P3V3 OSFP VR_INDEX_MAX, }; diff --git a/meta-facebook/sb-rb/src/platform/plat_pldm_fw_update.c b/meta-facebook/sb-rb/src/platform/plat_pldm_fw_update.c index 3a69da6126..68809aa5ea 100644 --- a/meta-facebook/sb-rb/src/platform/plat_pldm_fw_update.c +++ b/meta-facebook/sb-rb/src/platform/plat_pldm_fw_update.c @@ -329,6 +329,9 @@ static bool get_vr_fw_version(void *info_p, uint8_t *buf, uint8_t *len) if (cfg->type == sensor_dev_mp2891 || cfg->type == sensor_dev_mp29816a) { *len += bin2hex((uint8_t *)&version, 2, buf_p, 4); buf_p += 4; + } else if (cfg->type == sensor_dev_raa228249 || cfg->type == sensor_dev_mp2971) { + *len += bin2hex((uint8_t *)&version, 4, buf_p, 8); + buf_p += 8; } else { LOG_ERR("Unsupport VR type(%d)", cfg->type); } diff --git a/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c b/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c index c68309f004..4ccc0f4255 100644 --- a/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c +++ b/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c @@ -36,6 +36,7 @@ static struct pldm_sensor_thread pal_pldm_sensor_thread[MAX_SENSOR_THREAD_ID] = { VR_SENSOR_THREAD_ID, "VR_PLDM_SENSOR_THREAD" }, { QUICK_VR_SENSOR_THREAD_ID, "QUICK_VR_PLDM_SENSOR_THREAD", 10 }, { UBC_SENSOR_THREAD_ID, "UBC_PLDM_SENSOR_THREAD" }, + { EVB_SENSOR_THREAD_ID, "EVB_SENSOR_THREAD" }, }; extern vr_pre_proc_arg vr_pre_read_args[]; @@ -112,6 +113,9 @@ uint8_t check_sensor_type(uint8_t sensor_num) if (sensor_num <= SENSOR_NUM_UBC2_P52V_INPUT_VOLT_V) return UBC_SENSOR_THREAD_ID; + if (sensor_num <= SENSOR_NUM_P3V3_OSFP_PWR_W) + return EVB_SENSOR_THREAD_ID; + return MAX_SENSOR_THREAD_ID; } @@ -7891,6 +7895,299 @@ pldm_sensor_info plat_pldm_sensor_ubc_table[] = { }, }; +pldm_sensor_info plat_pldm_sensor_evb_table[] = { + { + { + // P3V3_OSFP_TEMP_C + /*** PDR common header***/ + { + 0x00000000, //uint32_t record_handle + 0x01, //uint8_t PDR_header_version + PLDM_NUMERIC_SENSOR_PDR, //uint8_t PDR_type + 0x0000, //uint16_t record_change_number + 0x0000, //uint16_t data_length + }, + + /***numeric sensor format***/ + 0x0000, //uint16_t PLDM_terminus_handle; + SENSOR_NUM_P3V3_OSFP_TEMP_C, //uint16_t sensor_id; + 0x0000, //uint16_t entity_type; //Need to check + SENSOR_NUM_P3V3_OSFP_TEMP_C, //uint16_t entity_instance_number; + 0x0000, //uint16_t container_id; + 0x00, //uint8_t sensor_init; //Need to check + 0x01, //uint8_t sensor_auxiliary_names_pdr; + 0x02, //uint8_t base_unit; //unit + -3, //int8_t unit_modifier; //Need to check + 0x00, //uint8_t rate_unit; + 0x00, //uint8_t base_oem_unit_handle; + 0x00, //uint8_t aux_unit; + 0x00, //int8_t aux_unit_modifier; + 0x00, //uint8_t auxrate_unit; + 0x00, //uint8_t rel; + 0x00, //uint8_t aux_oem_unit_handle; + 0x00, //uint8_t is_linear; + 0x4, //uint8_t sensor_data_size; + 1, //real32_t resolution; + 0, //real32_t offset; + 0x0000, //uint16_t accuracy; + 0x00, //uint8_t plus_tolerance; + 0x00, //uint8_t minus_tolerance; + 0x00000000, //uint32_t hysteresis; + UP_THRESHOLD_CRIT | LOW_THRESHOLD_CRIT, //uint8_t supported_thresholds; + 0x00, //uint8_t threshold_and_hysteresis_volatility; + 0, //real32_t state_transition_interval; + UPDATE_INTERVAL_1S, //real32_t update_interval; + 0x00000000, //uint32_t max_readable; //Need to check + 0x00000000, //uint32_t min_readable; + 0x04, //uint8_t range_field_format; + 0x00, //uint8_t range_field_support; //Need to check + 0x00000000, //uint32_t nominal_value; + 0x00000000, //uint32_t normal_max; + 0x00000000, //uint32_t normal_min; + 0, //uint32_t warning_high; + 0, //uint32_t warning_low; + 100000, //uint32_t critical_high; + 5000, //uint32_t critical_low; + 0, //uint32_t fatal_high; + 0, //uint32_t fatal_low; + }, + .update_time = 0, + { + .num = SENSOR_NUM_P3V3_OSFP_TEMP_C, + .type = sensor_dev_mp2971, + .port = I2C_BUS1, + .target_addr = P3V3_OSFP_ADDR, + .offset = PMBUS_READ_TEMPERATURE_1, + .access_checker = is_vr_access, + .sample_count = SAMPLE_COUNT_DEFAULT, + .cache = 0, + .cache_status = PLDM_SENSOR_INITIALIZING, + .pre_sensor_read_hook = pre_vr_read, + .pre_sensor_read_args = &vr_pre_read_args[VR_INDEX_E_13 * 2], + .post_sensor_read_hook = post_vr_read, + .post_sensor_read_args = &vr_pre_read_args[VR_INDEX_E_13 * 2], + }, + }, + { + { + // P3V3_OSFP_VOLT_V + /*** PDR common header***/ + { + 0x00000000, //uint32_t record_handle + 0x01, //uint8_t PDR_header_version + PLDM_NUMERIC_SENSOR_PDR, //uint8_t PDR_type + 0x0000, //uint16_t record_change_number + 0x0000, //uint16_t data_length + }, + + /***numeric sensor format***/ + 0x0000, //uint16_t PLDM_terminus_handle; + SENSOR_NUM_P3V3_OSFP_VOLT_V, //uint16_t sensor_id; + 0x0000, //uint16_t entity_type; //Need to check + SENSOR_NUM_P3V3_OSFP_VOLT_V, //uint16_t entity_instance_number; + 0x0000, //uint16_t container_id; + 0x00, //uint8_t sensor_init; //Need to check + 0x01, //uint8_t sensor_auxiliary_names_pdr; + 0x05, //uint8_t base_unit; //unit + -3, //int8_t unit_modifier; //Need to check + 0x00, //uint8_t rate_unit; + 0x00, //uint8_t base_oem_unit_handle; + 0x00, //uint8_t aux_unit; + 0x00, //int8_t aux_unit_modifier; + 0x00, //uint8_t auxrate_unit; + 0x00, //uint8_t rel; + 0x00, //uint8_t aux_oem_unit_handle; + 0x00, //uint8_t is_linear; + 0x4, //uint8_t sensor_data_size; + 1, //real32_t resolution; + 0, //real32_t offset; + 0x0000, //uint16_t accuracy; + 0x00, //uint8_t plus_tolerance; + 0x00, //uint8_t minus_tolerance; + 0x00000000, //uint32_t hysteresis; + UP_THRESHOLD_CRIT | LOW_THRESHOLD_CRIT, //uint8_t supported_thresholds; + 0x00, //uint8_t threshold_and_hysteresis_volatility; + 0, //real32_t state_transition_interval; + UPDATE_INTERVAL_1S, //real32_t update_interval; + 0x00000000, //uint32_t max_readable; //Need to check + 0x00000000, //uint32_t min_readable; + 0x04, //uint8_t range_field_format; + 0x00, //uint8_t range_field_support; //Need to check + 0x00000000, //uint32_t nominal_value; + 0x00000000, //uint32_t normal_max; + 0x00000000, //uint32_t normal_min; + 0, //uint32_t warning_high; + 0, //uint32_t warning_low; + 3571, //uint32_t critical_high; + 3041, //uint32_t critical_low; + 0, //uint32_t fatal_high; + 0, //uint32_t fatal_low; + }, + .update_time = 0, + { + .num = SENSOR_NUM_P3V3_OSFP_VOLT_V, + .type = sensor_dev_mp2971, + .port = I2C_BUS1, + .target_addr = P3V3_OSFP_ADDR, + .offset = PMBUS_READ_VOUT, + .access_checker = is_vr_access, + .sample_count = SAMPLE_COUNT_DEFAULT, + .cache = 0, + .cache_status = PLDM_SENSOR_INITIALIZING, + .pre_sensor_read_hook = pre_vr_read, + .pre_sensor_read_args = &vr_pre_read_args[VR_INDEX_E_13 * 2], + .post_sensor_read_hook = post_vr_read, + .post_sensor_read_args = &vr_pre_read_args[VR_INDEX_E_13 * 2], + .init_args = &mp2971_init_args[0], + }, + }, + { + { + // P3V3_OSFP_CURR_A + /*** PDR common header***/ + { + 0x00000000, //uint32_t record_handle + 0x01, //uint8_t PDR_header_version + PLDM_NUMERIC_SENSOR_PDR, //uint8_t PDR_type + 0x0000, //uint16_t record_change_number + 0x0000, //uint16_t data_length + }, + + /***numeric sensor format***/ + 0x0000, //uint16_t PLDM_terminus_handle; + SENSOR_NUM_P3V3_OSFP_CURR_A, //uint16_t sensor_id; + 0x0000, //uint16_t entity_type; //Need to check + SENSOR_NUM_P3V3_OSFP_CURR_A, //uint16_t entity_instance_number; + 0x0000, //uint16_t container_id; + 0x00, //uint8_t sensor_init; //Need to check + 0x01, //uint8_t sensor_auxiliary_names_pdr; + 0x06, //uint8_t base_unit; //unit + -3, //int8_t unit_modifier; //Need to check + 0x00, //uint8_t rate_unit; + 0x00, //uint8_t base_oem_unit_handle; + 0x00, //uint8_t aux_unit; + 0x00, //int8_t aux_unit_modifier; + 0x00, //uint8_t auxrate_unit; + 0x00, //uint8_t rel; + 0x00, //uint8_t aux_oem_unit_handle; + 0x00, //uint8_t is_linear; + 0x4, //uint8_t sensor_data_size; + 1, //real32_t resolution; + 0, //real32_t offset; + 0x0000, //uint16_t accuracy; + 0x00, //uint8_t plus_tolerance; + 0x00, //uint8_t minus_tolerance; + 0x00000000, //uint32_t hysteresis; + 0, //uint8_t supported_thresholds; + 0x00, //uint8_t threshold_and_hysteresis_volatility; + 0, //real32_t state_transition_interval; + UPDATE_INTERVAL_1S, //real32_t update_interval; + 0x00000000, //uint32_t max_readable; //Need to check + 0x00000000, //uint32_t min_readable; + 0x04, //uint8_t range_field_format; + 0x00, //uint8_t range_field_support; //Need to check + 0x00000000, //uint32_t nominal_value; + 0x00000000, //uint32_t normal_max; + 0x00000000, //uint32_t normal_min; + 0, //uint32_t warning_high; + 0, //uint32_t warning_low; + 0, //uint32_t critical_high; + 0, //uint32_t critical_low; + 0, //uint32_t fatal_high; + 0, //uint32_t fatal_low; + }, + .update_time = 0, + { + .num = SENSOR_NUM_P3V3_OSFP_CURR_A, + .type = sensor_dev_mp2971, + .port = I2C_BUS1, + .target_addr = P3V3_OSFP_ADDR, + .offset = PMBUS_READ_IOUT, + .access_checker = is_vr_access, + .sample_count = SAMPLE_COUNT_DEFAULT, + .cache = 0, + .cache_status = PLDM_SENSOR_INITIALIZING, + .pre_sensor_read_hook = pre_vr_read, + .pre_sensor_read_args = &vr_pre_read_args[VR_INDEX_E_13 * 2], + .post_sensor_read_hook = post_vr_read, + .post_sensor_read_args = &vr_pre_read_args[VR_INDEX_E_13 * 2], + }, + }, + { + { + // P3V3_OSFP_PWR_W + /*** PDR common header***/ + { + 0x00000000, //uint32_t record_handle + 0x01, //uint8_t PDR_header_version + PLDM_NUMERIC_SENSOR_PDR, //uint8_t PDR_type + 0x0000, //uint16_t record_change_number + 0x0000, //uint16_t data_length + }, + + /***numeric sensor format***/ + 0x0000, //uint16_t PLDM_terminus_handle; + SENSOR_NUM_P3V3_OSFP_PWR_W, //uint16_t sensor_id; + 0x0000, //uint16_t entity_type; //Need to check + SENSOR_NUM_P3V3_OSFP_PWR_W, //uint16_t entity_instance_number; + 0x0000, //uint16_t container_id; + 0x00, //uint8_t sensor_init; //Need to check + 0x01, //uint8_t sensor_auxiliary_names_pdr; + 0x07, //uint8_t base_unit; //unit + -3, //int8_t unit_modifier; //Need to check + 0x00, //uint8_t rate_unit; + 0x00, //uint8_t base_oem_unit_handle; + 0x00, //uint8_t aux_unit; + 0x00, //int8_t aux_unit_modifier; + 0x00, //uint8_t auxrate_unit; + 0x00, //uint8_t rel; + 0x00, //uint8_t aux_oem_unit_handle; + 0x00, //uint8_t is_linear; + 0x4, //uint8_t sensor_data_size; + 1, //real32_t resolution; + 0, //real32_t offset; + 0x0000, //uint16_t accuracy; + 0x00, //uint8_t plus_tolerance; + 0x00, //uint8_t minus_tolerance; + 0x00000000, //uint32_t hysteresis; + 0, //uint8_t supported_thresholds; + 0x00, //uint8_t threshold_and_hysteresis_volatility; + 0, //real32_t state_transition_interval; + UPDATE_INTERVAL_1S, //real32_t update_interval; + 0x00000000, //uint32_t max_readable; //Need to check + 0x00000000, //uint32_t min_readable; + 0x04, //uint8_t range_field_format; + 0x00, //uint8_t range_field_support; //Need to check + 0x00000000, //uint32_t nominal_value; + 0x00000000, //uint32_t normal_max; + 0x00000000, //uint32_t normal_min; + 0, //uint32_t warning_high; + 0, //uint32_t warning_low; + 0, //uint32_t critical_high; + 0, //uint32_t critical_low; + 0, //uint32_t fatal_high; + 0, //uint32_t fatal_low; + }, + .update_time = 0, + { + .num = SENSOR_NUM_P3V3_OSFP_PWR_W, + .type = sensor_dev_mp2971, + .port = I2C_BUS1, + .target_addr = P3V3_OSFP_ADDR, + .offset = PMBUS_READ_POUT, + .access_checker = is_vr_access, + .sample_count = SAMPLE_COUNT_DEFAULT, + .cache = 0, + .cache_status = PLDM_SENSOR_INITIALIZING, + .pre_sensor_read_hook = pre_vr_read, + .pre_sensor_read_args = &vr_pre_read_args[VR_INDEX_E_13 * 2], + .post_sensor_read_hook = post_vr_read, + .post_sensor_read_args = &vr_pre_read_args[VR_INDEX_E_13 * 2], + .init_args = &mp2971_init_args[0], + }, + }, +}; + PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { { { @@ -7905,7 +8202,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_TOP_INLET_TEMP_C", + .sensorName = u"TOP_INLET_TEMP_C", }, { { @@ -7920,7 +8217,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_BOT_INLET_TEMP_C", + .sensorName = u"BOT_INLET_TEMP_C", }, { { @@ -7935,7 +8232,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_BOT_OUTLET_TEMP_C", + .sensorName = u"BOT_OUTLET_TEMP_C", }, { { @@ -7950,7 +8247,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_MEDHA0_SENSOR0_TEMP_C", + .sensorName = u"ASIC_MEDHA0_SENSOR0_TEMP_C", }, { { @@ -7965,7 +8262,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_MEDHA0_SENSOR1_TEMP_C", + .sensorName = u"ASIC_MEDHA0_SENSOR1_TEMP_C", }, { { @@ -7980,7 +8277,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_OWL_W_TEMP_C", + .sensorName = u"ASIC_OWL_W_TEMP_C", }, { { @@ -7995,7 +8292,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_OWL_E_TEMP_C", + .sensorName = u"ASIC_OWL_E_TEMP_C", }, { { @@ -8010,7 +8307,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_MEDHA1_SENSOR0_TEMP_C", + .sensorName = u"ASIC_MEDHA1_SENSOR0_TEMP_C", }, { { @@ -8025,7 +8322,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_MEDHA1_SENSOR1_TEMP_C", + .sensorName = u"ASIC_MEDHA1_SENSOR1_TEMP_C", }, { { @@ -8040,7 +8337,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_HAMSA_CRM_TEMP_C", + .sensorName = u"ASIC_HAMSA_CRM_TEMP_C", }, { { @@ -8055,7 +8352,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_HAMSA_LS_TEMP_C", + .sensorName = u"ASIC_HAMSA_LS_TEMP_C", }, { { @@ -8070,7 +8367,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V85_MEDHA0_VDD_TEMP_C", + .sensorName = u"ASIC_P0V85_MEDHA0_VDD_TEMP_C", }, { { @@ -8085,7 +8382,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V85_MEDHA0_VDD_VOLT_V", + .sensorName = u"ASIC_P0V85_MEDHA0_VDD_VOLT_V", }, { { @@ -8100,7 +8397,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V85_MEDHA0_VDD_CURR_A", + .sensorName = u"ASIC_P0V85_MEDHA0_VDD_CURR_A", }, { { @@ -8115,7 +8412,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V85_MEDHA0_VDD_PWR_W", + .sensorName = u"ASIC_P0V85_MEDHA0_VDD_PWR_W", }, { { @@ -8130,7 +8427,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V85_MEDHA1_VDD_TEMP_C", + .sensorName = u"ASIC_P0V85_MEDHA1_VDD_TEMP_C", }, { { @@ -8145,7 +8442,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V85_MEDHA1_VDD_VOLT_V", + .sensorName = u"ASIC_P0V85_MEDHA1_VDD_VOLT_V", }, { { @@ -8160,7 +8457,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V85_MEDHA1_VDD_CURR_A", + .sensorName = u"ASIC_P0V85_MEDHA1_VDD_CURR_A", }, { { @@ -8175,7 +8472,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V85_MEDHA1_VDD_PWR_W", + .sensorName = u"ASIC_P0V85_MEDHA1_VDD_PWR_W", }, { { @@ -8190,7 +8487,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V9_OWL_E_TRVDD_TEMP_C", + .sensorName = u"ASIC_P0V9_OWL_E_TRVDD_TEMP_C", }, { { @@ -8205,7 +8502,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V9_OWL_E_TRVDD_VOLT_V", + .sensorName = u"ASIC_P0V9_OWL_E_TRVDD_VOLT_V", }, { { @@ -8220,7 +8517,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V9_OWL_E_TRVDD_CURR_A", + .sensorName = u"ASIC_P0V9_OWL_E_TRVDD_CURR_A", }, { { @@ -8235,7 +8532,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V9_OWL_E_TRVDD_PWR_W", + .sensorName = u"ASIC_P0V9_OWL_E_TRVDD_PWR_W", }, { { @@ -8250,7 +8547,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_E_TRVDD_TEMP_C", + .sensorName = u"ASIC_P0V75_OWL_E_TRVDD_TEMP_C", }, { { @@ -8265,7 +8562,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_E_TRVDD_VOLT_V", + .sensorName = u"ASIC_P0V75_OWL_E_TRVDD_VOLT_V", }, { { @@ -8280,7 +8577,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_E_TRVDD_CURR_A", + .sensorName = u"ASIC_P0V75_OWL_E_TRVDD_CURR_A", }, { { @@ -8295,7 +8592,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_E_TRVDD_PWR_W", + .sensorName = u"ASIC_P0V75_OWL_E_TRVDD_PWR_W", }, { { @@ -8310,7 +8607,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_E_VDD_TEMP_C", + .sensorName = u"ASIC_P0V75_OWL_E_VDD_TEMP_C", }, { { @@ -8325,7 +8622,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_E_VDD_VOLT_V", + .sensorName = u"ASIC_P0V75_OWL_E_VDD_VOLT_V", }, { { @@ -8340,7 +8637,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_E_VDD_CURR_A", + .sensorName = u"ASIC_P0V75_OWL_E_VDD_CURR_A", }, { { @@ -8355,7 +8652,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_E_VDD_PWR_W", + .sensorName = u"ASIC_P0V75_OWL_E_VDD_PWR_W", }, { { @@ -8370,7 +8667,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V9_OWL_W_TRVDD_TEMP_C", + .sensorName = u"ASIC_P0V9_OWL_W_TRVDD_TEMP_C", }, { { @@ -8385,7 +8682,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V9_OWL_W_TRVDD_VOLT_V", + .sensorName = u"ASIC_P0V9_OWL_W_TRVDD_VOLT_V", }, { { @@ -8400,7 +8697,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V9_OWL_W_TRVDD_CURR_A", + .sensorName = u"ASIC_P0V9_OWL_W_TRVDD_CURR_A", }, { { @@ -8415,7 +8712,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V9_OWL_W_TRVDD_PWR_W", + .sensorName = u"ASIC_P0V9_OWL_W_TRVDD_PWR_W", }, { { @@ -8430,7 +8727,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_W_TRVDD_TEMP_C", + .sensorName = u"ASIC_P0V75_OWL_W_TRVDD_TEMP_C", }, { { @@ -8445,7 +8742,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_W_TRVDD_VOLT_V", + .sensorName = u"ASIC_P0V75_OWL_W_TRVDD_VOLT_V", }, { { @@ -8460,7 +8757,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_W_TRVDD_CURR_A", + .sensorName = u"ASIC_P0V75_OWL_W_TRVDD_CURR_A", }, { { @@ -8475,7 +8772,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_W_TRVDD_PWR_W", + .sensorName = u"ASIC_P0V75_OWL_W_TRVDD_PWR_W", }, { { @@ -8490,7 +8787,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_W_VDD_TEMP_C", + .sensorName = u"ASIC_P0V75_OWL_W_VDD_TEMP_C", }, { { @@ -8505,7 +8802,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_W_VDD_VOLT_V", + .sensorName = u"ASIC_P0V75_OWL_W_VDD_VOLT_V", }, { { @@ -8520,7 +8817,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_W_VDD_CURR_A", + .sensorName = u"ASIC_P0V75_OWL_W_VDD_CURR_A", }, { { @@ -8535,7 +8832,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_OWL_W_VDD_PWR_W", + .sensorName = u"ASIC_P0V75_OWL_W_VDD_PWR_W", }, { { @@ -8550,7 +8847,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_MAX_M_VDD_TEMP_C", + .sensorName = u"ASIC_P0V75_MAX_M_VDD_TEMP_C", }, { { @@ -8565,7 +8862,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_MAX_M_VDD_VOLT_V", + .sensorName = u"ASIC_P0V75_MAX_M_VDD_VOLT_V", }, { { @@ -8580,7 +8877,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_MAX_M_VDD_CURR_A", + .sensorName = u"ASIC_P0V75_MAX_M_VDD_CURR_A", }, { { @@ -8595,7 +8892,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_MAX_M_VDD_PWR_W", + .sensorName = u"ASIC_P0V75_MAX_M_VDD_PWR_W", }, { { @@ -8610,7 +8907,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_MAX_N_VDD_TEMP_C", + .sensorName = u"ASIC_P0V75_MAX_N_VDD_TEMP_C", }, { { @@ -8625,7 +8922,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_MAX_N_VDD_VOLT_V", + .sensorName = u"ASIC_P0V75_MAX_N_VDD_VOLT_V", }, { { @@ -8640,7 +8937,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_MAX_N_VDD_CURR_A", + .sensorName = u"ASIC_P0V75_MAX_N_VDD_CURR_A", }, { { @@ -8655,7 +8952,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_MAX_N_VDD_PWR_W", + .sensorName = u"ASIC_P0V75_MAX_N_VDD_PWR_W", }, { { @@ -8670,7 +8967,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_MAX_S_VDD_TEMP_C", + .sensorName = u"ASIC_P0V75_MAX_S_VDD_TEMP_C", }, { { @@ -8685,7 +8982,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_MAX_S_VDD_VOLT_V", + .sensorName = u"ASIC_P0V75_MAX_S_VDD_VOLT_V", }, { { @@ -8700,7 +8997,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_MAX_S_VDD_CURR_A", + .sensorName = u"ASIC_P0V75_MAX_S_VDD_CURR_A", }, { { @@ -8715,7 +9012,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_MAX_S_VDD_PWR_W", + .sensorName = u"ASIC_P0V75_MAX_S_VDD_PWR_W", }, { { @@ -8730,7 +9027,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V8_HAMSA_AVDD_PCIE_TEMP_C", + .sensorName = u"ASIC_P0V8_HAMSA_AVDD_PCIE_TEMP_C", }, { { @@ -8745,7 +9042,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V8_HAMSA_AVDD_PCIE_VOLT_V", + .sensorName = u"ASIC_P0V8_HAMSA_AVDD_PCIE_VOLT_V", }, { { @@ -8760,7 +9057,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V8_HAMSA_AVDD_PCIE_CURR_A", + .sensorName = u"ASIC_P0V8_HAMSA_AVDD_PCIE_CURR_A", }, { { @@ -8775,7 +9072,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V8_HAMSA_AVDD_PCIE_PWR_W", + .sensorName = u"ASIC_P0V8_HAMSA_AVDD_PCIE_PWR_W", }, { { @@ -8790,7 +9087,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V2_HAMSA_VDDHRXTX_PCIE_TEMP_C", + .sensorName = u"ASIC_P1V2_HAMSA_VDDHRXTX_PCIE_TEMP_C", }, { { @@ -8805,7 +9102,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V2_HAMSA_VDDHRXTX_PCIE_VOLT_V", + .sensorName = u"ASIC_P1V2_HAMSA_VDDHRXTX_PCIE_VOLT_V", }, { { @@ -8820,7 +9117,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V2_HAMSA_VDDHRXTX_PCIE_CURR_A", + .sensorName = u"ASIC_P1V2_HAMSA_VDDHRXTX_PCIE_CURR_A", }, { { @@ -8835,7 +9132,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V2_HAMSA_VDDHRXTX_PCIE_PWR_W", + .sensorName = u"ASIC_P1V2_HAMSA_VDDHRXTX_PCIE_PWR_W", }, { { @@ -8850,7 +9147,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V85_HAMSA_VDD_TEMP_C", + .sensorName = u"ASIC_P0V85_HAMSA_VDD_TEMP_C", }, { { @@ -8865,7 +9162,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V85_HAMSA_VDD_VOLT_V", + .sensorName = u"ASIC_P0V85_HAMSA_VDD_VOLT_V", }, { { @@ -8880,7 +9177,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V85_HAMSA_VDD_CURR_A", + .sensorName = u"ASIC_P0V85_HAMSA_VDD_CURR_A", }, { { @@ -8895,7 +9192,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V85_HAMSA_VDD_PWR_W", + .sensorName = u"ASIC_P0V85_HAMSA_VDD_PWR_W", }, { { @@ -8910,7 +9207,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM0246_TEMP_C", + .sensorName = u"ASIC_P0V75_VDDPHY_HBM0246_TEMP_C", }, { { @@ -8925,7 +9222,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM0246_VOLT_V", + .sensorName = u"ASIC_P0V75_VDDPHY_HBM0246_VOLT_V", }, { { @@ -8940,7 +9237,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM0246_CURR_A", + .sensorName = u"ASIC_P0V75_VDDPHY_HBM0246_CURR_A", }, { { @@ -8955,7 +9252,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM0246_PWR_W", + .sensorName = u"ASIC_P0V75_VDDPHY_HBM0246_PWR_W", }, { { @@ -8970,7 +9267,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V4_VDDQL_HBM0246_TEMP_C", + .sensorName = u"ASIC_P0V4_VDDQL_HBM0246_TEMP_C", }, { { @@ -8985,7 +9282,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V4_VDDQL_HBM0246_VOLT_V", + .sensorName = u"ASIC_P0V4_VDDQL_HBM0246_VOLT_V", }, { { @@ -9000,7 +9297,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V4_VDDQL_HBM0246_CURR_A", + .sensorName = u"ASIC_P0V4_VDDQL_HBM0246_CURR_A", }, { { @@ -9015,7 +9312,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V4_VDDQL_HBM0246_PWR_W", + .sensorName = u"ASIC_P0V4_VDDQL_HBM0246_PWR_W", }, { { @@ -9030,7 +9327,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V1_VDDQC_HBM0246_TEMP_C", + .sensorName = u"ASIC_P1V1_VDDQC_HBM0246_TEMP_C", }, { { @@ -9045,7 +9342,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V1_VDDQC_HBM0246_VOLT_V", + .sensorName = u"ASIC_P1V1_VDDQC_HBM0246_VOLT_V", }, { { @@ -9060,7 +9357,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V1_VDDQC_HBM0246_CURR_A", + .sensorName = u"ASIC_P1V1_VDDQC_HBM0246_CURR_A", }, { { @@ -9075,7 +9372,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V1_VDDQC_HBM0246_PWR_W", + .sensorName = u"ASIC_P1V1_VDDQC_HBM0246_PWR_W", }, { { @@ -9090,7 +9387,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V8_VPP_HBM0246_TEMP_C", + .sensorName = u"ASIC_P1V8_VPP_HBM0246_TEMP_C", }, { { @@ -9105,7 +9402,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V8_VPP_HBM0246_VOLT_V", + .sensorName = u"ASIC_P1V8_VPP_HBM0246_VOLT_V", }, { { @@ -9120,7 +9417,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V8_VPP_HBM0246_CURR_A", + .sensorName = u"ASIC_P1V8_VPP_HBM0246_CURR_A", }, { { @@ -9135,7 +9432,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V8_VPP_HBM0246_PWR_W", + .sensorName = u"ASIC_P1V8_VPP_HBM0246_PWR_W", }, { { @@ -9150,7 +9447,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM1357_TEMP_C", + .sensorName = u"ASIC_P0V75_VDDPHY_HBM1357_TEMP_C", }, { { @@ -9165,7 +9462,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM1357_VOLT_V", + .sensorName = u"ASIC_P0V75_VDDPHY_HBM1357_VOLT_V", }, { { @@ -9180,7 +9477,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM1357_CURR_A", + .sensorName = u"ASIC_P0V75_VDDPHY_HBM1357_CURR_A", }, { { @@ -9195,7 +9492,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V75_VDDPHY_HBM1357_PWR_W", + .sensorName = u"ASIC_P0V75_VDDPHY_HBM1357_PWR_W", }, { { @@ -9210,7 +9507,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V4_VDDQL_HBM1357_TEMP_C", + .sensorName = u"ASIC_P0V4_VDDQL_HBM1357_TEMP_C", }, { { @@ -9225,7 +9522,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V4_VDDQL_HBM1357_VOLT_V", + .sensorName = u"ASIC_P0V4_VDDQL_HBM1357_VOLT_V", }, { { @@ -9240,7 +9537,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V4_VDDQL_HBM1357_CURR_A", + .sensorName = u"ASIC_P0V4_VDDQL_HBM1357_CURR_A", }, { { @@ -9255,7 +9552,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P0V4_VDDQL_HBM1357_PWR_W", + .sensorName = u"ASIC_P0V4_VDDQL_HBM1357_PWR_W", }, { { @@ -9270,7 +9567,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V1_VDDQC_HBM1357_TEMP_C", + .sensorName = u"ASIC_P1V1_VDDQC_HBM1357_TEMP_C", }, { { @@ -9285,7 +9582,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V1_VDDQC_HBM1357_VOLT_V", + .sensorName = u"ASIC_P1V1_VDDQC_HBM1357_VOLT_V", }, { { @@ -9300,7 +9597,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V1_VDDQC_HBM1357_CURR_A", + .sensorName = u"ASIC_P1V1_VDDQC_HBM1357_CURR_A", }, { { @@ -9315,7 +9612,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V1_VDDQC_HBM1357_PWR_W", + .sensorName = u"ASIC_P1V1_VDDQC_HBM1357_PWR_W", }, { { @@ -9330,7 +9627,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V8_VPP_HBM1357_TEMP_C", + .sensorName = u"ASIC_P1V8_VPP_HBM1357_TEMP_C", }, { { @@ -9345,7 +9642,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V8_VPP_HBM1357_VOLT_V", + .sensorName = u"ASIC_P1V8_VPP_HBM1357_VOLT_V", }, { { @@ -9360,7 +9657,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V8_VPP_HBM1357_CURR_A", + .sensorName = u"ASIC_P1V8_VPP_HBM1357_CURR_A", }, { { @@ -9375,7 +9672,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_ASIC_P1V8_VPP_HBM1357_PWR_W", + .sensorName = u"ASIC_P1V8_VPP_HBM1357_PWR_W", }, { { @@ -9390,7 +9687,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_UBC1_P12V_TEMP_C", + .sensorName = u"UBC1_P12V_TEMP_C", }, { { @@ -9405,7 +9702,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_UBC1_P12V_VOLT_V", + .sensorName = u"UBC1_P12V_VOLT_V", }, { { @@ -9420,7 +9717,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_UBC1_P12V_CURR_A", + .sensorName = u"UBC1_P12V_CURR_A", }, { { @@ -9435,7 +9732,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_UBC1_P12V_PWR_W", + .sensorName = u"UBC1_P12V_PWR_W", }, { { @@ -9450,7 +9747,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_UBC1_P52V_INPUT_VOLT_V", + .sensorName = u"UBC1_P52V_INPUT_VOLT_V", }, { { @@ -9465,7 +9762,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_UBC2_P12V_TEMP_C", + .sensorName = u"UBC2_P12V_TEMP_C", }, { { @@ -9480,7 +9777,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_UBC2_P12V_VOLT_V", + .sensorName = u"UBC2_P12V_VOLT_V", }, { { @@ -9495,7 +9792,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_UBC2_P12V_CURR_A", + .sensorName = u"UBC2_P12V_CURR_A", }, { { @@ -9510,7 +9807,7 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_UBC2_P12V_PWR_W", + .sensorName = u"UBC2_P12V_PWR_W", }, { { @@ -9525,7 +9822,70 @@ PDR_sensor_auxiliary_names plat_pdr_sensor_aux_names_table[] = { .sensor_count = 0x1, .nameStringCount = 0x1, .nameLanguageTag = "en", - .sensorName = u"SENSOR_NUM_UBC2_P52V_INPUT_VOLT_V", + .sensorName = u"UBC2_P52V_INPUT_VOLT_V", + }, +}; + +PDR_sensor_auxiliary_names plat_evb_pdr_sensor_aux_names_table[] = { + { + { + .record_handle = 0x00000000, + .PDR_header_version = 0x01, + .PDR_type = PLDM_SENSOR_AUXILIARY_NAMES_PDR, + .record_change_number = 0x0000, + .data_length = 0x0000, + }, + .terminus_handle = 0x0000, + .sensor_id = SENSOR_NUM_P3V3_OSFP_TEMP_C, + .sensor_count = 0x1, + .nameStringCount = 0x1, + .nameLanguageTag = "en", + .sensorName = u"P3V3_OSFP_TEMP_C", + }, + { + { + .record_handle = 0x00000000, + .PDR_header_version = 0x01, + .PDR_type = PLDM_SENSOR_AUXILIARY_NAMES_PDR, + .record_change_number = 0x0000, + .data_length = 0x0000, + }, + .terminus_handle = 0x0000, + .sensor_id = SENSOR_NUM_P3V3_OSFP_VOLT_V, + .sensor_count = 0x1, + .nameStringCount = 0x1, + .nameLanguageTag = "en", + .sensorName = u"P3V3_OSFP_VOLT_V", + }, + { + { + .record_handle = 0x00000000, + .PDR_header_version = 0x01, + .PDR_type = PLDM_SENSOR_AUXILIARY_NAMES_PDR, + .record_change_number = 0x0000, + .data_length = 0x0000, + }, + .terminus_handle = 0x0000, + .sensor_id = SENSOR_NUM_P3V3_OSFP_CURR_A, + .sensor_count = 0x1, + .nameStringCount = 0x1, + .nameLanguageTag = "en", + .sensorName = u"P3V3_OSFP_CURR_A", + }, + { + { + .record_handle = 0x00000000, + .PDR_header_version = 0x01, + .PDR_type = PLDM_SENSOR_AUXILIARY_NAMES_PDR, + .record_change_number = 0x0000, + .data_length = 0x0000, + }, + .terminus_handle = 0x0000, + .sensor_id = SENSOR_NUM_P3V3_OSFP_PWR_W, + .sensor_count = 0x1, + .nameStringCount = 0x1, + .nameLanguageTag = "en", + .sensorName = u"P3V3_OSFP_PWR_W", }, }; @@ -9557,6 +9917,8 @@ uint32_t plat_get_pdr_size(uint8_t pdr_type) break; case PLDM_SENSOR_AUXILIARY_NAMES_PDR: total_size = ARRAY_SIZE(plat_pdr_sensor_aux_names_table); + if (get_asic_board_id() == ASIC_BOARD_ID_EVB) + total_size += ARRAY_SIZE(plat_evb_pdr_sensor_aux_names_table); break; case PLDM_ENTITY_AUXILIARY_NAMES_PDR: total_size = ARRAY_SIZE(plat_pdr_entity_aux_names_table); @@ -9584,6 +9946,8 @@ pldm_sensor_info *plat_pldm_sensor_load(int thread_id) return plat_pldm_sensor_quick_vr_table; case TEMP_SENSOR_THREAD_ID: return plat_pldm_sensor_temp_table; + case EVB_SENSOR_THREAD_ID: + return plat_pldm_sensor_evb_table; default: LOG_ERR("Unknow pldm sensor thread id %d", thread_id); return NULL; @@ -9607,6 +9971,10 @@ int plat_pldm_sensor_get_sensor_count(int thread_id) case UBC_SENSOR_THREAD_ID: count = ARRAY_SIZE(plat_pldm_sensor_ubc_table); break; + case EVB_SENSOR_THREAD_ID: + if (get_asic_board_id() == ASIC_BOARD_ID_EVB) + count = ARRAY_SIZE(plat_pldm_sensor_evb_table); + break; default: count = -1; LOG_ERR("Unknow pldm sensor thread id %d", thread_id); @@ -9640,6 +10008,12 @@ void plat_pldm_sensor_get_pdr_numeric_sensor(int thread_id, int sensor_num, &plat_pldm_sensor_ubc_table[sensor_num].pdr_numeric_sensor, sizeof(PDR_numeric_sensor)); break; + case EVB_SENSOR_THREAD_ID: + if (get_asic_board_id() == ASIC_BOARD_ID_EVB) + memcpy(numeric_sensor_table, + &plat_pldm_sensor_evb_table[sensor_num].pdr_numeric_sensor, + sizeof(PDR_numeric_sensor)); + break; default: LOG_ERR("Unknow pldm sensor thread id %d", thread_id); break; @@ -9665,6 +10039,10 @@ void plat_load_aux_sensor_names_pdr_table(PDR_sensor_auxiliary_names *aux_sensor { memcpy(aux_sensor_name_table, &plat_pdr_sensor_aux_names_table, sizeof(plat_pdr_sensor_aux_names_table)); + if (get_asic_board_id() == ASIC_BOARD_ID_EVB) + memcpy(&aux_sensor_name_table[ARRAY_SIZE(plat_pdr_sensor_aux_names_table)], + plat_evb_pdr_sensor_aux_names_table, + sizeof(plat_evb_pdr_sensor_aux_names_table)); } uint16_t plat_pdr_entity_aux_names_table_size = 0; @@ -9699,7 +10077,7 @@ char16_t *char16_strcat_char(char16_t *dest, char16_t ch) void plat_init_entity_aux_names_pdr_table() { // Base name - const char16_t base_name[] = u"RB"; + const char16_t base_name[] = u"RB_SLOT_"; // Get slot ID uint8_t slot_id = get_mmc_slot() + 1; @@ -9708,7 +10086,7 @@ void plat_init_entity_aux_names_pdr_table() size_t base_len = char16_strlen(base_name); // Calculate the required length for the final string (base name + null terminator) - size_t total_len = base_len + 1; // +1 for the null terminator + size_t total_len = base_len + 2; // +1 for the null terminator // Ensure the final length does not exceed MAX_AUX_SENSOR_NAME_LEN if (total_len > MAX_AUX_SENSOR_NAME_LEN) { @@ -9797,12 +10175,32 @@ bool get_raw_data_from_sensor_id(uint8_t sensor_id, uint8_t offset, uint8_t *val return ret; } -void change_sensor_cfg(uint8_t vr_module) +#define SENSOR_CFG_NO_CHANGE 0xFF +static void change_sensor_cfg_from_thread(uint8_t thread, uint8_t type, uint8_t addr) { - if (vr_module == VR_MODULE_MPS) + pldm_sensor_info *table = plat_pldm_sensor_load(thread); + if (table == NULL) return; + int count = plat_pldm_sensor_get_sensor_count(thread); + if (count < 0) + return; + + for (uint8_t j = 0; j < count; j++) { + if (type != SENSOR_CFG_NO_CHANGE) + table[j].pldm_sensor_cfg.type = type; + if (addr != SENSOR_CFG_NO_CHANGE) + table[j].pldm_sensor_cfg.target_addr = addr; + } +} + +void change_sensor_cfg(uint8_t vr_module, uint8_t ubc_module) +{ + // vr sensor for (uint8_t i = VR_SENSOR_THREAD_ID; i <= QUICK_VR_SENSOR_THREAD_ID; i++) { + if (vr_module == VR_MODULE_RNS) + continue; + pldm_sensor_info *table = plat_pldm_sensor_load(i); if (table == NULL) return; @@ -9817,6 +10215,17 @@ void change_sensor_cfg(uint8_t vr_module) convert_addr_to_rns(table[j].pldm_sensor_cfg.target_addr); } } + + // ubc sensor, default: UBC_MODULE_DELTA + if (ubc_module == UBC_MODULE_MPS) + change_sensor_cfg_from_thread(UBC_SENSOR_THREAD_ID, sensor_dev_mpc12109, + SENSOR_CFG_NO_CHANGE); + else if (ubc_module == UBC_MODULE_FLEX) + change_sensor_cfg_from_thread(UBC_SENSOR_THREAD_ID, sensor_dev_bmr316, + SENSOR_CFG_NO_CHANGE); + else if (ubc_module == UBC_MODULE_LUXSHARE) + change_sensor_cfg_from_thread(UBC_SENSOR_THREAD_ID, sensor_dev_lx6301, + SENSOR_CFG_NO_CHANGE); } bool is_dc_access(uint8_t sensor_num) diff --git a/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.h b/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.h index 12524d5cb1..af5965bf69 100644 --- a/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.h +++ b/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.h @@ -87,6 +87,8 @@ #define UBC1_ADDR (0x28 >> 1) #define UBC2_ADDR (0x34 >> 1) +#define P3V3_OSFP_ADDR (0xFA >> 1) + // sensor number /* Define sensors address(7 bit) */ #define SENSOR_NUM_TOP_INLET_TEMP_C 0x01 @@ -223,7 +225,12 @@ #define SENSOR_NUM_UBC2_P12V_PWR_W 0x6C #define SENSOR_NUM_UBC2_P52V_INPUT_VOLT_V 0x6D -#define SENSOR_NUM_NUMBERS 0x6E +#define SENSOR_NUM_P3V3_OSFP_TEMP_C 0x6E +#define SENSOR_NUM_P3V3_OSFP_VOLT_V 0x6F +#define SENSOR_NUM_P3V3_OSFP_CURR_A 0x70 +#define SENSOR_NUM_P3V3_OSFP_PWR_W 0x71 + +#define SENSOR_NUM_NUMBERS 0x72 #define TMP75_TEMP_OFFSET 0x00 #define UPDATE_INTERVAL_1S 1 @@ -235,6 +242,7 @@ enum SENSOR_THREAD_LIST { VR_SENSOR_THREAD_ID, QUICK_VR_SENSOR_THREAD_ID, UBC_SENSOR_THREAD_ID, + EVB_SENSOR_THREAD_ID, MAX_SENSOR_THREAD_ID, }; @@ -259,6 +267,6 @@ char16_t *char16_strcpy(char16_t *dest, const char16_t *src); char16_t *char16_strcat_char(char16_t *dest, char16_t ch); bool get_raw_data_from_sensor_id(uint8_t sensor_id, uint8_t offset, uint8_t *val, uint8_t len); -void change_sensor_cfg(uint8_t vr_module); +void change_sensor_cfg(uint8_t vr_module, uint8_t ubc_module); uint8_t convert_addr_to_rns(uint8_t addr); #endif diff --git a/meta-facebook/sb-rb/src/shell/shell_test.c b/meta-facebook/sb-rb/src/shell/shell_test.c index 32f2383ad5..311c003533 100644 --- a/meta-facebook/sb-rb/src/shell/shell_test.c +++ b/meta-facebook/sb-rb/src/shell/shell_test.c @@ -19,6 +19,7 @@ #include "plat_pldm_sensor.h" #include "plat_cpld.h" +#include "plat_class.h" // test command void cmd_test(const struct shell *shell, size_t argc, char **argv) @@ -78,6 +79,40 @@ void cmd_cpld_dump(const struct shell *shell, size_t argc, char **argv) shell_print(shell, ""); } +void cmd_info(const struct shell *shell, size_t argc, char **argv) +{ + static const char *const vr_module_str[] = { + [VR_MODULE_MPS] = "MPS", + [VR_MODULE_RNS] = "RNS", + }; + + static const char *const ubc_module_str[] = { + [UBC_MODULE_DELTA] = "DELTA", + [UBC_MODULE_MPS] = "MPS", + [UBC_MODULE_FLEX] = "FLEX", + [UBC_MODULE_LUXSHARE] = "LUXSHARE", + }; + + static const char *const asic_board_id_str[] = { + [ASIC_BOARD_ID_RSVD1] = "RSVD1", + [ASIC_BOARD_ID_RSVD2] = "RSVD2", + [ASIC_BOARD_ID_RAINBOW] = "RAINBOW", + [ASIC_BOARD_ID_EVB] = "EVB", + }; + + uint8_t vr = get_vr_module(); + uint8_t ubc = get_ubc_module(); + uint8_t board_id = get_asic_board_id(); + + shell_warn(shell, "vr module: %s", + (vr < VR_MODULE_UNKNOWN) ? vr_module_str[vr] : "UNKNOWN"); + shell_warn(shell, "ubc module: %s", + (ubc < UBC_MODULE_UNKNOWN) ? ubc_module_str[ubc] : "UNKNOWN"); + shell_warn(shell, "mmc slot: %d", get_mmc_slot() + 1); + shell_warn(shell, "asic board id: %s", + (board_id < ASIC_BOARD_ID_UNKNOWN) ? asic_board_id_str[board_id] : "UNKNOWN"); +} + SHELL_STATIC_SUBCMD_SET_CREATE(sub_cpld_cmds, SHELL_CMD(dump, NULL, "cpld dump", cmd_cpld_dump), SHELL_SUBCMD_SET_END); @@ -85,6 +120,7 @@ SHELL_STATIC_SUBCMD_SET_CREATE(sub_test_cmds, SHELL_CMD(test, NULL, "test comman SHELL_CMD(read_raw, NULL, "read raw data test command", cmd_read_raw), SHELL_CMD(cpld, &sub_cpld_cmds, "cpld commands", NULL), + SHELL_CMD(info, NULL, "info commands", cmd_info), SHELL_SUBCMD_SET_END); /* Root of command test */ From 286b51d7ba61fb7a223e6bf5b6f813c7025e5704 Mon Sep 17 00:00:00 2001 From: Hung-Yi Date: Thu, 21 Aug 2025 14:32:03 +0800 Subject: [PATCH 2/7] sb: rb: enable ubc bmc316/lx6301 Summary: - enable ubc bmc316/lx6301 - add init_arg for mpc12109 - modify bic addr from 0x40 to 0x42 - add set eid pldm command - fix rns vr sensor type issue Test Plan: - Build code: Pass --- meta-facebook/sb-rb/src/platform/plat_def.h | 2 ++ meta-facebook/sb-rb/src/platform/plat_hook.c | 4 ++++ .../sb-rb/src/platform/plat_i2c_target.c | 2 +- meta-facebook/sb-rb/src/platform/plat_mctp.c | 18 ++++++++++++++---- .../sb-rb/src/platform/plat_pldm_sensor.c | 14 +++++++++----- 5 files changed, 30 insertions(+), 10 deletions(-) diff --git a/meta-facebook/sb-rb/src/platform/plat_def.h b/meta-facebook/sb-rb/src/platform/plat_def.h index 2ebe716cc7..2f0c1dad10 100644 --- a/meta-facebook/sb-rb/src/platform/plat_def.h +++ b/meta-facebook/sb-rb/src/platform/plat_def.h @@ -34,6 +34,8 @@ #define ENABLE_MP29816A #define ENABLE_RAA228249 #define ENABLE_EMC1413 +#define ENABLE_BMR316 +#define ENABLE_LX6301 #define ENABLE_MCTP_I3C #define DISABLE_AST_ADC diff --git a/meta-facebook/sb-rb/src/platform/plat_hook.c b/meta-facebook/sb-rb/src/platform/plat_hook.c index 09bf85a890..b3ce99d1d5 100644 --- a/meta-facebook/sb-rb/src/platform/plat_hook.c +++ b/meta-facebook/sb-rb/src/platform/plat_hook.c @@ -50,6 +50,10 @@ mp2971_init_arg mp2971_init_args[] = { [0] = { .vout_scale_enable = true }, }; +mpc12109_init_arg mpc12109_init_args[] = { + [0] = { .iout_lsb = 0.5, .pout_lsb = 2 }, +}; + void *vr_mutex_get(enum VR_INDEX_E vr_index) { if (vr_index >= VR_INDEX_MAX) { diff --git a/meta-facebook/sb-rb/src/platform/plat_i2c_target.c b/meta-facebook/sb-rb/src/platform/plat_i2c_target.c index 481b84811d..40b8c6b9bd 100644 --- a/meta-facebook/sb-rb/src/platform/plat_i2c_target.c +++ b/meta-facebook/sb-rb/src/platform/plat_i2c_target.c @@ -46,7 +46,7 @@ static bool command_reply_data_handle(void *arg) /* I2C target init-config table */ const struct _i2c_target_config I2C_TARGET_CONFIG_TABLE[MAX_TARGET_NUM] = { { 0xFF, 0xA }, { 0xFF, 0xA }, { 0xFF, 0xA }, - { 0xFF, 0xA }, { 0xFF, 0xA }, { 0x40, 0xA, command_reply_data_handle }, + { 0xFF, 0xA }, { 0xFF, 0xA }, { 0x42, 0xA, command_reply_data_handle }, { 0xFF, 0xA }, { 0xFF, 0xA }, { 0xFF, 0xA }, { 0xFF, 0xA }, { 0xFF, 0xA }, { 0xFF, 0xA }, }; diff --git a/meta-facebook/sb-rb/src/platform/plat_mctp.c b/meta-facebook/sb-rb/src/platform/plat_mctp.c index 82abd77b26..cedd07b3d0 100644 --- a/meta-facebook/sb-rb/src/platform/plat_mctp.c +++ b/meta-facebook/sb-rb/src/platform/plat_mctp.c @@ -40,7 +40,7 @@ LOG_MODULE_REGISTER(plat_mctp); /* i2c 8 bit address */ -#define I2C_ADDR_BIC 0x40 +#define I2C_ADDR_BIC 0x42 #define I2C_ADDR_BMC 0x20 /* i2c dev bus */ @@ -87,10 +87,10 @@ uint8_t MCTP_SUPPORTED_MESSAGES_TYPES[] = { static mctp *find_mctp_by_bus(uint8_t bus) { uint8_t i; - for (i = 0; i < ARRAY_SIZE(plat_mctp_port); i++) { - mctp_port *p = plat_mctp_port + i; + for (i = 0; i < ARRAY_SIZE(smbus_port); i++) { + mctp_port *p = smbus_port + i; - if (bus == p->conf.i3c_conf.bus) + if (bus == p->conf.smbus_conf.bus) return p->mctp_inst; } @@ -192,6 +192,16 @@ int load_mctp_support_types(uint8_t *type_len, uint8_t *types) return MCTP_SUCCESS; } +uint8_t plat_get_mctp_port_count() +{ + return ARRAY_SIZE(smbus_port); +} + +mctp_port *plat_get_mctp_port(uint8_t index) +{ + return smbus_port + index; +} + void plat_i3c_set_pid(void) { I3C_MSG i3c_msg; diff --git a/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c b/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c index 4ccc0f4255..aea7ba3dee 100644 --- a/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c +++ b/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c @@ -40,6 +40,7 @@ static struct pldm_sensor_thread pal_pldm_sensor_thread[MAX_SENSOR_THREAD_ID] = }; extern vr_pre_proc_arg vr_pre_read_args[]; +extern mpc12109_init_arg mpc12109_init_args[]; static bool is_quick_vr_sensor(uint8_t sensor_num) { @@ -10176,7 +10177,8 @@ bool get_raw_data_from_sensor_id(uint8_t sensor_id, uint8_t offset, uint8_t *val } #define SENSOR_CFG_NO_CHANGE 0xFF -static void change_sensor_cfg_from_thread(uint8_t thread, uint8_t type, uint8_t addr) +static void change_sensor_cfg_from_thread(uint8_t thread, uint8_t type, uint8_t addr, + void *init_args) { pldm_sensor_info *table = plat_pldm_sensor_load(thread); if (table == NULL) @@ -10191,6 +10193,8 @@ static void change_sensor_cfg_from_thread(uint8_t thread, uint8_t type, uint8_t table[j].pldm_sensor_cfg.type = type; if (addr != SENSOR_CFG_NO_CHANGE) table[j].pldm_sensor_cfg.target_addr = addr; + if (init_args != NULL) + table[j].pldm_sensor_cfg.init_args = init_args; } } @@ -10198,7 +10202,7 @@ void change_sensor_cfg(uint8_t vr_module, uint8_t ubc_module) { // vr sensor for (uint8_t i = VR_SENSOR_THREAD_ID; i <= QUICK_VR_SENSOR_THREAD_ID; i++) { - if (vr_module == VR_MODULE_RNS) + if (vr_module == VR_MODULE_MPS) continue; pldm_sensor_info *table = plat_pldm_sensor_load(i); @@ -10219,13 +10223,13 @@ void change_sensor_cfg(uint8_t vr_module, uint8_t ubc_module) // ubc sensor, default: UBC_MODULE_DELTA if (ubc_module == UBC_MODULE_MPS) change_sensor_cfg_from_thread(UBC_SENSOR_THREAD_ID, sensor_dev_mpc12109, - SENSOR_CFG_NO_CHANGE); + SENSOR_CFG_NO_CHANGE, &mpc12109_init_args[0]); else if (ubc_module == UBC_MODULE_FLEX) change_sensor_cfg_from_thread(UBC_SENSOR_THREAD_ID, sensor_dev_bmr316, - SENSOR_CFG_NO_CHANGE); + SENSOR_CFG_NO_CHANGE, NULL); else if (ubc_module == UBC_MODULE_LUXSHARE) change_sensor_cfg_from_thread(UBC_SENSOR_THREAD_ID, sensor_dev_lx6301, - SENSOR_CFG_NO_CHANGE); + SENSOR_CFG_NO_CHANGE, NULL); } bool is_dc_access(uint8_t sensor_num) From ab33f4ac9e00e4e47aa6dc210f76cbb7d2c236ac Mon Sep 17 00:00:00 2001 From: Kevin Huang Date: Fri, 22 Aug 2025 11:00:45 +0800 Subject: [PATCH 3/7] update evb sensor LCR and UCR --- .../sb-rb/src/platform/plat_pldm_sensor.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c b/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c index aea7ba3dee..0dde69b81c 100644 --- a/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c +++ b/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c @@ -7934,7 +7934,7 @@ pldm_sensor_info plat_pldm_sensor_evb_table[] = { 0x00, //uint8_t plus_tolerance; 0x00, //uint8_t minus_tolerance; 0x00000000, //uint32_t hysteresis; - UP_THRESHOLD_CRIT | LOW_THRESHOLD_CRIT, //uint8_t supported_thresholds; + UP_THRESHOLD_CRIT, //uint8_t supported_thresholds; 0x00, //uint8_t threshold_and_hysteresis_volatility; 0, //real32_t state_transition_interval; UPDATE_INTERVAL_1S, //real32_t update_interval; @@ -7948,7 +7948,7 @@ pldm_sensor_info plat_pldm_sensor_evb_table[] = { 0, //uint32_t warning_high; 0, //uint32_t warning_low; 100000, //uint32_t critical_high; - 5000, //uint32_t critical_low; + 0, //uint32_t critical_low; 0, //uint32_t fatal_high; 0, //uint32_t fatal_low; }, @@ -8019,8 +8019,8 @@ pldm_sensor_info plat_pldm_sensor_evb_table[] = { 0x00000000, //uint32_t normal_min; 0, //uint32_t warning_high; 0, //uint32_t warning_low; - 3571, //uint32_t critical_high; - 3041, //uint32_t critical_low; + 3465, //uint32_t critical_high; + 3135, //uint32_t critical_low; 0, //uint32_t fatal_high; 0, //uint32_t fatal_low; }, @@ -8079,7 +8079,7 @@ pldm_sensor_info plat_pldm_sensor_evb_table[] = { 0x00, //uint8_t plus_tolerance; 0x00, //uint8_t minus_tolerance; 0x00000000, //uint32_t hysteresis; - 0, //uint8_t supported_thresholds; + UP_THRESHOLD_CRIT, //uint8_t supported_thresholds; 0x00, //uint8_t threshold_and_hysteresis_volatility; 0, //real32_t state_transition_interval; UPDATE_INTERVAL_1S, //real32_t update_interval; @@ -8092,7 +8092,7 @@ pldm_sensor_info plat_pldm_sensor_evb_table[] = { 0x00000000, //uint32_t normal_min; 0, //uint32_t warning_high; 0, //uint32_t warning_low; - 0, //uint32_t critical_high; + 36000, //uint32_t critical_high; 0, //uint32_t critical_low; 0, //uint32_t fatal_high; 0, //uint32_t fatal_low; @@ -8151,7 +8151,7 @@ pldm_sensor_info plat_pldm_sensor_evb_table[] = { 0x00, //uint8_t plus_tolerance; 0x00, //uint8_t minus_tolerance; 0x00000000, //uint32_t hysteresis; - 0, //uint8_t supported_thresholds; + UP_THRESHOLD_CRIT, //uint8_t supported_thresholds; 0x00, //uint8_t threshold_and_hysteresis_volatility; 0, //real32_t state_transition_interval; UPDATE_INTERVAL_1S, //real32_t update_interval; @@ -8164,7 +8164,7 @@ pldm_sensor_info plat_pldm_sensor_evb_table[] = { 0x00000000, //uint32_t normal_min; 0, //uint32_t warning_high; 0, //uint32_t warning_low; - 0, //uint32_t critical_high; + 118800, //uint32_t critical_high; 0, //uint32_t critical_low; 0, //uint32_t fatal_high; 0, //uint32_t fatal_low; From 03540840396e388ad27380a5ae55f15270a32aa8 Mon Sep 17 00:00:00 2001 From: Kevin Huang Date: Fri, 22 Aug 2025 14:25:26 +0800 Subject: [PATCH 4/7] change shell file name --- .../sb-rb/src/platform/plat_pldm_sensor.c | 4 +- .../shell/{clock_shell.c => shell_clock.c} | 0 .../shell/{clock_shell.h => shell_clock.h} | 0 ...{plat_smbus_shell.c => shell_plat_smbus.c} | 0 .../sb-rb/src/shell/shell_plat_temp_status.c | 138 ++++++++++++++++ .../src/shell/shell_plat_temp_threshold.c | 153 ++++++++++++++++++ ...hell.c => shell_plat_thermaltrip_switch.c} | 0 .../sb-rb/src/shell/shell_sensor_threshold.c | 2 +- 8 files changed, 294 insertions(+), 3 deletions(-) rename meta-facebook/sb-rb/src/shell/{clock_shell.c => shell_clock.c} (100%) rename meta-facebook/sb-rb/src/shell/{clock_shell.h => shell_clock.h} (100%) rename meta-facebook/sb-rb/src/shell/{plat_smbus_shell.c => shell_plat_smbus.c} (100%) create mode 100644 meta-facebook/sb-rb/src/shell/shell_plat_temp_status.c create mode 100644 meta-facebook/sb-rb/src/shell/shell_plat_temp_threshold.c rename meta-facebook/sb-rb/src/shell/{plat_thermaltrip_switch_shell.c => shell_plat_thermaltrip_switch.c} (100%) diff --git a/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c b/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c index 0dde69b81c..b6bf448ee3 100644 --- a/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c +++ b/meta-facebook/sb-rb/src/platform/plat_pldm_sensor.c @@ -4088,9 +4088,9 @@ pldm_sensor_info plat_pldm_sensor_vr_table[] = { 0x00000000, //uint32_t nominal_value; 0x00000000, //uint32_t normal_max; 0x00000000, //uint32_t normal_min; - 21500, //uint32_t warning_high; + 0, //uint32_t warning_high; 0, //uint32_t warning_low; - 0, //uint32_t critical_high; + 21500, //uint32_t critical_high; 0, //uint32_t critical_low; 0, //uint32_t fatal_high; 0, //uint32_t fatal_low; diff --git a/meta-facebook/sb-rb/src/shell/clock_shell.c b/meta-facebook/sb-rb/src/shell/shell_clock.c similarity index 100% rename from meta-facebook/sb-rb/src/shell/clock_shell.c rename to meta-facebook/sb-rb/src/shell/shell_clock.c diff --git a/meta-facebook/sb-rb/src/shell/clock_shell.h b/meta-facebook/sb-rb/src/shell/shell_clock.h similarity index 100% rename from meta-facebook/sb-rb/src/shell/clock_shell.h rename to meta-facebook/sb-rb/src/shell/shell_clock.h diff --git a/meta-facebook/sb-rb/src/shell/plat_smbus_shell.c b/meta-facebook/sb-rb/src/shell/shell_plat_smbus.c similarity index 100% rename from meta-facebook/sb-rb/src/shell/plat_smbus_shell.c rename to meta-facebook/sb-rb/src/shell/shell_plat_smbus.c diff --git a/meta-facebook/sb-rb/src/shell/shell_plat_temp_status.c b/meta-facebook/sb-rb/src/shell/shell_plat_temp_status.c new file mode 100644 index 0000000000..aec4ce669a --- /dev/null +++ b/meta-facebook/sb-rb/src/shell/shell_plat_temp_status.c @@ -0,0 +1,138 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include "sensor.h" +#include "plat_hook.h" +#include "plat_class.h" +#include "plat_user_setting.h" +#include "plat_pldm_sensor.h" + +LOG_MODULE_REGISTER(plat_temp_status_shell, LOG_LEVEL_DBG); + + +static int cmd_temp_status_get(const struct shell *shell, size_t argc, char **argv) +{ + if (!(argc == 2)) { + shell_error(shell, "temp_status get "); + return -1; + } + + enum PLAT_TEMP_INDEX_E rail; + if (get_temp_sensor_rail_enum(argv[1], &rail) == false) { + shell_error(shell, "Invalid rail name: %s", argv[1]); + return -1; + } + + uint8_t temp_status = 0xFF; + + if (!plat_get_temp_status(rail, &temp_status)) { + shell_error(shell, "Can't find temp status by rail index: %x", rail); + return -1; + } + if (rail == TEMP_INDEX_TOP_INLET || rail == TEMP_INDEX_BOT_INLET || + rail == TEMP_INDEX_BOT_OUTLET) { + shell_print(shell, "%s: 0x%02x (ALERT_N)", "TMP75", temp_status); + } + else { + shell_print(shell, "%s: 0x%02x", "TMP432", temp_status); + } + + + return 0; +} + +static int cmd_temp_status_clear(const struct shell *shell, size_t argc, char **argv) +{ + if (!(argc == 2)) { + shell_error(shell, "temp_status clear all|"); + return -1; + } + + if (!strcmp(argv[1], "all")) { + for (int i = 0; i < TEMP_INDEX_MAX; i++) { + uint8_t *rail_name = NULL; + if (!get_temp_sensor_rail_name((uint8_t)i, &rail_name)) { + shell_error(shell, "Can't find temp_rail_name by rail index: %x", + i); + continue; + } + + if (!plat_clear_temp_status(i)) { + shell_error(shell, "Can't clear temp status by rail index: %x", i); + continue; + } + } + shell_print(shell, "All Temp clear temp status finish"); + return 0; + } else { + enum PLAT_TEMP_INDEX_E rail; + if (get_temp_sensor_rail_enum(argv[1], &rail) == false) { + shell_error(shell, "Invalid rail name: %s", argv[1]); + return -1; + } + + if (!plat_clear_temp_status(rail)) { + shell_error(shell, "Can't clear temp status by rail index: %x", rail); + return -1; + } + shell_print(shell, "[%-2x]%-50s clear temp status finish", rail, argv[1]); + return 0; + } +} + +static void temp_sensor_rname_get_for_get_cmd(size_t idx, struct shell_static_entry *entry) +{ + uint8_t *name = NULL; + get_temp_sensor_rail_name((uint8_t)idx, &name); + + entry->syntax = (name) ? (const char *)name : NULL; + entry->handler = NULL; + entry->help = NULL; + entry->subcmd = NULL; +} + +static void temp_sensor_rname_get_for_clear_cmd(size_t idx, struct shell_static_entry *entry) +{ + uint8_t *name = NULL; + get_temp_sensor_rail_name((uint8_t)idx, &name); + + if (idx == TEMP_INDEX_MAX) + name = (uint8_t *)"all"; + + entry->syntax = (name) ? (const char *)name : NULL; + entry->handler = NULL; + entry->help = NULL; + entry->subcmd = NULL; +} + +SHELL_DYNAMIC_CMD_CREATE(temp_sensor_rname_for_temp_status_get, temp_sensor_rname_get_for_get_cmd); +SHELL_DYNAMIC_CMD_CREATE(temp_sensor_rname_for_temp_status_clear, + temp_sensor_rname_get_for_clear_cmd); + +/* level 1 */ +SHELL_STATIC_SUBCMD_SET_CREATE(sub_temp_status_cmds, + SHELL_CMD(get, &temp_sensor_rname_for_temp_status_get, + "get ", cmd_temp_status_get), + SHELL_CMD(clear, &temp_sensor_rname_for_temp_status_clear, + "clear all|", cmd_temp_status_clear), + SHELL_SUBCMD_SET_END); + +/* Root of command test */ +SHELL_CMD_REGISTER(temp_status, &sub_temp_status_cmds, + "temperature fault status get/clear commands", NULL); diff --git a/meta-facebook/sb-rb/src/shell/shell_plat_temp_threshold.c b/meta-facebook/sb-rb/src/shell/shell_plat_temp_threshold.c new file mode 100644 index 0000000000..fe2b80e717 --- /dev/null +++ b/meta-facebook/sb-rb/src/shell/shell_plat_temp_threshold.c @@ -0,0 +1,153 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include "plat_hook.h" +#include "plat_user_setting.h" + +LOG_MODULE_REGISTER(plat_temp_threshold_shell, LOG_LEVEL_DBG); + +static int temp_threshold_set_all_default(const struct shell *shell) +{ + uint32_t temperature = 0; + + bool all_success = true; + + for (int i = 0; i < PLAT_TEMP_INDEX_THRESHOLD_TYPE_MAX; i++) { + if (!set_plat_temp_threshold(i, &temperature, true, false)) { + shell_print(shell, "Can't set temp threshold index: %d", i); + all_success = false; + } + } + + if (all_success) { + shell_print(shell, "Set all temp threshold to default"); + } + + return 0; +} + +static int cmd_temp_threshold_get_all(const struct shell *shell, size_t argc, char **argv) +{ + shell_print(shell, "This limit is retrieved from the temp chip register."); + shell_print( + shell, + " id| temp_threshold_name |temperature(millidegree C)"); + for (int i = 0; i < PLAT_TEMP_INDEX_THRESHOLD_TYPE_MAX; i++) { + uint32_t temperature = 0; + uint8_t *temp_index_threshold_name = NULL; + if (!get_temp_index_threshold_type_name((uint8_t)i, &temp_index_threshold_name)) { + shell_print(shell, "Can't find type name by index: %d", i); + continue; + } + + if (!get_plat_temp_threshold(i, &temperature)) { + shell_print(shell, "Can't find temp threshold by index: %d", i); + continue; + } + + shell_print(shell, "%4d|%-50s|%4d", i, temp_index_threshold_name, temperature); + } + + return 0; +} + +static int cmd_temp_threshold_set(const struct shell *shell, size_t argc, char **argv) +{ + shell_print(shell, "This limit is written to the temp chip register."); + bool is_default = false; + bool is_perm = false; + + if (argc == 4) { + if (!strcmp(argv[3], "perm")) { + is_perm = true; + } else { + shell_error(shell, "The last argument must be "); + return -1; + } + } + + if (!strcmp(argv[1], "all")) { + if (!strcmp(argv[2], "default")) { + temp_threshold_set_all_default(shell); + return 0; + } + shell_error(shell, "Only support \"temp_threshold set all default\" "); + return -1; + } + + /* covert string to enum */ + enum PLAT_TEMP_INDEX_THRESHOLD_TYPE_E temp_index_threshold_type; + if (get_temp_threshold_type_enum(argv[1], &temp_index_threshold_type) == false) { + shell_error(shell, "Invalid temp threshold name: %s", argv[1]); + return -1; + } + + uint32_t temperature = strtol(argv[2], NULL, 0); + if (!strcmp(argv[2], "default")) { + is_default = true; + shell_info(shell, "Set %s(%d) to default, %svolatile\n", argv[1], + temp_index_threshold_type, (argc == 4) ? "non-" : ""); + } else { + shell_info(shell, "Set %s(%d) to %d millidegree C, %svolatile\n", argv[1], + temp_index_threshold_type, temperature, (argc == 4) ? "non-" : ""); + } + + if (!set_plat_temp_threshold(temp_index_threshold_type, &temperature, is_default, + is_perm)) { + shell_print(shell, "Can't set temp_threshold by temp index: %d", + temp_index_threshold_type); + return -1; + } + + return 0; +} + +static void get_temp_index_threshold_type_name_(size_t idx, struct shell_static_entry *entry) +{ + uint8_t *name = NULL; + get_temp_index_threshold_type_name((uint8_t)idx, &name); + + if (idx == PLAT_TEMP_INDEX_THRESHOLD_TYPE_MAX) + name = (uint8_t *)"all"; + + entry->syntax = (name) ? (const char *)name : NULL; + entry->handler = NULL; + entry->help = NULL; + entry->subcmd = NULL; +} + +SHELL_DYNAMIC_CMD_CREATE(temp_index_threshold_type_name, get_temp_index_threshold_type_name_); + +/* level 2 */ +SHELL_STATIC_SUBCMD_SET_CREATE(sub_temp_threshold_get_cmds, + SHELL_CMD(all, NULL, "temp_threshold get all", + cmd_temp_threshold_get_all), + SHELL_SUBCMD_SET_END); + +/* level 1 */ +SHELL_STATIC_SUBCMD_SET_CREATE(sub_temp_threshold_cmds, + SHELL_CMD(get, &sub_temp_threshold_get_cmds, "get all", NULL), + SHELL_CMD_ARG(set, &temp_index_threshold_type_name, + "set |default [perm]", + cmd_temp_threshold_set, 3, 1), + SHELL_SUBCMD_SET_END); + +/* Root of command test */ +SHELL_CMD_REGISTER(temp_threshold, &sub_temp_threshold_cmds, "temp_threshold set/get commands", + NULL); diff --git a/meta-facebook/sb-rb/src/shell/plat_thermaltrip_switch_shell.c b/meta-facebook/sb-rb/src/shell/shell_plat_thermaltrip_switch.c similarity index 100% rename from meta-facebook/sb-rb/src/shell/plat_thermaltrip_switch_shell.c rename to meta-facebook/sb-rb/src/shell/shell_plat_thermaltrip_switch.c diff --git a/meta-facebook/sb-rb/src/shell/shell_sensor_threshold.c b/meta-facebook/sb-rb/src/shell/shell_sensor_threshold.c index 8c569cd6ea..e51f95e1d2 100644 --- a/meta-facebook/sb-rb/src/shell/shell_sensor_threshold.c +++ b/meta-facebook/sb-rb/src/shell/shell_sensor_threshold.c @@ -110,7 +110,7 @@ void cmd_get_sensor_threshold(const struct shell *shell, size_t argc, char **arg shell_print( shell, - "sensor ID: 0x%x | sensor name: %-50s | critical high: %10.3f | critical low: %10.3f", + "sensor ID: 0x%02x | sensor name: %-50s | critical high: %10.3f | critical low: %10.3f", i, sensor_name, critical_high, critical_low); critical_high = 0; critical_low = 0; From 8634a7f21f8cb39d08d552436938e31c03f15646 Mon Sep 17 00:00:00 2001 From: Kevin Huang Date: Mon, 18 Aug 2025 16:43:45 +0800 Subject: [PATCH 5/7] sb: rb: add temp status and temp threshold shell cmd Summary: - add temp status shell cmd - add temp threshold shell cmd Test Plan: - Build code: Pass --- meta-facebook/sb-rb/src/platform/plat_cpld.c | 2 - meta-facebook/sb-rb/src/platform/plat_cpld.h | 3 +- .../sb-rb/src/platform/plat_user_setting.c | 300 ++++++++++++++++++ .../sb-rb/src/platform/plat_user_setting.h | 86 ++++- 4 files changed, 387 insertions(+), 4 deletions(-) diff --git a/meta-facebook/sb-rb/src/platform/plat_cpld.c b/meta-facebook/sb-rb/src/platform/plat_cpld.c index 3589f7d779..1e3a65612d 100644 --- a/meta-facebook/sb-rb/src/platform/plat_cpld.c +++ b/meta-facebook/sb-rb/src/platform/plat_cpld.c @@ -23,8 +23,6 @@ #include "plat_hook.h" #include -#define CPLD_ADDR (0x4C >> 1) -#define I2C_BUS_CPLD I2C_BUS11 #define POLLING_CPLD_STACK_SIZE 2048 #define CPLD_POLLING_INTERVAL_MS 1000 // 1 second polling interval diff --git a/meta-facebook/sb-rb/src/platform/plat_cpld.h b/meta-facebook/sb-rb/src/platform/plat_cpld.h index 7a23abbae8..5c66ad8052 100644 --- a/meta-facebook/sb-rb/src/platform/plat_cpld.h +++ b/meta-facebook/sb-rb/src/platform/plat_cpld.h @@ -25,7 +25,8 @@ #define CPLD_OFFSET_POWER_CLAMP 0x25 #define CPLD_OFFSET_USERCODE 0x32 #define CPLD_OFFSET_ASIC_BOARD_ID 0x3C - +#define CPLD_ADDR (0x4C >> 1) +#define I2C_BUS_CPLD I2C_BUS11 typedef struct _cpld_info_ cpld_info; typedef struct _cpld_info_ { diff --git a/meta-facebook/sb-rb/src/platform/plat_user_setting.c b/meta-facebook/sb-rb/src/platform/plat_user_setting.c index a0f5ab0792..08813ffa8f 100644 --- a/meta-facebook/sb-rb/src/platform/plat_user_setting.c +++ b/meta-facebook/sb-rb/src/platform/plat_user_setting.c @@ -26,10 +26,14 @@ #include "plat_i2c.h" #include "plat_fru.h" #include "plat_user_setting.h" +#include "sensor.h" +#include "tmp75.h" +#include "tmp431.h" LOG_MODULE_REGISTER(plat_user_setting); #define EEPROM_MAX_WRITE_TIME 5 // the BR24G512 eeprom max write time is 3.5 ms +#define TMP75_ALERT_CPLD_OFFSET 0x2F bool set_user_settings_thermaltrip_to_eeprom(void *thermaltrip_user_settings, uint8_t data_length) { @@ -67,3 +71,299 @@ bool set_thermaltrip_user_settings(bool thermaltrip_enable, bool is_perm) } return true; } + +temp_mapping_sensor temp_index_table[] = { + { TEMP_INDEX_TOP_INLET, SENSOR_NUM_TOP_INLET_TEMP_C, "SB_RB_TOP_INLET_TEMP" }, + { TEMP_INDEX_BOT_INLET, SENSOR_NUM_BOT_INLET_TEMP_C, "SB_RB_BOT_INLET_TEMP" }, + { TEMP_INDEX_BOT_OUTLET, SENSOR_NUM_BOT_OUTLET_TEMP_C, "SB_RB_BOT_OUTLET_TEMP" }, + { TEMP_INDEX_ASIC_MEDHA0_SENSOR0, SENSOR_NUM_ASIC_MEDHA0_SENSOR0_TEMP_C, "SB_RB_ASIC_MEDHA0_SENSOR0_TEMP" }, + { TEMP_INDEX_ASIC_MEDHA0_SENSOR1, SENSOR_NUM_ASIC_MEDHA0_SENSOR1_TEMP_C, "SB_RB_ASIC_MEDHA0_SENSOR1_TEMP" }, + { TEMP_INDEX_ASIC_OWL_W, SENSOR_NUM_ASIC_OWL_W_TEMP_C, "SB_RB_ASIC_OWL_W_TEMP" }, + { TEMP_INDEX_ASIC_OWL_E, SENSOR_NUM_ASIC_OWL_E_TEMP_C, "SB_RB_ASIC_OWL_E_TEMP" }, + { TEMP_INDEX_ASIC_MEDHA1_SENSOR0, SENSOR_NUM_ASIC_MEDHA1_SENSOR0_TEMP_C, "SB_RB_ASIC_MEDHA1_SENSOR0_TEMP" }, + { TEMP_INDEX_ASIC_MEDHA1_SENSOR1, SENSOR_NUM_ASIC_MEDHA1_SENSOR1_TEMP_C, "SB_RB_ASIC_MEDHA1_SENSOR1_TEMP" }, + { TEMP_INDEX_ASIC_HAMSA_CRM, SENSOR_NUM_ASIC_HAMSA_CRM_TEMP_C, "SB_RB_ASIC_HAMSA_CRM_TEMP" }, + { TEMP_INDEX_ASIC_HAMSA_LS, SENSOR_NUM_ASIC_HAMSA_LS_TEMP_C, "SB_RB_ASIC_HAMSA_LS_TEMP" }, +}; + +bool get_temp_sensor_rail_enum(uint8_t *name, uint8_t *num) +{ + CHECK_NULL_ARG_WITH_RETURN(name, false); + CHECK_NULL_ARG_WITH_RETURN(num, false); + + for (int i = 0; i < TEMP_INDEX_MAX; i++) { + if (strcmp(name, temp_index_table[i].sensor_name) == 0) { + *num = temp_index_table[i].index; + return true; + } + } + + LOG_ERR("invalid rail name %s", log_strdup(name)); + return false; +} + +bool plat_get_temp_status(uint8_t rail, uint8_t *temp_status) +{ + CHECK_NULL_ARG_WITH_RETURN(temp_status, false); + + bool ret = false; + uint8_t sensor_id = temp_index_table[rail].sensor_id; + sensor_cfg *cfg = get_sensor_cfg_by_sensor_id(sensor_id); + + if (cfg == NULL) { + LOG_ERR("Failed to get sensor config for sensor 0x%x", sensor_id); + return false; + } + + switch (cfg->type) { + case sensor_dev_tmp75: { + uint8_t data[1] = { 0 }; + if (!plat_read_cpld(TMP75_ALERT_CPLD_OFFSET, data, 1)) { + LOG_ERR("Failed to read TEMP TMP75 from cpld"); + goto err; + } + + switch (rail) { + case TEMP_INDEX_TOP_INLET: + *temp_status = (data[0] & BIT(7)) >> 7; + break; + case TEMP_INDEX_BOT_INLET: + *temp_status = (data[0] & BIT(6)) >> 6; + break; + case TEMP_INDEX_BOT_OUTLET: + *temp_status = (data[0] & BIT(5)) >> 5; + break; + default: + LOG_ERR("Unsupport TEMP TMP75 alert pin"); + goto err; + } + } break; + case sensor_dev_tmp431: + if (!tmp432_get_temp_status(cfg, temp_status)) { + LOG_ERR("The TEMP TMP432 temp status reading failed"); + goto err; + } + break; + default: + LOG_ERR("Unsupport TEMP type(%x)", cfg->type); + goto err; + } + + ret = true; +err: + return ret; +} + +bool get_temp_sensor_rail_name(uint8_t rail, uint8_t **name) +{ + CHECK_NULL_ARG_WITH_RETURN(name, false); + + if (rail >= TEMP_INDEX_MAX) { + *name = NULL; + return false; + } + + *name = (uint8_t *)temp_index_table[rail].sensor_name; + return true; +} +// to do need check remot or local +temp_threshold_mapping_sensor temp_index_threshold_type_table[] = { + { TOP_INLET_LOW_LIMIT, LOCAL_LOW_LIMIT, SENSOR_NUM_TOP_INLET_TEMP_C, "SB_RB_TOP_INLET_TEMP_LOW_LIM" }, + { TOP_INLET_HIGH_LIMIT, LOCAL_HIGH_LIMIT, SENSOR_NUM_TOP_INLET_TEMP_C, "SB_RB_TOP_INLET_TEMP_HIGH_LIM" }, + { BOT_INLET_LOW_LIMIT, LOCAL_LOW_LIMIT, SENSOR_NUM_BOT_INLET_TEMP_C, "SB_RB_BOT_INLET_TEMP_LOW_LIM" }, + { BOT_INLET_HIGH_LIMIT, LOCAL_HIGH_LIMIT, SENSOR_NUM_BOT_INLET_TEMP_C, "SB_RB_BOT_INLET_TEMP_HIGH_LIM" }, + { BOT_OUTLET_LOW_LIMIT, LOCAL_LOW_LIMIT, SENSOR_NUM_BOT_OUTLET_TEMP_C, "SB_RB_BOT_OUTLET_TEMP_LOW_LIM" }, + { BOT_OUTLET_HIGH_LIMIT, LOCAL_HIGH_LIMIT, SENSOR_NUM_BOT_OUTLET_TEMP_C, "SB_RB_BOT_OUTLET_TEMP_HIGH_LIM" }, + { ASIC_MEDHA0_SENSOR0_LOW_LIMIT, REMOTE_1_LOW_LIMIT, SENSOR_NUM_ASIC_MEDHA0_SENSOR0_TEMP_C, "SB_RB_ASIC_MEDHA0_SENSOR0_TEMP_LOW_LIM" }, + { ASIC_MEDHA0_SENSOR0_HIGH_LIMIT, REMOTE_1_HIGH_LIMIT, SENSOR_NUM_ASIC_MEDHA0_SENSOR0_TEMP_C, "SB_RB_ASIC_MEDHA0_SENSOR0_TEMP_HIGH_LIM" }, + { ASIC_MEDHA0_SENSOR1_LOW_LIMIT, REMOTE_2_LOW_LIMIT, SENSOR_NUM_ASIC_MEDHA0_SENSOR1_TEMP_C, "SB_RB_ASIC_MEDHA0_SENSOR1_TEMP_LOW_LIM" }, + { ASIC_MEDHA0_SENSOR1_HIGH_LIMIT, REMOTE_2_HIGH_LIMIT, SENSOR_NUM_ASIC_MEDHA0_SENSOR1_TEMP_C, "SB_RB_ASIC_MEDHA0_SENSOR1_TEMP_HIGH_LIM" }, + { ASIC_OWL_W_LOW_LIMIT, REMOTE_1_LOW_LIMIT, SENSOR_NUM_ASIC_OWL_W_TEMP_C, "SB_RB_ASIC_OWL_W_TEMP_LOW_LIM" }, + { ASIC_OWL_W_HIGH_LIMIT, REMOTE_1_HIGH_LIMIT, SENSOR_NUM_ASIC_OWL_W_TEMP_C, "SB_RB_ASIC_OWL_W_TEMP_HIGH_LIM" }, + { ASIC_OWL_E_LOW_LIMIT, REMOTE_2_LOW_LIMIT, SENSOR_NUM_ASIC_OWL_E_TEMP_C, "SB_RB_ASIC_OWL_E_TEMP_LOW_LIM" }, + { ASIC_OWL_E_HIGH_LIMIT, REMOTE_2_HIGH_LIMIT, SENSOR_NUM_ASIC_OWL_E_TEMP_C, "SB_RB_ASIC_OWL_E_TEMP_HIGH_LIM" }, + { ASIC_MEDHA1_SENSOR0_LOW_LIMIT, REMOTE_1_LOW_LIMIT, SENSOR_NUM_ASIC_MEDHA1_SENSOR0_TEMP_C, "SB_RB_ASIC_MEDHA1_SENSOR0_TEMP_LOW_LIM" }, + { ASIC_MEDHA1_SENSOR0_HIGH_LIMIT, REMOTE_1_HIGH_LIMIT, SENSOR_NUM_ASIC_MEDHA1_SENSOR0_TEMP_C, "SB_RB_ASIC_MEDHA1_SENSOR0_TEMP_HIGH_LIM" }, + { ASIC_MEDHA1_SENSOR1_LOW_LIMIT, REMOTE_2_LOW_LIMIT, SENSOR_NUM_ASIC_MEDHA1_SENSOR1_TEMP_C, "SB_RB_ASIC_MEDHA1_SENSOR1_TEMP_LOW_LIM" }, + { ASIC_MEDHA1_SENSOR1_HIGH_LIMIT, REMOTE_2_HIGH_LIMIT, SENSOR_NUM_ASIC_MEDHA1_SENSOR1_TEMP_C, "SB_RB_ASIC_MEDHA1_SENSOR1_TEMP_HIGH_LIM" }, + { ASIC_HAMSA_CRM_LOW_LIMIT, REMOTE_1_LOW_LIMIT, SENSOR_NUM_ASIC_HAMSA_CRM_TEMP_C, "SB_RB_ASIC_HAMSA_CRM_TEMP_LOW_LIM" }, + { ASIC_HAMSA_CRM_HIGH_LIMIT, REMOTE_1_HIGH_LIMIT, SENSOR_NUM_ASIC_HAMSA_CRM_TEMP_C, "SB_RB_ASIC_HAMSA_CRM_TEMP_HIGH_LIM" }, + { ASIC_HAMSA_LS_LOW_LIMIT, REMOTE_2_LOW_LIMIT, SENSOR_NUM_ASIC_HAMSA_LS_TEMP_C, "SB_RB_ASIC_HAMSA_LS_TEMP_LOW_LIM" }, + { ASIC_HAMSA_LS_HIGH_LIMIT, REMOTE_2_HIGH_LIMIT, SENSOR_NUM_ASIC_HAMSA_LS_TEMP_C, "SB_RB_ASIC_HAMSA_LS_TEMP_HIGH_LIM" }, +}; + +bool set_temp_threshold_user_settings(void *temp_threshold_user_settings) +{ + CHECK_NULL_ARG_WITH_RETURN(temp_threshold_user_settings, false); + + /*write the temp_threshold_user_settings to eeprom */ + if (!plat_eeprom_write(TEMP_THRESHOLD_USER_SETTINGS_OFFSET, temp_threshold_user_settings, sizeof(struct temp_threshold_user_settings_struct))) + { + LOG_ERR("Failed to write temp_threshold_user_settings to eeprom"); + return false; + } + + k_msleep(EEPROM_MAX_WRITE_TIME); + + return true; +} + +temp_threshold_user_settings_struct temp_threshold_user_settings = { 0 }; +struct temp_threshold_user_settings_struct temp_threshold_default_settings = { 0 }; +bool set_plat_temp_threshold(uint8_t temp_index_threshold_type, uint32_t *millidegree_celsius, + bool is_default, bool is_perm) +{ + CHECK_NULL_ARG_WITH_RETURN(millidegree_celsius, false); + + if (temp_index_threshold_type >= PLAT_TEMP_INDEX_THRESHOLD_TYPE_MAX) { + LOG_ERR("Invalid temp threshold type(%x)", temp_index_threshold_type); + return false; + } + + uint8_t temp_threshold_type_tmp = + temp_index_threshold_type_table[temp_index_threshold_type].temp_threshold_type; + + uint8_t sensor_id = temp_index_threshold_type_table[temp_index_threshold_type].sensor_id; + sensor_cfg *cfg = get_sensor_cfg_by_sensor_id(sensor_id); + uint32_t setting_millidegree_celsius = *millidegree_celsius; + + if (cfg == NULL) { + LOG_ERR("Failed to get sensor config for sensor 0x%x", sensor_id); + return false; + } + + if (is_default) { + *millidegree_celsius = temp_threshold_default_settings + .temperature_reg_val[temp_index_threshold_type]; + setting_millidegree_celsius = + temp_threshold_default_settings + .temperature_reg_val[temp_index_threshold_type]; + } + + switch (cfg->type) { + case sensor_dev_tmp431: + if (!tmp432_set_temp_threshold(cfg, temp_threshold_type_tmp, millidegree_celsius)) { + LOG_ERR("The TMP431 temp threshold setting failed"); + return false; + } + break; + case sensor_dev_tmp75: + if (!tmp75_set_temp_threshold(cfg, temp_threshold_type_tmp, millidegree_celsius)) { + LOG_ERR("The TMP75 temp threshold setting failed"); + return false; + } + break; + default: + LOG_ERR("Unsupport temp type(%x)", cfg->type); + return false; + } + + if (is_perm) { + temp_threshold_user_settings.temperature_reg_val[temp_index_threshold_type] = + setting_millidegree_celsius; + set_temp_threshold_user_settings(&temp_threshold_user_settings); + } + + return true; +} + +bool get_plat_temp_threshold(uint8_t temp_index_threshold_type, uint32_t *millidegree_celsius) +{ + CHECK_NULL_ARG_WITH_RETURN(millidegree_celsius, false); + + if (temp_index_threshold_type >= PLAT_TEMP_INDEX_THRESHOLD_TYPE_MAX) { + LOG_ERR("Invalid temp threshold type(%x)", temp_index_threshold_type); + return false; + } + + uint8_t temp_threshold_type_tmp = + temp_index_threshold_type_table[temp_index_threshold_type].temp_threshold_type; + + uint8_t sensor_id = temp_index_threshold_type_table[temp_index_threshold_type].sensor_id; + sensor_cfg *cfg = get_sensor_cfg_by_sensor_id(sensor_id); + + if (cfg == NULL) { + LOG_ERR("Failed to get sensor config for sensor 0x%x", sensor_id); + return false; + } + + switch (cfg->type) { + case sensor_dev_tmp431: + if (!tmp432_get_temp_threshold(cfg, temp_threshold_type_tmp, millidegree_celsius)) { + LOG_ERR("The TMP431 temp threshold reading failed"); + return false; + } + break; + case sensor_dev_tmp75: + if (!tmp75_get_temp_threshold(cfg, temp_threshold_type_tmp, millidegree_celsius)) { + LOG_ERR("The TMP75 temp threshold reading failed"); + return false; + } + break; + default: + LOG_ERR("Unsupport temp type(%x)", cfg->type); + return false; + } + + return true; +} + +bool get_temp_threshold_type_enum(uint8_t *name, uint8_t *num) +{ + CHECK_NULL_ARG_WITH_RETURN(name, false); + CHECK_NULL_ARG_WITH_RETURN(num, false); + + for (int i = 0; i < PLAT_TEMP_INDEX_THRESHOLD_TYPE_MAX; i++) { + if (strcmp(name, temp_index_threshold_type_table[i].temp_threshold_name) == 0) { + *num = i; + return true; + } + } + + LOG_ERR("invalid tmp threshold type name %s", name); + return false; +} + +bool get_temp_index_threshold_type_name(uint8_t type, uint8_t **name) +{ + CHECK_NULL_ARG_WITH_RETURN(name, false); + + if (type >= PLAT_TEMP_INDEX_THRESHOLD_TYPE_MAX) { + *name = NULL; + return false; + } + + *name = (uint8_t *)temp_index_threshold_type_table[type].temp_threshold_name; + return true; +} + +bool plat_clear_temp_status(uint8_t rail) +{ + bool ret = false; + uint8_t sensor_id = temp_index_table[rail].sensor_id; + sensor_cfg *cfg = get_sensor_cfg_by_sensor_id(sensor_id); + + if (cfg == NULL) { + LOG_ERR("Failed to get sensor config for sensor 0x%x", sensor_id); + return false; + } + + switch (cfg->type) { + case sensor_dev_tmp431: + if (!tmp432_clear_temp_status(cfg)) { + LOG_ERR("The TEMP TMP432 temp status clear failed"); + goto err; + } + break; + case sensor_dev_tmp75: { + LOG_DBG("TMP75 temp_status cannot be cleared; its behavior depends on the temp_threshold settings."); + } break; + default: + LOG_ERR("Unsupport TEMP type(%x)", cfg->type); + goto err; + } + + ret = true; +err: + return ret; +} \ No newline at end of file diff --git a/meta-facebook/sb-rb/src/platform/plat_user_setting.h b/meta-facebook/sb-rb/src/platform/plat_user_setting.h index dcc983ce95..a676a9992e 100644 --- a/meta-facebook/sb-rb/src/platform/plat_user_setting.h +++ b/meta-facebook/sb-rb/src/platform/plat_user_setting.h @@ -22,17 +22,101 @@ #include "plat_cpld.h" #define VR_MUTEX_LOCK_TIMEOUT_MS 1000 - +#define TEMP_THRESHOLD_USER_SETTINGS_OFFSET 0x8100 +#define VR_VOUT_USER_SETTINGS_OFFSET 0x8000 +#define SOC_PCIE_PERST_USER_SETTINGS_OFFSET 0x8300 +#define BOOTSTRAP_USER_SETTINGS_OFFSET 0x8400 #define THERMALTRIP_USER_SETTINGS_OFFSET 0x8500 +#define THROTTLE_USER_SETTINGS_OFFSET 0x8600 #define CPLD_THERMALTRIP_SWITCH_ADDR 0x3A enum USER_SETTING_OFFSET_E { THERMALTRIP, }; +enum PLAT_TEMP_INDEX_E { + TEMP_INDEX_TOP_INLET, + TEMP_INDEX_BOT_INLET, + TEMP_INDEX_BOT_OUTLET, + TEMP_INDEX_ASIC_MEDHA0_SENSOR0, + TEMP_INDEX_ASIC_MEDHA0_SENSOR1, + TEMP_INDEX_ASIC_OWL_W, + TEMP_INDEX_ASIC_OWL_E, + TEMP_INDEX_ASIC_MEDHA1_SENSOR0, + TEMP_INDEX_ASIC_MEDHA1_SENSOR1, + TEMP_INDEX_ASIC_HAMSA_CRM, + TEMP_INDEX_ASIC_HAMSA_LS, + TEMP_INDEX_MAX, +}; +/* +SENSOR_NUM_ASIC_MEDHA0_SENSOR0_TEMP_C 0x04 +SENSOR_NUM_ASIC_MEDHA0_SENSOR1_TEMP_C 0x05 +SENSOR_NUM_ASIC_OWL_W_TEMP_C 0x06 +SENSOR_NUM_ASIC_OWL_E_TEMP_C 0x07 +SENSOR_NUM_ASIC_MEDHA1_SENSOR0_TEMP_C 0x08 +SENSOR_NUM_ASIC_MEDHA1_SENSOR1_TEMP_C 0x09 +SENSOR_NUM_ASIC_HAMSA_CRM_TEMP_C 0x0A +SENSOR_NUM_ASIC_HAMSA_LS_TEMP_C 0x0B +*/ + + +enum PLAT_TEMP_INDEX_THRESHOLD_TYPE_E { + TOP_INLET_LOW_LIMIT, + TOP_INLET_HIGH_LIMIT, + BOT_INLET_LOW_LIMIT, + BOT_INLET_HIGH_LIMIT, + BOT_OUTLET_LOW_LIMIT, + BOT_OUTLET_HIGH_LIMIT, + ASIC_MEDHA0_SENSOR0_LOW_LIMIT, + ASIC_MEDHA0_SENSOR0_HIGH_LIMIT, + ASIC_MEDHA0_SENSOR1_LOW_LIMIT, + ASIC_MEDHA0_SENSOR1_HIGH_LIMIT, + ASIC_OWL_W_LOW_LIMIT, + ASIC_OWL_W_HIGH_LIMIT, + ASIC_OWL_E_LOW_LIMIT, + ASIC_OWL_E_HIGH_LIMIT, + ASIC_MEDHA1_SENSOR0_LOW_LIMIT, + ASIC_MEDHA1_SENSOR0_HIGH_LIMIT, + ASIC_MEDHA1_SENSOR1_LOW_LIMIT, + ASIC_MEDHA1_SENSOR1_HIGH_LIMIT, + ASIC_HAMSA_CRM_LOW_LIMIT, + ASIC_HAMSA_CRM_HIGH_LIMIT, + ASIC_HAMSA_LS_LOW_LIMIT, + ASIC_HAMSA_LS_HIGH_LIMIT, + PLAT_TEMP_INDEX_THRESHOLD_TYPE_MAX, +}; + +typedef struct temp_mapping_sensor { + uint8_t index; + uint8_t sensor_id; + uint8_t *sensor_name; +} temp_mapping_sensor; + +typedef struct temp_threshold_mapping_sensor { + uint8_t temp_index_threshold_type; //PLAT_TEMP_INDEX_THRESHOLD_TYPE_E + uint8_t temp_threshold_type; + uint8_t sensor_id; + uint8_t *temp_threshold_name; +} temp_threshold_mapping_sensor; + typedef struct thermaltrip_user_settings_struct { uint8_t thermaltrip_user_setting_value; } thermaltrip_user_settings_struct; +typedef struct temp_threshold_user_settings_struct { + uint32_t temperature_reg_val[PLAT_TEMP_INDEX_THRESHOLD_TYPE_MAX]; +} temp_threshold_user_settings_struct; + + bool set_thermaltrip_user_settings(bool thermaltrip_enable, bool is_perm); +bool get_temp_sensor_rail_name(uint8_t rail, uint8_t **name); +bool get_temp_sensor_rail_enum(uint8_t *name, uint8_t *num); +bool plat_get_temp_status(uint8_t rail, uint8_t *temp_status); +bool get_temp_sensor_rail_name(uint8_t rail, uint8_t **name); +bool get_temp_threshold_type_enum(uint8_t *name, uint8_t *num); +bool get_temp_index_threshold_type_name(uint8_t type, uint8_t **name); +bool get_plat_temp_threshold(uint8_t temp_index_threshold_type, uint32_t *millidegree_celsius); +bool set_plat_temp_threshold(uint8_t temp_index_threshold_type, uint32_t *millidegree_celsius, + bool is_default, bool is_perm); +bool plat_clear_temp_status(uint8_t rail); #endif From 3aced256b8f096abc9f9fbf632a3ef47f5020daf Mon Sep 17 00:00:00 2001 From: Kevin Huang Date: Fri, 22 Aug 2025 15:05:33 +0800 Subject: [PATCH 6/7] move shell_clock include data in c file --- meta-facebook/sb-rb/src/shell/shell_clock.c | 10 +++++- meta-facebook/sb-rb/src/shell/shell_clock.h | 36 --------------------- 2 files changed, 9 insertions(+), 37 deletions(-) delete mode 100644 meta-facebook/sb-rb/src/shell/shell_clock.h diff --git a/meta-facebook/sb-rb/src/shell/shell_clock.c b/meta-facebook/sb-rb/src/shell/shell_clock.c index ffe38f0b3b..e4a8d73d73 100644 --- a/meta-facebook/sb-rb/src/shell/shell_clock.c +++ b/meta-facebook/sb-rb/src/shell/shell_clock.c @@ -22,7 +22,7 @@ #include #include "libutil.h" #include "plat_i2c.h" -#include "clock_shell.h" +#include LOG_MODULE_REGISTER(clock_shell); @@ -34,6 +34,14 @@ LOG_MODULE_REGISTER(clock_shell); #define CLK_BUF_100M_BYTE_COUNT 0x7 #define REGISTER_BYTE_MAX 4 +enum CLOCK_COMPONENT { CLK_BUF_100M_U85, CLK_BUF_100M_U87, CLK_BUF_100M_U88, CLK_COMPONENT_MAX }; + +typedef struct clock_compnt_mapping { + uint8_t clock_name_index; + uint8_t addr; + uint8_t bus; + uint8_t *clock_name; +} clock_compnt_mapping; typedef struct _clock_default_info { sys_snode_t node; bool is_default; diff --git a/meta-facebook/sb-rb/src/shell/shell_clock.h b/meta-facebook/sb-rb/src/shell/shell_clock.h deleted file mode 100644 index b1fe0388ae..0000000000 --- a/meta-facebook/sb-rb/src/shell/shell_clock.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef CLOCK_SHELL_H -#define CLOCK_SHELL_H - -#include - -enum CLOCK_COMPONENT { CLK_BUF_100M_U85, CLK_BUF_100M_U87, CLK_BUF_100M_U88, CLK_COMPONENT_MAX }; - -typedef struct clock_compnt_mapping { - uint8_t clock_name_index; - uint8_t addr; - uint8_t bus; - uint8_t *clock_name; -} clock_compnt_mapping; - -void cmd_set_clock(const struct shell *shell, size_t argc, char **argv); -void cmd_get_clock(const struct shell *shell, size_t argc, char **argv); -void cmd_get_clock_status(const struct shell *shell, size_t argc, char **argv); -void cmd_clear_clock_status(const struct shell *shell, size_t argc, char **argv); - -#endif From 3adadde15c7fd4cb84c913a92189b2661e2aed1a Mon Sep 17 00:00:00 2001 From: Kevin Huang Date: Fri, 2 Jan 2026 18:46:04 +0800 Subject: [PATCH 7/7] fix clang-format --- meta-facebook/sb-rb/src/platform/plat_cpld.c | 1 - .../sb-rb/src/platform/plat_user_setting.c | 85 ++++++++++++------- .../sb-rb/src/platform/plat_user_setting.h | 2 - .../sb-rb/src/shell/shell_plat_temp_status.c | 7 +- 4 files changed, 58 insertions(+), 37 deletions(-) diff --git a/meta-facebook/sb-rb/src/platform/plat_cpld.c b/meta-facebook/sb-rb/src/platform/plat_cpld.c index 1e3a65612d..c59913a33f 100644 --- a/meta-facebook/sb-rb/src/platform/plat_cpld.c +++ b/meta-facebook/sb-rb/src/platform/plat_cpld.c @@ -23,7 +23,6 @@ #include "plat_hook.h" #include - #define POLLING_CPLD_STACK_SIZE 2048 #define CPLD_POLLING_INTERVAL_MS 1000 // 1 second polling interval diff --git a/meta-facebook/sb-rb/src/platform/plat_user_setting.c b/meta-facebook/sb-rb/src/platform/plat_user_setting.c index 08813ffa8f..a27716f4d7 100644 --- a/meta-facebook/sb-rb/src/platform/plat_user_setting.c +++ b/meta-facebook/sb-rb/src/platform/plat_user_setting.c @@ -76,13 +76,18 @@ temp_mapping_sensor temp_index_table[] = { { TEMP_INDEX_TOP_INLET, SENSOR_NUM_TOP_INLET_TEMP_C, "SB_RB_TOP_INLET_TEMP" }, { TEMP_INDEX_BOT_INLET, SENSOR_NUM_BOT_INLET_TEMP_C, "SB_RB_BOT_INLET_TEMP" }, { TEMP_INDEX_BOT_OUTLET, SENSOR_NUM_BOT_OUTLET_TEMP_C, "SB_RB_BOT_OUTLET_TEMP" }, - { TEMP_INDEX_ASIC_MEDHA0_SENSOR0, SENSOR_NUM_ASIC_MEDHA0_SENSOR0_TEMP_C, "SB_RB_ASIC_MEDHA0_SENSOR0_TEMP" }, - { TEMP_INDEX_ASIC_MEDHA0_SENSOR1, SENSOR_NUM_ASIC_MEDHA0_SENSOR1_TEMP_C, "SB_RB_ASIC_MEDHA0_SENSOR1_TEMP" }, + { TEMP_INDEX_ASIC_MEDHA0_SENSOR0, SENSOR_NUM_ASIC_MEDHA0_SENSOR0_TEMP_C, + "SB_RB_ASIC_MEDHA0_SENSOR0_TEMP" }, + { TEMP_INDEX_ASIC_MEDHA0_SENSOR1, SENSOR_NUM_ASIC_MEDHA0_SENSOR1_TEMP_C, + "SB_RB_ASIC_MEDHA0_SENSOR1_TEMP" }, { TEMP_INDEX_ASIC_OWL_W, SENSOR_NUM_ASIC_OWL_W_TEMP_C, "SB_RB_ASIC_OWL_W_TEMP" }, { TEMP_INDEX_ASIC_OWL_E, SENSOR_NUM_ASIC_OWL_E_TEMP_C, "SB_RB_ASIC_OWL_E_TEMP" }, - { TEMP_INDEX_ASIC_MEDHA1_SENSOR0, SENSOR_NUM_ASIC_MEDHA1_SENSOR0_TEMP_C, "SB_RB_ASIC_MEDHA1_SENSOR0_TEMP" }, - { TEMP_INDEX_ASIC_MEDHA1_SENSOR1, SENSOR_NUM_ASIC_MEDHA1_SENSOR1_TEMP_C, "SB_RB_ASIC_MEDHA1_SENSOR1_TEMP" }, - { TEMP_INDEX_ASIC_HAMSA_CRM, SENSOR_NUM_ASIC_HAMSA_CRM_TEMP_C, "SB_RB_ASIC_HAMSA_CRM_TEMP" }, + { TEMP_INDEX_ASIC_MEDHA1_SENSOR0, SENSOR_NUM_ASIC_MEDHA1_SENSOR0_TEMP_C, + "SB_RB_ASIC_MEDHA1_SENSOR0_TEMP" }, + { TEMP_INDEX_ASIC_MEDHA1_SENSOR1, SENSOR_NUM_ASIC_MEDHA1_SENSOR1_TEMP_C, + "SB_RB_ASIC_MEDHA1_SENSOR1_TEMP" }, + { TEMP_INDEX_ASIC_HAMSA_CRM, SENSOR_NUM_ASIC_HAMSA_CRM_TEMP_C, + "SB_RB_ASIC_HAMSA_CRM_TEMP" }, { TEMP_INDEX_ASIC_HAMSA_LS, SENSOR_NUM_ASIC_HAMSA_LS_TEMP_C, "SB_RB_ASIC_HAMSA_LS_TEMP" }, }; @@ -168,28 +173,50 @@ bool get_temp_sensor_rail_name(uint8_t rail, uint8_t **name) } // to do need check remot or local temp_threshold_mapping_sensor temp_index_threshold_type_table[] = { - { TOP_INLET_LOW_LIMIT, LOCAL_LOW_LIMIT, SENSOR_NUM_TOP_INLET_TEMP_C, "SB_RB_TOP_INLET_TEMP_LOW_LIM" }, - { TOP_INLET_HIGH_LIMIT, LOCAL_HIGH_LIMIT, SENSOR_NUM_TOP_INLET_TEMP_C, "SB_RB_TOP_INLET_TEMP_HIGH_LIM" }, - { BOT_INLET_LOW_LIMIT, LOCAL_LOW_LIMIT, SENSOR_NUM_BOT_INLET_TEMP_C, "SB_RB_BOT_INLET_TEMP_LOW_LIM" }, - { BOT_INLET_HIGH_LIMIT, LOCAL_HIGH_LIMIT, SENSOR_NUM_BOT_INLET_TEMP_C, "SB_RB_BOT_INLET_TEMP_HIGH_LIM" }, - { BOT_OUTLET_LOW_LIMIT, LOCAL_LOW_LIMIT, SENSOR_NUM_BOT_OUTLET_TEMP_C, "SB_RB_BOT_OUTLET_TEMP_LOW_LIM" }, - { BOT_OUTLET_HIGH_LIMIT, LOCAL_HIGH_LIMIT, SENSOR_NUM_BOT_OUTLET_TEMP_C, "SB_RB_BOT_OUTLET_TEMP_HIGH_LIM" }, - { ASIC_MEDHA0_SENSOR0_LOW_LIMIT, REMOTE_1_LOW_LIMIT, SENSOR_NUM_ASIC_MEDHA0_SENSOR0_TEMP_C, "SB_RB_ASIC_MEDHA0_SENSOR0_TEMP_LOW_LIM" }, - { ASIC_MEDHA0_SENSOR0_HIGH_LIMIT, REMOTE_1_HIGH_LIMIT, SENSOR_NUM_ASIC_MEDHA0_SENSOR0_TEMP_C, "SB_RB_ASIC_MEDHA0_SENSOR0_TEMP_HIGH_LIM" }, - { ASIC_MEDHA0_SENSOR1_LOW_LIMIT, REMOTE_2_LOW_LIMIT, SENSOR_NUM_ASIC_MEDHA0_SENSOR1_TEMP_C, "SB_RB_ASIC_MEDHA0_SENSOR1_TEMP_LOW_LIM" }, - { ASIC_MEDHA0_SENSOR1_HIGH_LIMIT, REMOTE_2_HIGH_LIMIT, SENSOR_NUM_ASIC_MEDHA0_SENSOR1_TEMP_C, "SB_RB_ASIC_MEDHA0_SENSOR1_TEMP_HIGH_LIM" }, - { ASIC_OWL_W_LOW_LIMIT, REMOTE_1_LOW_LIMIT, SENSOR_NUM_ASIC_OWL_W_TEMP_C, "SB_RB_ASIC_OWL_W_TEMP_LOW_LIM" }, - { ASIC_OWL_W_HIGH_LIMIT, REMOTE_1_HIGH_LIMIT, SENSOR_NUM_ASIC_OWL_W_TEMP_C, "SB_RB_ASIC_OWL_W_TEMP_HIGH_LIM" }, - { ASIC_OWL_E_LOW_LIMIT, REMOTE_2_LOW_LIMIT, SENSOR_NUM_ASIC_OWL_E_TEMP_C, "SB_RB_ASIC_OWL_E_TEMP_LOW_LIM" }, - { ASIC_OWL_E_HIGH_LIMIT, REMOTE_2_HIGH_LIMIT, SENSOR_NUM_ASIC_OWL_E_TEMP_C, "SB_RB_ASIC_OWL_E_TEMP_HIGH_LIM" }, - { ASIC_MEDHA1_SENSOR0_LOW_LIMIT, REMOTE_1_LOW_LIMIT, SENSOR_NUM_ASIC_MEDHA1_SENSOR0_TEMP_C, "SB_RB_ASIC_MEDHA1_SENSOR0_TEMP_LOW_LIM" }, - { ASIC_MEDHA1_SENSOR0_HIGH_LIMIT, REMOTE_1_HIGH_LIMIT, SENSOR_NUM_ASIC_MEDHA1_SENSOR0_TEMP_C, "SB_RB_ASIC_MEDHA1_SENSOR0_TEMP_HIGH_LIM" }, - { ASIC_MEDHA1_SENSOR1_LOW_LIMIT, REMOTE_2_LOW_LIMIT, SENSOR_NUM_ASIC_MEDHA1_SENSOR1_TEMP_C, "SB_RB_ASIC_MEDHA1_SENSOR1_TEMP_LOW_LIM" }, - { ASIC_MEDHA1_SENSOR1_HIGH_LIMIT, REMOTE_2_HIGH_LIMIT, SENSOR_NUM_ASIC_MEDHA1_SENSOR1_TEMP_C, "SB_RB_ASIC_MEDHA1_SENSOR1_TEMP_HIGH_LIM" }, - { ASIC_HAMSA_CRM_LOW_LIMIT, REMOTE_1_LOW_LIMIT, SENSOR_NUM_ASIC_HAMSA_CRM_TEMP_C, "SB_RB_ASIC_HAMSA_CRM_TEMP_LOW_LIM" }, - { ASIC_HAMSA_CRM_HIGH_LIMIT, REMOTE_1_HIGH_LIMIT, SENSOR_NUM_ASIC_HAMSA_CRM_TEMP_C, "SB_RB_ASIC_HAMSA_CRM_TEMP_HIGH_LIM" }, - { ASIC_HAMSA_LS_LOW_LIMIT, REMOTE_2_LOW_LIMIT, SENSOR_NUM_ASIC_HAMSA_LS_TEMP_C, "SB_RB_ASIC_HAMSA_LS_TEMP_LOW_LIM" }, - { ASIC_HAMSA_LS_HIGH_LIMIT, REMOTE_2_HIGH_LIMIT, SENSOR_NUM_ASIC_HAMSA_LS_TEMP_C, "SB_RB_ASIC_HAMSA_LS_TEMP_HIGH_LIM" }, + { TOP_INLET_LOW_LIMIT, LOCAL_LOW_LIMIT, SENSOR_NUM_TOP_INLET_TEMP_C, + "SB_RB_TOP_INLET_TEMP_LOW_LIM" }, + { TOP_INLET_HIGH_LIMIT, LOCAL_HIGH_LIMIT, SENSOR_NUM_TOP_INLET_TEMP_C, + "SB_RB_TOP_INLET_TEMP_HIGH_LIM" }, + { BOT_INLET_LOW_LIMIT, LOCAL_LOW_LIMIT, SENSOR_NUM_BOT_INLET_TEMP_C, + "SB_RB_BOT_INLET_TEMP_LOW_LIM" }, + { BOT_INLET_HIGH_LIMIT, LOCAL_HIGH_LIMIT, SENSOR_NUM_BOT_INLET_TEMP_C, + "SB_RB_BOT_INLET_TEMP_HIGH_LIM" }, + { BOT_OUTLET_LOW_LIMIT, LOCAL_LOW_LIMIT, SENSOR_NUM_BOT_OUTLET_TEMP_C, + "SB_RB_BOT_OUTLET_TEMP_LOW_LIM" }, + { BOT_OUTLET_HIGH_LIMIT, LOCAL_HIGH_LIMIT, SENSOR_NUM_BOT_OUTLET_TEMP_C, + "SB_RB_BOT_OUTLET_TEMP_HIGH_LIM" }, + { ASIC_MEDHA0_SENSOR0_LOW_LIMIT, REMOTE_1_LOW_LIMIT, SENSOR_NUM_ASIC_MEDHA0_SENSOR0_TEMP_C, + "SB_RB_ASIC_MEDHA0_SENSOR0_TEMP_LOW_LIM" }, + { ASIC_MEDHA0_SENSOR0_HIGH_LIMIT, REMOTE_1_HIGH_LIMIT, + SENSOR_NUM_ASIC_MEDHA0_SENSOR0_TEMP_C, "SB_RB_ASIC_MEDHA0_SENSOR0_TEMP_HIGH_LIM" }, + { ASIC_MEDHA0_SENSOR1_LOW_LIMIT, REMOTE_2_LOW_LIMIT, SENSOR_NUM_ASIC_MEDHA0_SENSOR1_TEMP_C, + "SB_RB_ASIC_MEDHA0_SENSOR1_TEMP_LOW_LIM" }, + { ASIC_MEDHA0_SENSOR1_HIGH_LIMIT, REMOTE_2_HIGH_LIMIT, + SENSOR_NUM_ASIC_MEDHA0_SENSOR1_TEMP_C, "SB_RB_ASIC_MEDHA0_SENSOR1_TEMP_HIGH_LIM" }, + { ASIC_OWL_W_LOW_LIMIT, REMOTE_1_LOW_LIMIT, SENSOR_NUM_ASIC_OWL_W_TEMP_C, + "SB_RB_ASIC_OWL_W_TEMP_LOW_LIM" }, + { ASIC_OWL_W_HIGH_LIMIT, REMOTE_1_HIGH_LIMIT, SENSOR_NUM_ASIC_OWL_W_TEMP_C, + "SB_RB_ASIC_OWL_W_TEMP_HIGH_LIM" }, + { ASIC_OWL_E_LOW_LIMIT, REMOTE_2_LOW_LIMIT, SENSOR_NUM_ASIC_OWL_E_TEMP_C, + "SB_RB_ASIC_OWL_E_TEMP_LOW_LIM" }, + { ASIC_OWL_E_HIGH_LIMIT, REMOTE_2_HIGH_LIMIT, SENSOR_NUM_ASIC_OWL_E_TEMP_C, + "SB_RB_ASIC_OWL_E_TEMP_HIGH_LIM" }, + { ASIC_MEDHA1_SENSOR0_LOW_LIMIT, REMOTE_1_LOW_LIMIT, SENSOR_NUM_ASIC_MEDHA1_SENSOR0_TEMP_C, + "SB_RB_ASIC_MEDHA1_SENSOR0_TEMP_LOW_LIM" }, + { ASIC_MEDHA1_SENSOR0_HIGH_LIMIT, REMOTE_1_HIGH_LIMIT, + SENSOR_NUM_ASIC_MEDHA1_SENSOR0_TEMP_C, "SB_RB_ASIC_MEDHA1_SENSOR0_TEMP_HIGH_LIM" }, + { ASIC_MEDHA1_SENSOR1_LOW_LIMIT, REMOTE_2_LOW_LIMIT, SENSOR_NUM_ASIC_MEDHA1_SENSOR1_TEMP_C, + "SB_RB_ASIC_MEDHA1_SENSOR1_TEMP_LOW_LIM" }, + { ASIC_MEDHA1_SENSOR1_HIGH_LIMIT, REMOTE_2_HIGH_LIMIT, + SENSOR_NUM_ASIC_MEDHA1_SENSOR1_TEMP_C, "SB_RB_ASIC_MEDHA1_SENSOR1_TEMP_HIGH_LIM" }, + { ASIC_HAMSA_CRM_LOW_LIMIT, REMOTE_1_LOW_LIMIT, SENSOR_NUM_ASIC_HAMSA_CRM_TEMP_C, + "SB_RB_ASIC_HAMSA_CRM_TEMP_LOW_LIM" }, + { ASIC_HAMSA_CRM_HIGH_LIMIT, REMOTE_1_HIGH_LIMIT, SENSOR_NUM_ASIC_HAMSA_CRM_TEMP_C, + "SB_RB_ASIC_HAMSA_CRM_TEMP_HIGH_LIM" }, + { ASIC_HAMSA_LS_LOW_LIMIT, REMOTE_2_LOW_LIMIT, SENSOR_NUM_ASIC_HAMSA_LS_TEMP_C, + "SB_RB_ASIC_HAMSA_LS_TEMP_LOW_LIM" }, + { ASIC_HAMSA_LS_HIGH_LIMIT, REMOTE_2_HIGH_LIMIT, SENSOR_NUM_ASIC_HAMSA_LS_TEMP_C, + "SB_RB_ASIC_HAMSA_LS_TEMP_HIGH_LIM" }, }; bool set_temp_threshold_user_settings(void *temp_threshold_user_settings) @@ -197,8 +224,8 @@ bool set_temp_threshold_user_settings(void *temp_threshold_user_settings) CHECK_NULL_ARG_WITH_RETURN(temp_threshold_user_settings, false); /*write the temp_threshold_user_settings to eeprom */ - if (!plat_eeprom_write(TEMP_THRESHOLD_USER_SETTINGS_OFFSET, temp_threshold_user_settings, sizeof(struct temp_threshold_user_settings_struct))) - { + if (!plat_eeprom_write(TEMP_THRESHOLD_USER_SETTINGS_OFFSET, temp_threshold_user_settings, + sizeof(struct temp_threshold_user_settings_struct))) { LOG_ERR("Failed to write temp_threshold_user_settings to eeprom"); return false; } diff --git a/meta-facebook/sb-rb/src/platform/plat_user_setting.h b/meta-facebook/sb-rb/src/platform/plat_user_setting.h index a676a9992e..9814a9b598 100644 --- a/meta-facebook/sb-rb/src/platform/plat_user_setting.h +++ b/meta-facebook/sb-rb/src/platform/plat_user_setting.h @@ -59,7 +59,6 @@ SENSOR_NUM_ASIC_HAMSA_CRM_TEMP_C 0x0A SENSOR_NUM_ASIC_HAMSA_LS_TEMP_C 0x0B */ - enum PLAT_TEMP_INDEX_THRESHOLD_TYPE_E { TOP_INLET_LOW_LIMIT, TOP_INLET_HIGH_LIMIT, @@ -107,7 +106,6 @@ typedef struct temp_threshold_user_settings_struct { uint32_t temperature_reg_val[PLAT_TEMP_INDEX_THRESHOLD_TYPE_MAX]; } temp_threshold_user_settings_struct; - bool set_thermaltrip_user_settings(bool thermaltrip_enable, bool is_perm); bool get_temp_sensor_rail_name(uint8_t rail, uint8_t **name); bool get_temp_sensor_rail_enum(uint8_t *name, uint8_t *num); diff --git a/meta-facebook/sb-rb/src/shell/shell_plat_temp_status.c b/meta-facebook/sb-rb/src/shell/shell_plat_temp_status.c index aec4ce669a..43828a6532 100644 --- a/meta-facebook/sb-rb/src/shell/shell_plat_temp_status.c +++ b/meta-facebook/sb-rb/src/shell/shell_plat_temp_status.c @@ -25,7 +25,6 @@ LOG_MODULE_REGISTER(plat_temp_status_shell, LOG_LEVEL_DBG); - static int cmd_temp_status_get(const struct shell *shell, size_t argc, char **argv) { if (!(argc == 2)) { @@ -46,13 +45,11 @@ static int cmd_temp_status_get(const struct shell *shell, size_t argc, char **ar return -1; } if (rail == TEMP_INDEX_TOP_INLET || rail == TEMP_INDEX_BOT_INLET || - rail == TEMP_INDEX_BOT_OUTLET) { + rail == TEMP_INDEX_BOT_OUTLET) { shell_print(shell, "%s: 0x%02x (ALERT_N)", "TMP75", temp_status); - } - else { + } else { shell_print(shell, "%s: 0x%02x", "TMP432", temp_status); } - return 0; }