26#if defined (_WIN32) || defined (_WIN64)
30 #ifdef IGSC_DLL_EXPORTS
31 #define IGSC_EXPORT __declspec(dllexport)
33 #define IGSC_EXPORT __declspec(dllimport)
40 #ifdef IGSC_DLL_EXPORTS
41 #define IGSC_EXPORT __attribute__((__visibility__("default")))
54#define BIT(x) (1U << (x))
58#define UNUSED_VAR(_v) (void)_v
71#define IGSC_INVALID_DEVICE_HANDLE (-1)
74#define IGSC_INVALID_DEVICE_HANDLE ((void *)0)
144#define IGSC_MAX_OEM_VERSION_LENGTH 256
188#define IGSC_FWDATA_FORMAT_VERSION_1 0x1
189#define IGSC_FWDATA_FORMAT_VERSION_2 0x2
191#define IGSC_FWDATA_FITB_VALID_MASK 0x1
211#define IGSC_OPROM_VER_SIZE 8
275struct igsc_device_iterator;
280#define IGSC_INFO_NAME_SIZE 256
305#define IGSC_ERROR_BASE 0x0000U
306#define IGSC_SUCCESS (IGSC_ERROR_BASE + 0)
307#define IGSC_ERROR_INTERNAL (IGSC_ERROR_BASE + 1)
308#define IGSC_ERROR_NOMEM (IGSC_ERROR_BASE + 2)
309#define IGSC_ERROR_INVALID_PARAMETER (IGSC_ERROR_BASE + 3)
310#define IGSC_ERROR_DEVICE_NOT_FOUND (IGSC_ERROR_BASE + 4)
311#define IGSC_ERROR_BAD_IMAGE (IGSC_ERROR_BASE + 5)
312#define IGSC_ERROR_PROTOCOL (IGSC_ERROR_BASE + 6)
313#define IGSC_ERROR_BUFFER_TOO_SMALL (IGSC_ERROR_BASE + 7)
314#define IGSC_ERROR_INVALID_STATE (IGSC_ERROR_BASE + 8)
315#define IGSC_ERROR_NOT_SUPPORTED (IGSC_ERROR_BASE + 9)
316#define IGSC_ERROR_INCOMPATIBLE (IGSC_ERROR_BASE + 10)
317#define IGSC_ERROR_TIMEOUT (IGSC_ERROR_BASE + 11)
318#define IGSC_ERROR_PERMISSION_DENIED (IGSC_ERROR_BASE + 12)
319#define IGSC_ERROR_BUSY (IGSC_ERROR_BASE + 13)
327#define IGSC_HW_CONFIG_BLOB_SIZE 48
335 uint32_t format_version;
336 uint8_t blob[IGSC_HW_CONFIG_BLOB_SIZE];
353#define IGSC_MAX_IMAGE_SIZE (8*1024*1024)
389#define IGSC_MAX_FW_STATUS_INDEX 5
402 IN uint32_t fwsts_index,
403 OUT uint32_t *fwsts_value);
446 IN
const char *device_path);
534 IN uint32_t buffer_len,
575 IN uint32_t buffer_len,
601 IN
char *buf, IN
size_t length);
626 IN
const uint8_t *buffer,
627 IN
const uint32_t buffer_len,
633 uint32_t force_update : 1;
634 uint32_t reserved : 31;
652 IN
const uint8_t *buffer,
653 IN
const uint32_t buffer_len,
676 IN
const uint8_t *buffer,
677 IN
const uint32_t buffer_len,
695 IN
const uint8_t *buffer,
696 IN
const uint32_t buffer_len,
728 IN
const uint8_t *buffer,
729 IN uint32_t buffer_len);
829 OUT uint32_t *count);
847 IN OUT uint32_t *count);
922 IN uint32_t oprom_type,
939 IN uint32_t oprom_type,
959 IN
const uint8_t *buffer,
960 IN uint32_t buffer_len);
987 IN uint32_t *oprom_type);
1000 OUT uint32_t *count);
1018 IN OUT uint32_t *count);
1070 IN uint32_t request_type,
1071 OUT uint32_t *count);
1089 IN uint32_t request_type,
1091 IN OUT uint32_t *count);
1102 IN uint32_t request_type);
1116 IN uint32_t request_type,
1130 IN uint32_t request_type,
1131 OUT
bool *has_4ids_extension);
1143 OUT
bool *has_2ids_extension);
1155 OUT
bool *devid_enforced);
1194 IN
const uint32_t buffer_len,
1249 IGSC_IFR_TILE_0 = 0x0001,
1250 IGSC_IFR_TILE_1 = 0x0002,
1257 IGSC_IFR_SUPPORTED_TEST_SCAN = 0x00000001,
1258 IGSC_IFR_SUPPORTED_TEST_ARRAY = 0x00000002,
1265 IGSC_IFR_REPAIR_DSS_EN = 0x00000001,
1266 IGSC_IFR_REPAIR_ARRAY = 0x00000002,
1297 OUT uint8_t *result,
1298 OUT uint32_t *supported_tests,
1299 OUT uint32_t *ifr_applied,
1300 OUT uint8_t *tiles_num);
1316 IN uint8_t test_type,
1318 OUT uint8_t *result,
1319 OUT uint8_t *run_status,
1320 OUT uint32_t *error_code);
1357 OUT uint32_t *max_num_of_tiles);
1419 OUT uint32_t *status,
1420 OUT uint32_t *extended_status,
1421 OUT uint32_t *pending_reset,
1422 OUT uint32_t *error_code);
1437 OUT uint32_t *status,
1438 OUT uint32_t *pending_reset,
1439 OUT uint32_t *error_code);
1508 OUT uint32_t *supported_tests,
1509 OUT uint32_t *hw_capabilities,
1510 OUT uint32_t *ifr_applied,
1511 OUT uint32_t *prev_errors,
1512 OUT uint32_t *pending_reset);
1524 OUT uint16_t *supported_tiles);
1539 IN uint16_t tile_idx,
1540 OUT uint16_t *used_array_repair_entries,
1541 OUT uint16_t *available_array_repair_entries,
1542 OUT uint16_t *failed_dss);
1555 IN uint8_t req_ecc_state,
1556 OUT uint8_t *cur_ecc_state,
1557 OUT uint8_t *pen_ecc_state);
1570 OUT uint8_t *cur_ecc_state,
1571 OUT uint8_t *pen_ecc_state);
1610 IGSC_HEALTH_INDICATOR_HEALTHY = 0,
1611 IGSC_HEALTH_INDICATOR_DEGRADED = 1,
1612 IGSC_HEALTH_INDICATOR_CRITICAL = 2,
1613 IGSC_HEALTH_INDICATOR_REPLACE = 3
1626 OUT uint8_t *health_indicator);
1643 uint8_t* in_buffer,
size_t in_buffer_size,
1644 uint8_t* out_buffer,
size_t out_buffer_size,
1645 size_t *actual_out_buffer_size);
1651 CSC_LATE_BINDING_FLAGS_IS_PERSISTENT_MASK = 0x1,
1658 CSC_LATE_BINDING_TYPE_INVALID = 0,
1659 CSC_LATE_BINDING_TYPE_FAN_TABLE,
1660 CSC_LATE_BINDING_TYPE_VR_CONFIG
1667 CSC_LATE_BINDING_STATUS_SUCCESS = 0,
1668 CSC_LATE_BINDING_STATUS_4ID_MISMATCH = 1,
1669 CSC_LATE_BINDING_STATUS_ARB_FAILURE = 2,
1670 CSC_LATE_BINDING_STATUS_GENERAL_ERROR = 3,
1671 CSC_LATE_BINDING_STATUS_INVALID_PARAMS = 4,
1672 CSC_LATE_BINDING_STATUS_INVALID_SIGNATURE = 5,
1673 CSC_LATE_BINDING_STATUS_INVALID_PAYLOAD = 6,
1674 CSC_LATE_BINDING_STATUS_TIMEOUT = 7,
1693 IN uint8_t *payload, IN
size_t payload_size,
1694 OUT uint32_t *status);
1716 OUT uint8_t *min_allowed_svn);
1730 IGSC_PPR_STATUS_TEST_EXECUTED_MASK = 0x1,
1731 IGSC_PPR_STATUS_TEST_SUCCESS_MASK = 0x2,
1732 IGSC_PPR_STATUS_FOUND_HW_ERROR_MASK = 0x4,
1733 IGSC_PPR_STATUS_HW_ERROR_REPAIRED_MASK = 0x8,
1771 OUT uint32_t *device_count);
structure to store hw configuration
structure to store device subsystem ids
IGSC_EXPORT int igsc_ifr_run_test(IN struct igsc_device_handle *handle, IN uint8_t test_type, IN uint8_t tiles, OUT uint8_t *result, OUT uint8_t *run_status, OUT uint32_t *error_code)
Runs IFR test on GSC IFR device.
IGSC_EXPORT int igsc_memory_ppr_status(IN struct igsc_device_handle *handle, OUT struct igsc_ppr_status *ppr_status)
Retrieves GFSP memory PPR status structure data.
IGSC_EXPORT int igsc_ifr_get_status(IN struct igsc_device_handle *handle, OUT uint8_t *result, OUT uint32_t *supported_tests, OUT uint32_t *ifr_applied, OUT uint8_t *tiles_num)
Retrieves the status of GSC IFR device.
IGSC_EXPORT int igsc_memory_ppr_devices(IN struct igsc_device_handle *handle, OUT uint32_t *device_count)
Retrieves GFSP number of memory PPR devices.
igsc_ppr_test_status_mask
@ IFR_TEST_STATUS_SUBSLICE_FAILURE
@ IFR_TEST_STATUS_PASSED_WITH_RECOVERY
@ IFR_TEST_STATUS_SUCCESS
@ IFR_TEST_STATUS_PASSED_WITH_REPAIR
@ IFR_TEST_STATUS_NON_SUBSLICE_FAILURE
IGSC_EXPORT int igsc_device_iterator_next(struct igsc_device_iterator *iter, struct igsc_device_info *info)
Obtain next devices capable of FW update.
IGSC_EXPORT void igsc_device_iterator_destroy(struct igsc_device_iterator *iter)
Free iterator for devices capable of FW update.
IGSC_EXPORT int igsc_device_iterator_create(struct igsc_device_iterator **iter)
Create iterator for devices capable of FW update.
IGSC_EXPORT int igsc_device_close(IN OUT struct igsc_device_handle *handle)
Closes a GSC Firmware Update device.
IGSC_EXPORT uint8_t igsc_fw_version_compare(IN struct igsc_fw_version *image_ver, IN struct igsc_fw_version *device_ver)
Compares input fw version to the flash one.
IGSC_EXPORT int igsc_device_oprom_update(IN struct igsc_device_handle *handle, IN uint32_t oprom_type, IN struct igsc_oprom_image *img, IN igsc_progress_func_t progress_f, IN void *ctx)
Perform the OPROM update from the provided image.
IGSC_EXPORT int igsc_image_fwdata_iterator_next(IN struct igsc_fwdata_image *img, OUT struct igsc_fwdata_device_info *device)
progress the supported device iterator and return the GSC in-field data firmware device info
IGSC_EXPORT int igsc_image_fwdata_version2(IN struct igsc_fwdata_image *img, OUT struct igsc_fwdata_version2 *version)
Retrieves the GSC in-field data Firmware version from the supplied GSC in-field data Firmware update ...
IGSC_EXPORT int igsc_image_fwdata_match_device(IN struct igsc_fwdata_image *img, IN struct igsc_device_info *device)
check if GSC in-field data firmware image can be applied on the device.
IGSC_EXPORT int igsc_device_update_device_info(IN struct igsc_device_handle *handle, OUT struct igsc_device_info *dev_info)
Update device information from the firmware The subsystem device id and the subsystem vendor id,...
IGSC_EXPORT int igsc_image_fwdata_iterator_reset(IN struct igsc_fwdata_image *img)
reset the iterator over supported devices
IGSC_EXPORT const char * igsc_translate_firmware_status(IN uint32_t firmware_status)
Return the firmware status message corresponding to the code.
IGSC_EXPORT int igsc_device_hw_config(IN struct igsc_device_handle *handle, OUT struct igsc_hw_config *hw_config)
Retrieves the hw configuration from the device.
IGSC_EXPORT int igsc_device_get_device_info(IN struct igsc_device_handle *handle, OUT struct igsc_device_info *dev_info)
Retrieve device information from the system.
IGSC_EXPORT int igsc_hw_config_compatible(IN const struct igsc_hw_config *image_hw_config, IN const struct igsc_hw_config *device_hw_config)
Check whether image hardware configuration compatible with device hardware configuration.
IGSC_EXPORT uint8_t igsc_fwdata_version_compare(IN struct igsc_fwdata_version *image_ver, IN struct igsc_fwdata_version *device_ver)
Compares input GSC in-field data firmware update version to the flash one With ability to compare FW ...
IGSC_EXPORT int igsc_device_subsystem_ids(IN struct igsc_device_handle *handle, OUT struct igsc_subsystem_ids *ssids)
Retrieves the subsystem ids (vid/did) from the device.
IGSC_EXPORT int igsc_device_fw_update(IN struct igsc_device_handle *handle, IN const uint8_t *buffer, IN const uint32_t buffer_len, IN igsc_progress_func_t progress_f, IN void *ctx)
Perform the firmware update from the provided firmware update image.
IGSC_EXPORT int igsc_device_fwdata_update(IN struct igsc_device_handle *handle, IN const uint8_t *buffer, IN const uint32_t buffer_len, IN igsc_progress_func_t progress_f, IN void *ctx)
Perform the GSC firmware in-field data update from the provided firmware update image.
IGSC_EXPORT int igsc_hw_config_to_string(IN const struct igsc_hw_config *hw_config, IN char *buf, IN size_t length)
express hw configuration in a string
IGSC_EXPORT int igsc_device_fwdata_version2(IN struct igsc_device_handle *handle, OUT struct igsc_fwdata_version2 *version)
Retrieves the GSC in-field data Firmware Version from the device With ability to return FW Data versi...
IGSC_EXPORT void igsc_set_log_callback_func(IN igsc_log_func_t log_callback_f)
Sets log callback function. This interface is not thread-aware, Changes here may lead to crashes in m...
IGSC_EXPORT uint32_t igsc_get_last_firmware_status(IN struct igsc_device_handle *handle)
Return the last firmware status code.
IGSC_EXPORT uint8_t igsc_fwdata_version_compare2(IN struct igsc_fwdata_version2 *image_ver, IN struct igsc_fwdata_version2 *device_ver)
Compares input GSC in-field data firmware update version to the flash one.
IGSC_EXPORT int igsc_device_init_by_device(IN OUT struct igsc_device_handle *handle, IN const char *device_path)
Initializes a GSC Firmware Update device.
IGSC_EXPORT int igsc_read_fw_status_reg(IN struct igsc_device_handle *handle, IN uint32_t fwsts_index, OUT uint32_t *fwsts_value)
Read firmware status register.
IGSC_EXPORT int igsc_device_fw_update_ex(IN struct igsc_device_handle *handle, IN const uint8_t *buffer, IN const uint32_t buffer_len, IN igsc_progress_func_t progress_f, IN void *ctx, IN struct igsc_fw_update_flags flags)
Perform the firmware update with flags from the provided firmware update image.
IGSC_EXPORT igsc_log_func_t igsc_get_log_callback_func(void)
Retrieves log callback function pointer.
IGSC_EXPORT int igsc_device_oprom_version(IN struct igsc_device_handle *handle, IN uint32_t oprom_type, OUT struct igsc_oprom_version *version)
Retrieves the GSC OPROM version from the device.
IGSC_EXPORT int igsc_image_fwdata_version(IN struct igsc_fwdata_image *img, OUT struct igsc_fwdata_version *version)
Retrieves the GSC in-field data Firmware version from the supplied GSC in-field data Firmware update ...
IGSC_EXPORT int igsc_device_fw_version(IN struct igsc_device_handle *handle, OUT struct igsc_fw_version *version)
Retrieves the GSC Firmware Version from the device.
void(* igsc_progress_func_t)(uint32_t sent, uint32_t total, void *ctx)
Callback function template for monitor firmware update progress.
IGSC_EXPORT int igsc_device_fwdata_image_update(IN struct igsc_device_handle *handle, IN struct igsc_fwdata_image *img, IN igsc_progress_func_t progress_f, IN void *ctx)
Perform the GSC firmware in-field data update from the provided firmware update image.
IGSC_EXPORT int igsc_image_hw_config(IN const uint8_t *buffer, IN uint32_t buffer_len, OUT struct igsc_hw_config *hw_config)
Retrieves the hw configurations from the provided firmware update image.
IGSC_EXPORT int igsc_device_init_by_device_info(IN OUT struct igsc_device_handle *handle, IN const struct igsc_device_info *dev_info)
Initializes a GSC Firmware Update device.
void(* igsc_log_func_t)(enum igsc_log_level_type log_level, const char *fmt,...)
Callback function template for printing igsc log messages.
IGSC_EXPORT int igsc_iaf_psc_update(IN struct igsc_device_handle *handle, IN const uint8_t *buffer, IN const uint32_t buffer_len, IN igsc_progress_func_t progress_f, IN void *ctx)
Perform Intel Accelerator Fabric Platform Specific Configuration (PSC) update from the provided updat...
IGSC_EXPORT int igsc_image_fwdata_init(IN OUT struct igsc_fwdata_image **img, IN const uint8_t *buffer, IN uint32_t buffer_len)
initializes firmware data image handle from the supplied firmware data update image.
int igsc_device_init_by_handle(IN OUT struct igsc_device_handle *handle, IN igsc_handle_t dev_handle)
Initializes a GSC Firmware Update device.
IGSC_EXPORT int igsc_image_fw_version(IN const uint8_t *buffer, IN uint32_t buffer_len, OUT struct igsc_fw_version *version)
Retrieves the Firmware Version from the provided firmware update image.
IGSC_EXPORT int igsc_image_fwdata_release(IN struct igsc_fwdata_image *img)
release the fwdata image handle
IGSC_EXPORT int igsc_image_fwdata_count_devices(IN struct igsc_fwdata_image *img, OUT uint32_t *count)
Retrieves a count of of different devices supported by the GSC in-field data firmware update image as...
IGSC_EXPORT int igsc_image_fwdata_supported_devices(IN struct igsc_fwdata_image *img, OUT struct igsc_fwdata_device_info *devices, IN OUT uint32_t *count)
Retrieves a list of supported devices by the GSC in-field data firmware update image associated with ...
IGSC_EXPORT int igsc_device_fwdata_version(IN struct igsc_device_handle *handle, OUT struct igsc_fwdata_version *version)
Retrieves the GSC in-field data Firmware Version from the device.
IGSC_EXPORT int igsc_device_ifr_bin_version(IN struct igsc_device_handle *handle, OUT struct igsc_ifr_bin_version *version)
Retrieves the IFR Binary Version from the device.
igsc_ifr_hw_capabilities_masks
IGSC_EXPORT int igsc_device_commit_arb_svn(IN struct igsc_device_handle *handle, uint8_t *fw_error)
Sends ARB SVN Commit HECI command.
igsc_ifr_array_scan_extended_status
IGSC_EXPORT int igsc_device_get_min_allowed_arb_svn(IN struct igsc_device_handle *handle, OUT uint8_t *min_allowed_svn)
Retrieves Minimal allowed ARB SVN.
IGSC_EXPORT int igsc_device_psc_version(IN struct igsc_device_handle *handle, OUT struct igsc_psc_version *version)
Retrieves the PSC Version from the device.
IGSC_EXPORT int igsc_ifr_run_array_scan_test(IN struct igsc_device_handle *handle, OUT uint32_t *status, OUT uint32_t *extended_status, OUT uint32_t *pending_reset, OUT uint32_t *error_code)
Runs IFR Array and Scan tests on GSC IFR device.
IGSC_EXPORT int igsc_ifr_count_tiles(IN struct igsc_device_handle *handle, OUT uint16_t *supported_tiles)
Counts the IFR supported tiles.
igsc_ifr_supported_tests_masks
IGSC_EXPORT int igsc_ifr_get_status_ext(IN struct igsc_device_handle *handle, OUT uint32_t *supported_tests, OUT uint32_t *hw_capabilities, OUT uint32_t *ifr_applied, OUT uint32_t *prev_errors, OUT uint32_t *pending_reset)
Retrieves the status of GSC IFR device.
IGSC_EXPORT int igsc_gfsp_count_tiles(IN struct igsc_device_handle *handle, OUT uint32_t *max_num_of_tiles)
Gets number of tiles.
IGSC_EXPORT int igsc_ifr_run_mem_ppr_test(IN struct igsc_device_handle *handle, OUT uint32_t *status, OUT uint32_t *pending_reset, OUT uint32_t *error_code)
Runs IFR memory Post Package Repair (PPR) test on GSC IFR device.
IGSC_EXPORT int igsc_gfsp_memory_errors(IN struct igsc_device_handle *handle, IN OUT struct igsc_gfsp_mem_err *tiles)
Gets GFSP number of memory errors.
IGSC_EXPORT int igsc_ecc_config_set(IN struct igsc_device_handle *handle, IN uint8_t req_ecc_state, OUT uint8_t *cur_ecc_state, OUT uint8_t *pen_ecc_state)
Set ECC Configuration.
IGSC_EXPORT int igsc_ifr_get_tile_repair_info(IN struct igsc_device_handle *handle, IN uint16_t tile_idx, OUT uint16_t *used_array_repair_entries, OUT uint16_t *available_array_repair_entries, OUT uint16_t *failed_dss)
Retrieves the IFR repair info.
igsc_ifr_array_scan_test_status_mask
igsc_gfsp_health_indicators
Gets memory health indicator.
igsc_ifr_previous_errors_masks
IGSC_EXPORT int igsc_device_oem_version(IN struct igsc_device_handle *handle, OUT struct igsc_oem_version *version)
Retrieves the OEM Version from the device.
csc_late_binding_type
Sends Late Binding HECI command.
IGSC_EXPORT int igsc_ecc_config_get(IN struct igsc_device_handle *handle, OUT uint8_t *cur_ecc_state, OUT uint8_t *pen_ecc_state)
Get ECC Configuration.
IGSC_EXPORT int igsc_gfsp_heci_cmd(struct igsc_device_handle *handle, uint32_t gfsp_cmd, uint8_t *in_buffer, size_t in_buffer_size, uint8_t *out_buffer, size_t out_buffer_size, size_t *actual_out_buffer_size)
Send generic GFSP command and receive response.
@ IGSC_IRF_HW_CAPABILITY_FULL_EU_MODE_SWITCH
@ IGSC_IRF_HW_CAPABILITY_IN_FIELD_REPAIR
@ IGSC_IFR_REPAIRS_MASK_ARRAY_REPAIR
@ IGSC_IFR_REPAIRS_MASK_FAILURE
@ IGSC_IFR_REPAIRS_MASK_DSS_EN_REPAIR
@ IGSC_IFR_EXT_STS_NO_RESORCES
@ IGSC_IFR_EXT_STS_REPAIRED_ARRAY_SUBSLICE
@ IGSC_IFR_EXT_STS_DEEP_RST_PENDING
@ IGSC_IFR_EXT_STS_NO_REPAIR_NEEDED
@ IGSC_IFR_EXT_STS_REPAIRED_ARRAY
@ IGSC_IFR_EXT_STS_PASSED
@ IGSC_IFR_EXT_STS_NON_SUBSLICE_IN_ARRAY
@ IGSC_IFR_EXT_STS_REPAIR_NOT_SUPPORTED
@ IGSC_IFR_EXT_STS_REPAIRED_ARRAY_FAULTY_SUBSLICE
@ IGSC_IFR_EXT_STS_NON_SUBSLICE_IN_SCAN
@ IGSC_IFR_EXT_STS_TEST_ERROR
@ IGSC_IFR_EXT_STS_REPAIRED_SUBSLICE
@ IGSC_IFR_EXT_STS_SHALLOW_RST_PENDING
@ IGSC_IFR_SUPPORTED_TESTS_MEMORY_PPR
@ IGSC_IFR_SUPPORTED_TESTS_ARRAY_AND_SCAN
@ IGSC_IFR_PENDING_RESET_NONE
@ IGSC_IFR_PENDING_RESET_SHALLOW
@ IGSC_IFR_PENDING_RESET_DEEP
@ IGSC_ARRAY_SCAN_STATUS_FOUND_HW_ERROR_MASK
@ IGSC_ARRAY_SCAN_STATUS_HW_REPAIR_MASK
@ IGSC_ARRAY_SCAN_STATUS_TEST_EXECUTION_MASK
@ IGSC_ARRAY_SCAN_STATUS_TEST_RESULT_MASK
@ IGSC_IFR_PREV_ERROR_DSS_ERR_SCAN_STS_PKT
@ IGSC_IFR_PREV_ERROR_NOT_ENOUGH_SPARE_DSS
@ IGSC_IFR_PREV_ERROR_DSS_ERR_ARR_STS_PKT
@ IGSC_IFR_PREV_ERROR_MIS_NON_DSS_STS_PKT_ON_SCAN
@ IGSC_IFR_PREV_ERROR_DSS_UNREPAIRABLE_PKT
@ IGSC_IFR_PREV_ERROR_MIS_DSS_STS_PKT_ON_ARR
@ IGSC_IFR_PREV_ERROR_NON_DSS_ENG_DONE_CLR_IN_ARR
@ IGSC_IFR_PREV_ERROR_UNEXPECTED
@ IGSC_IFR_PREV_ERROR_MIS_NON_DSS_STS_PKT_ON_ARR
@ IGSC_IFR_PREV_ERROR_NON_DSS_ERR_ARR_STS_PKT
@ IGSC_IFR_PREV_ERROR_NON_DSS_UNREPAIRABLE_PKT
@ IGSC_IFR_PREV_ERROR_DSS_ENG_DONE_CLR_IN_ARR
@ IGSC_IFR_PREV_ERROR_MIS_DSS_STS_PKT_ON_SCAN
@ IGSC_IFR_PREV_ERROR_NON_DSS_REPAIRABLE_PKT
@ IGSC_IFR_PREV_ERROR_NON_DSS_ERR_SCAN_STS_PKT
@ IGSC_IFR_PREV_ERROR_DSS_REPAIRABLE_PKT
uint32_t data_arb_svn_fitb
uint16_t subsys_vendor_id
uint16_t subsys_vendor_id
uint32_t oem_manuf_data_version_fitb
@ IGSC_FWDATA_VERSION_OLDER_VCN
@ IGSC_FWDATA_VERSION_REJECT_DIFFERENT_PROJECT
@ IGSC_FWDATA_VERSION_REJECT_ARB_SVN
@ IGSC_FWDATA_VERSION_ACCEPT
@ IGSC_FWDATA_VERSION_REJECT_VCN
@ IGSC_FWDATA_VERSION_REJECT_OEM_MANUF_DATA_VERSION
@ IGSC_FWDATA_VERSION_REJECT_WRONG_FORMAT
uint16_t subsys_device_id
uint32_t num_of_remaining_ppr_fuses
uint32_t num_of_ppr_fuses_used_by_fw
uint16_t subsys_device_id
uint16_t subsys_vendor_id
uint8_t boot_time_memory_correction_pending
struct igsc_lib_ctx * ctx
@ IGSC_IMAGE_TYPE_OPROM_CODE
@ IGSC_IMAGE_TYPE_UNKNOWN
@ IGSC_IMAGE_TYPE_FW_DATA
@ IGSC_IMAGE_TYPE_OPROM_DATA
uint8_t version[IGSC_OPROM_VER_SIZE]
uint16_t subsys_device_id
uint32_t oem_manuf_data_version
char name[IGSC_INFO_NAME_SIZE]
uint32_t oem_manuf_data_version
uint16_t subsys_device_id
@ IGSC_VERSION_NOT_COMPATIBLE
uint32_t mbist_test_status
uint8_t version[IGSC_MAX_OEM_VERSION_LENGTH]
struct igsc_device_mbist_ppr_status device_mbist_ppr_status[]
uint16_t subsys_vendor_id
struct igsc_gfsp_tile_mem_err errors[]
IGSC_EXPORT int igsc_image_get_type(IN const uint8_t *buffer, IN const uint32_t buffer_len, OUT uint8_t *type)
Determine the type of the provided image.
IGSC_EXPORT int igsc_image_oprom_supported_devices_typed(IN struct igsc_oprom_image *img, IN uint32_t request_type, OUT struct igsc_oprom_device_info_4ids *devices, IN OUT uint32_t *count)
Retrieves a list of supported devices based on image type by the OPROM update image associated with t...
IGSC_EXPORT int igsc_image_oprom_version(IN struct igsc_oprom_image *img, IN enum igsc_oprom_type type, OUT struct igsc_oprom_version *version)
Retrieves the OPROM version from the supplied OPROM update image.
IGSC_EXPORT int igsc_image_oprom_match_device(IN struct igsc_oprom_image *img, IN enum igsc_oprom_type request_type, IN struct igsc_device_info *device)
check if oprom image can be applied on the device.
IGSC_EXPORT int igsc_image_oprom_iterator_next(IN struct igsc_oprom_image *img, OUT struct igsc_oprom_device_info *device)
progress the supported device iterator and return the oprom device info
IGSC_EXPORT uint8_t igsc_oprom_version_compare(const struct igsc_oprom_version *image_ver, const struct igsc_oprom_version *device_ver)
Compares input oprom version to the flash one.
IGSC_EXPORT int igsc_image_oprom_type(IN struct igsc_oprom_image *img, IN uint32_t *oprom_type)
Retrieves the OPROM type from the provided OPROM update image.
IGSC_EXPORT int igsc_image_oprom_iterator_reset_typed(IN struct igsc_oprom_image *img, IN uint32_t request_type)
reset the iterator over supported devices based on image type
IGSC_EXPORT int igsc_image_oprom_count_devices(IN struct igsc_oprom_image *img, OUT uint32_t *count)
Retrieves a count of of different devices supported by the OPROM update image associated with the han...
IGSC_EXPORT int igsc_image_oprom_has_2ids_extension(IN struct igsc_oprom_image *img, OUT bool *has_2ids_extension)
returns whether the oprom image has 2ids device extension
IGSC_EXPORT int igsc_image_oprom_count_devices_typed(IN struct igsc_oprom_image *img, IN uint32_t request_type, OUT uint32_t *count)
Retrieves a count of of different devices supported by the OPROM update image associated with the han...
IGSC_EXPORT int igsc_image_oprom_code_devid_enforced(IN struct igsc_hw_config *hw_config, OUT bool *devid_enforced)
returns whether the oprom code config has devId enforcement bit set
IGSC_EXPORT int igsc_image_oprom_init(IN OUT struct igsc_oprom_image **img, IN const uint8_t *buffer, IN uint32_t buffer_len)
initializes OPROM image handle from the supplied OPROM update image.
IGSC_EXPORT int igsc_image_oprom_has_4ids_extension(IN struct igsc_oprom_image *img, IN uint32_t request_type, OUT bool *has_4ids_extension)
returns whether the oprom image has 4ids device extension
IGSC_EXPORT int igsc_image_oprom_iterator_reset(IN struct igsc_oprom_image *img)
reset the iterator over supported devices
IGSC_EXPORT int igsc_image_oprom_supported_devices(IN struct igsc_oprom_image *img, OUT struct igsc_oprom_device_info *devices, IN OUT uint32_t *count)
Retrieves a list of supported devices by the OPROM update image associated with the handle....
IGSC_EXPORT int igsc_image_oprom_iterator_next_typed(IN struct igsc_oprom_image *img, IN uint32_t request_type, OUT struct igsc_oprom_device_info_4ids *device)
progress the supported device iterator and return the oprom device info, based on image type
IGSC_EXPORT int igsc_image_oprom_release(IN struct igsc_oprom_image *img)
release the OPROM image handle
IGSC_EXPORT unsigned int igsc_get_log_level(void)
Retrieves current log level.
#define IGSC_INFO_NAME_SIZE
igsc_fwdata_version_compare_result
IGSC_EXPORT void igsc_set_log_level(unsigned int log_level)
Sets log level.
igsc_version_compare_result
#define IGSC_OPROM_VER_SIZE