Intel Graphics System Controller Firmware Update Library
Intel Graphics System Controller Firmware Update Library
Loading...
Searching...
No Matches
igsc_lib.h
Go to the documentation of this file.
1/*
2 * SPDX-License-Identifier: Apache-2.0
3 * Copyright (C) 2019-2024 Intel Corporation
4 */
5
10
11#ifndef __IGSC_LIB_H__
12#define __IGSC_LIB_H__
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
19#ifndef IN
20#define IN
21#endif /* IN */
22#ifndef OUT
23#define OUT
24#endif /* OUT */
25
26#if defined (_WIN32) || defined (_WIN64)
27 #ifndef IGSC_DLL
28 #define IGSC_EXPORT
29 #else /* IGSC_DLL */
30 #ifdef IGSC_DLL_EXPORTS
31 #define IGSC_EXPORT __declspec(dllexport)
32 #else
33 #define IGSC_EXPORT __declspec(dllimport)
34 #endif
35 #endif /* IGSC_DLL */
36#else
37 #ifndef IGSC_DLL
38 #define IGSC_EXPORT
39 #else /* IGSC_DLL */
40 #ifdef IGSC_DLL_EXPORTS
41 #define IGSC_EXPORT __attribute__((__visibility__("default")))
42 #else
43 #define IGSC_EXPORT
44 #endif
45 #endif /* IGSC_DLL */
46#endif
48
49#include <stdint.h>
50#include <stdbool.h>
51#include <stddef.h>
52
53#ifndef BIT
54#define BIT(x) (1U << (x))
55#endif /* BIT */
56
57#ifndef UNUSED_VAR
58#define UNUSED_VAR(_v) (void)_v
59#endif
60
69#ifdef __linux__
70typedef int igsc_handle_t;
71#define IGSC_INVALID_DEVICE_HANDLE (-1)
72#else /* __linux__ */
73typedef void *igsc_handle_t;
74#define IGSC_INVALID_DEVICE_HANDLE ((void *)0)
75#endif /* __linux__ */
76
86
94IGSC_EXPORT
95void igsc_set_log_level(unsigned int log_level);
96
102IGSC_EXPORT
103unsigned int igsc_get_log_level(void);
104
116
121 char project[4];
122 uint16_t hotfix;
123 uint16_t build;
124};
125
130 uint16_t major;
131 uint16_t minor;
132 uint16_t hotfix;
133 uint16_t build;
134};
135
140 uint32_t date;
141 uint32_t cfg_version;
142};
143
144#define IGSC_MAX_OEM_VERSION_LENGTH 256
145
150 uint16_t length;
151 uint8_t version[IGSC_MAX_OEM_VERSION_LENGTH];
152};
153
154#define IGSC_MAX_OEM_SN_LENGTH 512
155
160 uint16_t length;
161 uint8_t sn[IGSC_MAX_OEM_SN_LENGTH];
162};
163
174
187
197
198#define IGSC_FWDATA_FORMAT_VERSION_1 0x1
199#define IGSC_FWDATA_FORMAT_VERSION_2 0x2
200
201#define IGSC_FWDATA_FITB_VALID_MASK 0x1
202
217
221#define IGSC_OPROM_VER_SIZE 8
228
237
246
257
268
273struct igsc_oprom_image;
274
279struct igsc_fwdata_image;
280
281
285struct igsc_device_iterator;
286
290#define IGSC_INFO_NAME_SIZE 256
291
297
298 uint16_t domain;
299 uint8_t bus;
300 uint8_t dev;
301 uint8_t func;
302
303 uint16_t device_id;
304 uint16_t vendor_id;
307};
308
315#define IGSC_ERROR_BASE 0x0000U
316#define IGSC_SUCCESS (IGSC_ERROR_BASE + 0)
317#define IGSC_ERROR_INTERNAL (IGSC_ERROR_BASE + 1)
318#define IGSC_ERROR_NOMEM (IGSC_ERROR_BASE + 2)
319#define IGSC_ERROR_INVALID_PARAMETER (IGSC_ERROR_BASE + 3)
320#define IGSC_ERROR_DEVICE_NOT_FOUND (IGSC_ERROR_BASE + 4)
321#define IGSC_ERROR_BAD_IMAGE (IGSC_ERROR_BASE + 5)
322#define IGSC_ERROR_PROTOCOL (IGSC_ERROR_BASE + 6)
323#define IGSC_ERROR_BUFFER_TOO_SMALL (IGSC_ERROR_BASE + 7)
324#define IGSC_ERROR_INVALID_STATE (IGSC_ERROR_BASE + 8)
325#define IGSC_ERROR_NOT_SUPPORTED (IGSC_ERROR_BASE + 9)
326#define IGSC_ERROR_INCOMPATIBLE (IGSC_ERROR_BASE + 10)
327#define IGSC_ERROR_TIMEOUT (IGSC_ERROR_BASE + 11)
328#define IGSC_ERROR_PERMISSION_DENIED (IGSC_ERROR_BASE + 12)
329#define IGSC_ERROR_BUSY (IGSC_ERROR_BASE + 13)
333
337#define IGSC_HW_CONFIG_BLOB_SIZE 48
338
345 uint32_t format_version;
346 uint8_t blob[IGSC_HW_CONFIG_BLOB_SIZE];
347};
348
355 uint16_t ssvid;
356 uint16_t ssdid;
357};
358
363#define IGSC_MAX_IMAGE_SIZE (8*1024*1024) /* 8M */
364
365struct igsc_lib_ctx;
366
371 struct igsc_lib_ctx *ctx;
372};
373
378
386IGSC_EXPORT
388
396IGSC_EXPORT
397const char *igsc_translate_firmware_status(IN uint32_t firmware_status);
398
399#define IGSC_MAX_FW_STATUS_INDEX 5
400
410IGSC_EXPORT
412 IN uint32_t fwsts_index,
413 OUT uint32_t *fwsts_value);
414
422typedef void (*igsc_log_func_t)(enum igsc_log_level_type log_level, const char* fmt, ...);
423
435IGSC_EXPORT
437
443IGSC_EXPORT
445
454IGSC_EXPORT
456 IN const char *device_path);
457
467 IN igsc_handle_t dev_handle);
468
477IGSC_EXPORT
479 IN const struct igsc_device_info *dev_info);
480
489IGSC_EXPORT
491 OUT struct igsc_device_info *dev_info);
492
493
506IGSC_EXPORT
508 OUT struct igsc_device_info *dev_info);
509
517IGSC_EXPORT
518int igsc_device_close(IN OUT struct igsc_device_handle *handle);
519
528IGSC_EXPORT
530 OUT struct igsc_fw_version *version);
531
542IGSC_EXPORT
543int igsc_image_fw_version(IN const uint8_t *buffer,
544 IN uint32_t buffer_len,
545 OUT struct igsc_fw_version *version);
546
556IGSC_EXPORT
558 OUT struct igsc_hw_config *hw_config);
559
569IGSC_EXPORT
571 OUT struct igsc_subsystem_ids *ssids);
572
583IGSC_EXPORT
584int igsc_image_hw_config(IN const uint8_t *buffer,
585 IN uint32_t buffer_len,
586 OUT struct igsc_hw_config *hw_config);
587
597IGSC_EXPORT
598int igsc_hw_config_compatible(IN const struct igsc_hw_config *image_hw_config,
599 IN const struct igsc_hw_config *device_hw_config);
609IGSC_EXPORT
610int igsc_hw_config_to_string(IN const struct igsc_hw_config *hw_config,
611 IN char *buf, IN size_t length);
612
620typedef void (*igsc_progress_func_t)(uint32_t sent, uint32_t total, void *ctx);
621
634IGSC_EXPORT int
636 IN const uint8_t *buffer,
637 IN const uint32_t buffer_len,
638 IN igsc_progress_func_t progress_f,
639 IN void *ctx);
640
641/* flags with which the update should be performed */
643 uint32_t force_update : 1;
644 uint32_t reserved : 31;
645};
646
660IGSC_EXPORT int
662 IN const uint8_t *buffer,
663 IN const uint32_t buffer_len,
664 IN igsc_progress_func_t progress_f,
665 IN void *ctx,
666 IN struct igsc_fw_update_flags flags);
667
684IGSC_EXPORT int
686 IN const uint8_t *buffer,
687 IN const uint32_t buffer_len,
688 IN igsc_progress_func_t progress_f,
689 IN void *ctx);
690
703IGSC_EXPORT int
705 IN const uint8_t *buffer,
706 IN const uint32_t buffer_len,
707 IN igsc_progress_func_t progress_f,
708 IN void *ctx);
709
721IGSC_EXPORT int
723 IN struct igsc_fwdata_image *img,
724 IN igsc_progress_func_t progress_f,
725 IN void *ctx);
726
736IGSC_EXPORT
738 IN const uint8_t *buffer,
739 IN uint32_t buffer_len);
740
749IGSC_EXPORT
751 OUT struct igsc_fwdata_version *version);
752
762IGSC_EXPORT
764 OUT struct igsc_fwdata_version2* version);
765
774IGSC_EXPORT
776 OUT struct igsc_fwdata_version *version);
777
787IGSC_EXPORT
789 OUT struct igsc_fwdata_version2* version);
790
805IGSC_EXPORT
807 IN struct igsc_fwdata_version *device_ver);
808
824IGSC_EXPORT
826 IN struct igsc_fwdata_version2* device_ver);
827
837IGSC_EXPORT
839 OUT uint32_t *count);
840
854IGSC_EXPORT
856 OUT struct igsc_fwdata_device_info *devices,
857 IN OUT uint32_t *count);
868IGSC_EXPORT
870 IN struct igsc_device_info *device);
878IGSC_EXPORT
880
890IGSC_EXPORT
892 OUT struct igsc_fwdata_device_info *device);
893
901IGSC_EXPORT
903
917IGSC_EXPORT
918uint8_t igsc_fw_version_compare(IN struct igsc_fw_version *image_ver,
919 IN struct igsc_fw_version *device_ver);
920
930IGSC_EXPORT
932 IN uint32_t oprom_type,
933 OUT struct igsc_oprom_version *version);
934
947IGSC_EXPORT
949 IN uint32_t oprom_type,
950 IN struct igsc_oprom_image *img,
951 IN igsc_progress_func_t progress_f,
952 IN void *ctx);
957
967IGSC_EXPORT
969 IN const uint8_t *buffer,
970 IN uint32_t buffer_len);
971
981IGSC_EXPORT
983 IN enum igsc_oprom_type type,
984 OUT struct igsc_oprom_version *version);
985
995IGSC_EXPORT
997 IN uint32_t *oprom_type);
998
1008IGSC_EXPORT
1010 OUT uint32_t *count);
1011
1025IGSC_EXPORT
1027 OUT struct igsc_oprom_device_info *devices,
1028 IN OUT uint32_t *count);
1040IGSC_EXPORT
1042 IN enum igsc_oprom_type request_type,
1043 IN struct igsc_device_info *device);
1051IGSC_EXPORT
1053
1063IGSC_EXPORT
1065 OUT struct igsc_oprom_device_info *device);
1066
1078IGSC_EXPORT
1080 IN uint32_t request_type,
1081 OUT uint32_t *count);
1082
1097IGSC_EXPORT
1099 IN uint32_t request_type,
1100 OUT struct igsc_oprom_device_info_4ids *devices,
1101 IN OUT uint32_t *count);
1110IGSC_EXPORT
1112 IN uint32_t request_type);
1113
1124IGSC_EXPORT
1126 IN uint32_t request_type,
1127 OUT struct igsc_oprom_device_info_4ids *device);
1128
1138IGSC_EXPORT
1140 IN uint32_t request_type,
1141 OUT bool *has_4ids_extension);
1142
1151IGSC_EXPORT
1153 OUT bool *has_2ids_extension);
1154
1163IGSC_EXPORT
1165 OUT bool *devid_enforced);
1166
1174IGSC_EXPORT
1176
1190IGSC_EXPORT
1191uint8_t igsc_oprom_version_compare(const struct igsc_oprom_version *image_ver,
1192 const struct igsc_oprom_version *device_ver);
1202IGSC_EXPORT
1203int igsc_image_get_type(IN const uint8_t *buffer,
1204 IN const uint32_t buffer_len,
1205 OUT uint8_t *type);
1209
1214
1222IGSC_EXPORT
1223int igsc_device_iterator_create(struct igsc_device_iterator **iter);
1224
1233IGSC_EXPORT
1234int igsc_device_iterator_next(struct igsc_device_iterator *iter,
1235 struct igsc_device_info *info);
1236
1244IGSC_EXPORT
1245void igsc_device_iterator_destroy(struct igsc_device_iterator *iter);
1249
1254
1259 IGSC_IFR_TILE_0 = 0x0001,
1260 IGSC_IFR_TILE_1 = 0x0002,
1261};
1262
1267 IGSC_IFR_SUPPORTED_TEST_SCAN = 0x00000001,
1268 IGSC_IFR_SUPPORTED_TEST_ARRAY = 0x00000002,
1269};
1270
1275 IGSC_IFR_REPAIR_DSS_EN = 0x00000001,
1276 IGSC_IFR_REPAIR_ARRAY = 0x00000002,
1277};
1278
1293
1305IGSC_EXPORT
1307 OUT uint8_t *result,
1308 OUT uint32_t *supported_tests,
1309 OUT uint32_t *ifr_applied,
1310 OUT uint8_t *tiles_num);
1311
1324IGSC_EXPORT
1326 IN uint8_t test_type,
1327 IN uint8_t tiles,
1328 OUT uint8_t *result,
1329 OUT uint8_t *run_status,
1330 OUT uint32_t *error_code);
1334
1339
1344 uint32_t corr_err;
1345 uint32_t uncorr_err;
1346};
1347
1356
1365IGSC_EXPORT
1367 OUT uint32_t *max_num_of_tiles);
1368
1377IGSC_EXPORT
1379 IN OUT struct igsc_gfsp_mem_err *tiles);
1380
1389
1399
1415
1427IGSC_EXPORT
1429 OUT uint32_t *status,
1430 OUT uint32_t *extended_status,
1431 OUT uint32_t *pending_reset,
1432 OUT uint32_t *error_code);
1433
1445IGSC_EXPORT
1447 OUT uint32_t *status,
1448 OUT uint32_t *pending_reset,
1449 OUT uint32_t *error_code);
1450
1458
1467
1489
1498
1516IGSC_EXPORT
1518 OUT uint32_t *supported_tests,
1519 OUT uint32_t *hw_capabilities,
1520 OUT uint32_t *ifr_applied,
1521 OUT uint32_t *prev_errors,
1522 OUT uint32_t *pending_reset);
1523
1532IGSC_EXPORT
1534 OUT uint16_t *supported_tiles);
1535
1547IGSC_EXPORT
1549 IN uint16_t tile_idx,
1550 OUT uint16_t *used_array_repair_entries,
1551 OUT uint16_t *available_array_repair_entries,
1552 OUT uint16_t *failed_dss);
1563IGSC_EXPORT
1565 IN uint8_t req_ecc_state,
1566 OUT uint8_t *cur_ecc_state,
1567 OUT uint8_t *pen_ecc_state);
1568
1578IGSC_EXPORT
1580 OUT uint8_t *cur_ecc_state,
1581 OUT uint8_t *pen_ecc_state);
1582
1591IGSC_EXPORT
1593 OUT struct igsc_oem_version *version);
1594
1603IGSC_EXPORT
1605 OUT struct igsc_oem_serial_number *sn);
1606
1615IGSC_EXPORT
1617 OUT struct igsc_ifr_bin_version *version);
1618
1627IGSC_EXPORT
1629 OUT struct igsc_psc_version *version);
1630
1632 IGSC_HEALTH_INDICATOR_HEALTHY = 0,
1633 IGSC_HEALTH_INDICATOR_DEGRADED = 1,
1634 IGSC_HEALTH_INDICATOR_CRITICAL = 2,
1635 IGSC_HEALTH_INDICATOR_REPLACE = 3
1636};
1637
1646IGSC_EXPORT
1647int igsc_gfsp_get_health_indicator(IN struct igsc_device_handle *handle,
1648 OUT uint8_t *health_indicator);
1649
1663IGSC_EXPORT
1664int igsc_gfsp_heci_cmd(struct igsc_device_handle *handle, uint32_t gfsp_cmd,
1665 uint8_t* in_buffer, size_t in_buffer_size,
1666 uint8_t* out_buffer, size_t out_buffer_size,
1667 size_t *actual_out_buffer_size);
1668
1673 CSC_LATE_BINDING_FLAGS_IS_PERSISTENT_MASK = 0x1,
1674};
1675
1680 CSC_LATE_BINDING_TYPE_INVALID = 0,
1681 CSC_LATE_BINDING_TYPE_FAN_TABLE = 1,
1682 CSC_LATE_BINDING_TYPE_VR_CONFIG = 2,
1683 CSC_LATE_BINDING_TYPE_OCODE = 3,
1684 CSC_LATE_BINDING_TYPE_DGDIAG = 4,
1685};
1686
1691 CSC_LATE_BINDING_STATUS_SUCCESS = 0,
1692 CSC_LATE_BINDING_STATUS_4ID_MISMATCH = 1,
1693 CSC_LATE_BINDING_STATUS_ARB_FAILURE = 2,
1694 CSC_LATE_BINDING_STATUS_GENERAL_ERROR = 3,
1695 CSC_LATE_BINDING_STATUS_INVALID_PARAMS = 4,
1696 CSC_LATE_BINDING_STATUS_INVALID_SIGNATURE = 5,
1697 CSC_LATE_BINDING_STATUS_INVALID_PAYLOAD = 6,
1698 CSC_LATE_BINDING_STATUS_TIMEOUT = 7,
1699 CSC_LATE_BINDING_STATUS_BUFFER_TOO_SMALL = 8,
1700 CSC_LATE_BINDING_STATUS_INTERNAL_ERROR = 9,
1701 CSC_LATE_BINDING_STATUS_INVALID_FPT_TABLE = 10,
1702 CSC_LATE_BINDING_STATUS_SIGNED_PAYLOAD_VERIFICATION_ERROR = 11,
1703 CSC_LATE_BINDING_STATUS_SIGNED_PAYLOAD_INVALID_CPD = 12,
1704 CSC_LATE_BINDING_STATUS_SIGNED_PAYLOAD_FW_VERSION_MISMATCH = 13,
1705 CSC_LATE_BINDING_STATUS_SIGNED_PAYLOAD_INVALID_MANIFEST = 14,
1706 CSC_LATE_BINDING_STATUS_SIGNED_PAYLOAD_INVALID_HASH = 15,
1707 CSC_LATE_BINDING_STATUS_SIGNED_PAYLOAD_BINDING_TYPE_MISMATCH = 16,
1708 CSC_LATE_BINDING_STATUS_SIGNED_PAYLOAD_HANDLE_SVN_FAILED = 17,
1709 CSC_LATE_BINDING_STATUS_DESTINATION_MBOX_FAILURE = 18,
1710 CSC_LATE_BINDING_STATUS_MISSING_LOADING_PATCH = 19,
1711 CSC_LATE_BINDING_STATUS_INVALID_COMMAND = 20,
1712 CSC_LATE_BINDING_STATUS_INVALID_HECI_HEADER = 21,
1713 CSC_LATE_BINDING_STATUS_IP_ERROR_START = 0x80000000,
1714};
1715
1720 CSC_LATE_BINDING_SVN_SOURCE_SPI = 0,
1721 CSC_LATE_BINDING_SVN_SOURCE_KEY_MANIFEST = 1,
1722};
1723
1736IGSC_EXPORT
1737int igsc_device_update_late_binding_config(IN struct igsc_device_handle *handle,
1738 IN uint32_t type, /* enum csc_late_binding_type */
1739 IN uint32_t flags, /* enum csc_late_binding_flags */
1740 IN uint8_t *payload, IN size_t payload_size,
1741 OUT uint32_t *status); /* enum csc_late_binding_status */
1742
1755IGSC_EXPORT
1756int igsc_device_update_late_binding_config2(IN struct igsc_device_handle* handle,
1757 IN uint32_t type, /* enum csc_late_binding_type */
1758 IN uint32_t flags, /* enum csc_late_binding_flags */
1759 IN uint8_t* payload, IN size_t payload_size,
1760 OUT uint32_t* status); /* enum csc_late_binding_status */
1761
1773IGSC_EXPORT
1774int igsc_device_get_late_binding_info(IN struct igsc_device_handle* handle,
1775 IN uint32_t type, /* enum csc_late_binding_type */
1776 OUT uint32_t* svn_source,
1777 OUT uint32_t* min_svn,
1778 OUT uint32_t* status); /* enum csc_late_binding_status */
1779
1788IGSC_EXPORT
1789int igsc_device_commit_arb_svn(IN struct igsc_device_handle *handle, uint8_t *fw_error);
1790
1799IGSC_EXPORT
1801 OUT uint8_t *min_allowed_svn);
1802
1806
1810
1815 IGSC_PPR_STATUS_TEST_EXECUTED_MASK = 0x1,
1816 IGSC_PPR_STATUS_TEST_SUCCESS_MASK = 0x2,
1817 IGSC_PPR_STATUS_FOUND_HW_ERROR_MASK = 0x4,
1818 IGSC_PPR_STATUS_HW_ERROR_REPAIRED_MASK = 0x8,
1819};
1820
1829
1845
1854IGSC_EXPORT
1856 OUT uint32_t *device_count);
1857
1867IGSC_EXPORT
1869 OUT struct igsc_ppr_status *ppr_status);
1870
1874#ifdef __cplusplus
1875}
1876#endif
1877#endif /* __IGSC_LIB_H__ */
#define IGSC_HW_CONFIG_BLOB_SIZE
Definition igsc_lib.h:337
structure to store hw configuration
Definition igsc_lib.h:344
structure to store device subsystem ids
Definition igsc_lib.h:354
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.
ifr_test_run_status
Definition igsc_lib.h:1285
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
Definition igsc_lib.h:1814
@ IFR_TEST_STATUS_SUBSLICE_FAILURE
Definition igsc_lib.h:1289
@ IFR_TEST_STATUS_ERROR
Definition igsc_lib.h:1291
@ IFR_TEST_STATUS_PASSED_WITH_RECOVERY
Definition igsc_lib.h:1288
@ IFR_TEST_STATUS_SUCCESS
Definition igsc_lib.h:1286
@ IFR_TEST_STATUS_PASSED_WITH_REPAIR
Definition igsc_lib.h:1287
@ IFR_TEST_STATUS_NON_SUBSLICE_FAILURE
Definition igsc_lib.h:1290
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.
Definition igsc_lib.h:620
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.
Definition igsc_lib.h:422
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
Definition igsc_lib.h:1462
IGSC_EXPORT int igsc_device_commit_arb_svn(IN struct igsc_device_handle *handle, uint8_t *fw_error)
Sends ARB SVN Commit HECI command.
csc_late_binding_status
Definition igsc_lib.h:1690
igsc_ifr_repairs_mask
Definition igsc_lib.h:1493
igsc_ifr_array_scan_extended_status
Definition igsc_lib.h:1400
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_oem_serial_number(IN struct igsc_device_handle *handle, OUT struct igsc_oem_serial_number *sn)
Retrieves the OEM serial number from the device.
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.
csc_late_binding_flags
Definition igsc_lib.h:1672
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
Definition igsc_lib.h:1454
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.
csc_late_binding_svn_source
Definition igsc_lib.h:1719
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_ifr_pending_reset
Definition igsc_lib.h:1384
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
Definition igsc_lib.h:1393
igsc_gfsp_health_indicators
Gets memory health indicator.
Definition igsc_lib.h:1631
igsc_ifr_previous_errors_masks
Definition igsc_lib.h:1471
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.
Definition igsc_lib.h:1679
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
Definition igsc_lib.h:1465
@ IGSC_IRF_HW_CAPABILITY_IN_FIELD_REPAIR
Definition igsc_lib.h:1463
@ IGSC_IFR_REPAIRS_MASK_ARRAY_REPAIR
Definition igsc_lib.h:1495
@ IGSC_IFR_REPAIRS_MASK_FAILURE
Definition igsc_lib.h:1496
@ IGSC_IFR_REPAIRS_MASK_DSS_EN_REPAIR
Definition igsc_lib.h:1494
@ IGSC_IFR_EXT_STS_NO_RESORCES
Definition igsc_lib.h:1410
@ IGSC_IFR_EXT_STS_REPAIRED_ARRAY_SUBSLICE
Definition igsc_lib.h:1407
@ IGSC_IFR_EXT_STS_DEEP_RST_PENDING
Definition igsc_lib.h:1403
@ IGSC_IFR_EXT_STS_NO_REPAIR_NEEDED
Definition igsc_lib.h:1404
@ IGSC_IFR_EXT_STS_REPAIRED_ARRAY
Definition igsc_lib.h:1405
@ IGSC_IFR_EXT_STS_PASSED
Definition igsc_lib.h:1401
@ IGSC_IFR_EXT_STS_NON_SUBSLICE_IN_ARRAY
Definition igsc_lib.h:1411
@ IGSC_IFR_EXT_STS_REPAIR_NOT_SUPPORTED
Definition igsc_lib.h:1409
@ IGSC_IFR_EXT_STS_REPAIRED_ARRAY_FAULTY_SUBSLICE
Definition igsc_lib.h:1408
@ IGSC_IFR_EXT_STS_NON_SUBSLICE_IN_SCAN
Definition igsc_lib.h:1412
@ IGSC_IFR_EXT_STS_TEST_ERROR
Definition igsc_lib.h:1413
@ IGSC_IFR_EXT_STS_REPAIRED_SUBSLICE
Definition igsc_lib.h:1406
@ IGSC_IFR_EXT_STS_SHALLOW_RST_PENDING
Definition igsc_lib.h:1402
@ IGSC_IFR_SUPPORTED_TESTS_MEMORY_PPR
Definition igsc_lib.h:1456
@ IGSC_IFR_SUPPORTED_TESTS_ARRAY_AND_SCAN
Definition igsc_lib.h:1455
@ IGSC_IFR_PENDING_RESET_NONE
Definition igsc_lib.h:1385
@ IGSC_IFR_PENDING_RESET_SHALLOW
Definition igsc_lib.h:1386
@ IGSC_IFR_PENDING_RESET_DEEP
Definition igsc_lib.h:1387
@ IGSC_ARRAY_SCAN_STATUS_FOUND_HW_ERROR_MASK
Definition igsc_lib.h:1396
@ IGSC_ARRAY_SCAN_STATUS_HW_REPAIR_MASK
Definition igsc_lib.h:1397
@ IGSC_ARRAY_SCAN_STATUS_TEST_EXECUTION_MASK
Definition igsc_lib.h:1394
@ IGSC_ARRAY_SCAN_STATUS_TEST_RESULT_MASK
Definition igsc_lib.h:1395
@ IGSC_IFR_PREV_ERROR_DSS_ERR_SCAN_STS_PKT
Definition igsc_lib.h:1478
@ IGSC_IFR_PREV_ERROR_NOT_ENOUGH_SPARE_DSS
Definition igsc_lib.h:1480
@ IGSC_IFR_PREV_ERROR_DSS_ERR_ARR_STS_PKT
Definition igsc_lib.h:1472
@ IGSC_IFR_PREV_ERROR_MIS_NON_DSS_STS_PKT_ON_SCAN
Definition igsc_lib.h:1484
@ IGSC_IFR_PREV_ERROR_DSS_UNREPAIRABLE_PKT
Definition igsc_lib.h:1475
@ IGSC_IFR_PREV_ERROR_MIS_DSS_STS_PKT_ON_ARR
Definition igsc_lib.h:1481
@ IGSC_IFR_PREV_ERROR_NON_DSS_ENG_DONE_CLR_IN_ARR
Definition igsc_lib.h:1486
@ IGSC_IFR_PREV_ERROR_UNEXPECTED
Definition igsc_lib.h:1487
@ IGSC_IFR_PREV_ERROR_MIS_NON_DSS_STS_PKT_ON_ARR
Definition igsc_lib.h:1482
@ IGSC_IFR_PREV_ERROR_NON_DSS_ERR_ARR_STS_PKT
Definition igsc_lib.h:1473
@ IGSC_IFR_PREV_ERROR_NON_DSS_UNREPAIRABLE_PKT
Definition igsc_lib.h:1477
@ IGSC_IFR_PREV_ERROR_DSS_ENG_DONE_CLR_IN_ARR
Definition igsc_lib.h:1485
@ IGSC_IFR_PREV_ERROR_MIS_DSS_STS_PKT_ON_SCAN
Definition igsc_lib.h:1483
@ IGSC_IFR_PREV_ERROR_NON_DSS_REPAIRABLE_PKT
Definition igsc_lib.h:1476
@ IGSC_IFR_PREV_ERROR_NON_DSS_ERR_SCAN_STS_PKT
Definition igsc_lib.h:1479
@ IGSC_IFR_PREV_ERROR_DSS_REPAIRABLE_PKT
Definition igsc_lib.h:1474
uint32_t data_arb_svn
Definition igsc_lib.h:214
uint32_t data_arb_svn_fitb
Definition igsc_lib.h:215
uint16_t device_id
Definition igsc_lib.h:303
uint16_t subsys_vendor_id
Definition igsc_lib.h:243
uint16_t hotfix
Definition igsc_lib.h:122
uint32_t date
Definition igsc_lib.h:140
igsc_supported_ifr_tests
Definition igsc_lib.h:1266
uint32_t num_devices
Definition igsc_lib.h:1842
uint32_t oem_manuf_data_version_fitb
Definition igsc_lib.h:210
@ IGSC_FWDATA_VERSION_OLDER_VCN
Definition igsc_lib.h:183
@ IGSC_FWDATA_VERSION_REJECT_DIFFERENT_PROJECT
Definition igsc_lib.h:181
@ IGSC_FWDATA_VERSION_REJECT_ARB_SVN
Definition igsc_lib.h:185
@ IGSC_FWDATA_VERSION_ACCEPT
Definition igsc_lib.h:182
@ IGSC_FWDATA_VERSION_REJECT_VCN
Definition igsc_lib.h:179
@ IGSC_FWDATA_VERSION_REJECT_OEM_MANUF_DATA_VERSION
Definition igsc_lib.h:180
@ IGSC_FWDATA_VERSION_REJECT_WRONG_FORMAT
Definition igsc_lib.h:184
uint16_t major_version
Definition igsc_lib.h:211
igsc_ifr_tiles
Definition igsc_lib.h:1258
uint16_t subsys_device_id
Definition igsc_lib.h:244
uint32_t ras_ppr_applied
Definition igsc_lib.h:1840
uint32_t cfg_version
Definition igsc_lib.h:141
uint8_t boot_time_memory_correction_pending
Definition igsc_lib.h:1834
char project[4]
Definition igsc_lib.h:121
uint32_t format_version
Definition igsc_lib.h:208
struct igsc_lib_ctx * ctx
Definition igsc_lib.h:371
igsc_ifr_repairs
Definition igsc_lib.h:1274
@ IGSC_IMAGE_TYPE_OPROM_CODE
Definition igsc_lib.h:112
@ IGSC_IMAGE_TYPE_UNKNOWN
Definition igsc_lib.h:109
@ IGSC_IMAGE_TYPE_FW_DATA
Definition igsc_lib.h:114
@ IGSC_IMAGE_TYPE_OPROM_DATA
Definition igsc_lib.h:113
@ IGSC_IMAGE_TYPE_OPROM
Definition igsc_lib.h:111
@ IGSC_IMAGE_TYPE_GFX_FW
Definition igsc_lib.h:110
uint8_t version[IGSC_OPROM_VER_SIZE]
Definition igsc_lib.h:226
uint16_t subsys_device_id
Definition igsc_lib.h:305
uint32_t oem_manuf_data_version
Definition igsc_lib.h:209
char name[IGSC_INFO_NAME_SIZE]
Definition igsc_lib.h:296
uint32_t oem_manuf_data_version
Definition igsc_lib.h:193
uint32_t mbist_completed
Definition igsc_lib.h:1841
@ IGSC_VERSION_OLDER
Definition igsc_lib.h:172
@ IGSC_VERSION_NEWER
Definition igsc_lib.h:170
@ IGSC_VERSION_ERROR
Definition igsc_lib.h:168
@ IGSC_VERSION_NOT_COMPATIBLE
Definition igsc_lib.h:169
@ IGSC_VERSION_EQUAL
Definition igsc_lib.h:171
@ IGSC_LOG_LEVEL_DEBUG
Definition igsc_lib.h:82
@ IGSC_LOG_LEVEL_TRACE
Definition igsc_lib.h:83
@ IGSC_LOG_LEVEL_MAX
Definition igsc_lib.h:84
@ IGSC_LOG_LEVEL_ERROR
Definition igsc_lib.h:81
uint16_t major_version
Definition igsc_lib.h:194
uint32_t num_of_tiles
Definition igsc_lib.h:1352
uint8_t sn[IGSC_MAX_OEM_SN_LENGTH]
Definition igsc_lib.h:161
uint8_t test_run_status
Definition igsc_lib.h:1838
uint16_t length
Definition igsc_lib.h:150
uint8_t version[IGSC_MAX_OEM_VERSION_LENGTH]
Definition igsc_lib.h:151
struct igsc_device_mbist_ppr_status device_mbist_ppr_status[]
Definition igsc_lib.h:1843
uint16_t vendor_id
Definition igsc_lib.h:304
uint16_t subsys_vendor_id
Definition igsc_lib.h:306
uint16_t domain
Definition igsc_lib.h:298
uint8_t ppr_mode
Definition igsc_lib.h:1836
struct igsc_gfsp_tile_mem_err errors[]
Definition igsc_lib.h:1354
uint16_t build
Definition igsc_lib.h:123
@ IGSC_OPROM_DATA
Definition igsc_lib.h:234
@ IGSC_OPROM_CODE
Definition igsc_lib.h:235
@ IGSC_OPROM_NONE
Definition igsc_lib.h:233
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
Definition igsc_lib.h:290
igsc_fwdata_version_compare_result
Definition igsc_lib.h:178
void * igsc_handle_t
Definition igsc_lib.h:73
IGSC_EXPORT void igsc_set_log_level(unsigned int log_level)
Sets log level.
igsc_image_type
Definition igsc_lib.h:108
igsc_version_compare_result
Definition igsc_lib.h:167
igsc_log_level_type
Definition igsc_lib.h:80
#define IGSC_OPROM_VER_SIZE
Definition igsc_lib.h:221
igsc_oprom_type
Definition igsc_lib.h:232