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#define IGSC_LIBRARY_VERSION_MAJOR (1)
54#define IGSC_LIBRARY_VERSION_MINOR (3)
55#define IGSC_LIBRARY_VERSION_PATCH (1)
56#define IGSC_LIBRARY_VERSION_BUILD (0)
57
58#ifndef BIT
59#define BIT(x) (1U << (x))
60#endif /* BIT */
61
62#ifndef UNUSED_VAR
63#define UNUSED_VAR(_v) (void)_v
64#endif
65
74#ifdef __linux__
75typedef int igsc_handle_t;
76#define IGSC_INVALID_DEVICE_HANDLE (-1)
77#else /* __linux__ */
78typedef void *igsc_handle_t;
79#define IGSC_INVALID_DEVICE_HANDLE ((void *)0)
80#endif /* __linux__ */
81
91
99IGSC_EXPORT
100void igsc_set_log_level(unsigned int log_level);
101
107IGSC_EXPORT
108unsigned int igsc_get_log_level(void);
109
121
126 char project[4];
127 uint16_t hotfix;
128 uint16_t build;
129};
130
135 uint16_t major;
136 uint16_t minor;
137 uint16_t hotfix;
138 uint16_t build;
139};
140
145 uint32_t date;
146 uint32_t cfg_version;
147};
148
149#define IGSC_MAX_OEM_VERSION_LENGTH 256
150
155 uint16_t length;
156 uint8_t version[IGSC_MAX_OEM_VERSION_LENGTH];
157};
158
159#define IGSC_MAX_OEM_SN_LENGTH 512
160
165 uint16_t length;
166 uint8_t sn[IGSC_MAX_OEM_SN_LENGTH];
167};
168
179
192
202
203#define IGSC_FWDATA_FORMAT_VERSION_1 0x1
204#define IGSC_FWDATA_FORMAT_VERSION_2 0x2
205
206#define IGSC_FWDATA_FITB_VALID_MASK 0x1
207
222
226#define IGSC_OPROM_VER_SIZE 8
233
242
251
262
273
278struct igsc_oprom_image;
279
284struct igsc_fwdata_image;
285
286
290struct igsc_device_iterator;
291
295#define IGSC_INFO_NAME_SIZE 256
296
302
303 uint16_t domain;
304 uint8_t bus;
305 uint8_t dev;
306 uint8_t func;
307
308 uint16_t device_id;
309 uint16_t vendor_id;
312};
313
320#define IGSC_ERROR_BASE 0x0000U
321#define IGSC_SUCCESS (IGSC_ERROR_BASE + 0)
322#define IGSC_ERROR_INTERNAL (IGSC_ERROR_BASE + 1)
323#define IGSC_ERROR_NOMEM (IGSC_ERROR_BASE + 2)
324#define IGSC_ERROR_INVALID_PARAMETER (IGSC_ERROR_BASE + 3)
325#define IGSC_ERROR_DEVICE_NOT_FOUND (IGSC_ERROR_BASE + 4)
326#define IGSC_ERROR_BAD_IMAGE (IGSC_ERROR_BASE + 5)
327#define IGSC_ERROR_PROTOCOL (IGSC_ERROR_BASE + 6)
328#define IGSC_ERROR_BUFFER_TOO_SMALL (IGSC_ERROR_BASE + 7)
329#define IGSC_ERROR_INVALID_STATE (IGSC_ERROR_BASE + 8)
330#define IGSC_ERROR_NOT_SUPPORTED (IGSC_ERROR_BASE + 9)
331#define IGSC_ERROR_INCOMPATIBLE (IGSC_ERROR_BASE + 10)
332#define IGSC_ERROR_TIMEOUT (IGSC_ERROR_BASE + 11)
333#define IGSC_ERROR_PERMISSION_DENIED (IGSC_ERROR_BASE + 12)
334#define IGSC_ERROR_BUSY (IGSC_ERROR_BASE + 13)
338
342#define IGSC_HW_CONFIG_BLOB_SIZE 48
343
350 uint32_t format_version;
351 uint8_t blob[IGSC_HW_CONFIG_BLOB_SIZE];
352};
353
360 uint16_t ssvid;
361 uint16_t ssdid;
362};
363
368#define IGSC_MAX_IMAGE_SIZE (8*1024*1024) /* 8M */
369
370struct igsc_lib_ctx;
371
376 struct igsc_lib_ctx *ctx;
377};
378
383
391IGSC_EXPORT
393
401IGSC_EXPORT
402const char *igsc_translate_firmware_status(IN uint32_t firmware_status);
403
404#define IGSC_MAX_FW_STATUS_INDEX 5
405
415IGSC_EXPORT
417 IN uint32_t fwsts_index,
418 OUT uint32_t *fwsts_value);
419
427typedef void (*igsc_log_func_t)(enum igsc_log_level_type log_level, const char* fmt, ...);
428
440IGSC_EXPORT
442
448IGSC_EXPORT
450
459IGSC_EXPORT
461 IN const char *device_path);
462
472 IN igsc_handle_t dev_handle);
473
482IGSC_EXPORT
484 IN const struct igsc_device_info *dev_info);
485
494IGSC_EXPORT
496 OUT struct igsc_device_info *dev_info);
497
498
511IGSC_EXPORT
513 OUT struct igsc_device_info *dev_info);
514
522IGSC_EXPORT
523int igsc_device_close(IN OUT struct igsc_device_handle *handle);
524
533IGSC_EXPORT
535 OUT struct igsc_fw_version *version);
536
547IGSC_EXPORT
548int igsc_image_fw_version(IN const uint8_t *buffer,
549 IN uint32_t buffer_len,
550 OUT struct igsc_fw_version *version);
551
561IGSC_EXPORT
563 OUT struct igsc_hw_config *hw_config);
564
574IGSC_EXPORT
576 OUT struct igsc_subsystem_ids *ssids);
577
588IGSC_EXPORT
589int igsc_image_hw_config(IN const uint8_t *buffer,
590 IN uint32_t buffer_len,
591 OUT struct igsc_hw_config *hw_config);
592
602IGSC_EXPORT
603int igsc_hw_config_compatible(IN const struct igsc_hw_config *image_hw_config,
604 IN const struct igsc_hw_config *device_hw_config);
614IGSC_EXPORT
615int igsc_hw_config_to_string(IN const struct igsc_hw_config *hw_config,
616 IN char *buf, IN size_t length);
617
625typedef void (*igsc_progress_func_t)(uint32_t sent, uint32_t total, void *ctx);
626
639IGSC_EXPORT int
641 IN const uint8_t *buffer,
642 IN const uint32_t buffer_len,
643 IN igsc_progress_func_t progress_f,
644 IN void *ctx);
645
646/* flags with which the update should be performed */
648 uint32_t force_update : 1;
649 uint32_t reserved : 31;
650};
651
665IGSC_EXPORT int
667 IN const uint8_t *buffer,
668 IN const uint32_t buffer_len,
669 IN igsc_progress_func_t progress_f,
670 IN void *ctx,
671 IN struct igsc_fw_update_flags flags);
672
689IGSC_EXPORT int
691 IN const uint8_t *buffer,
692 IN const uint32_t buffer_len,
693 IN igsc_progress_func_t progress_f,
694 IN void *ctx);
695
708IGSC_EXPORT int
710 IN const uint8_t *buffer,
711 IN const uint32_t buffer_len,
712 IN igsc_progress_func_t progress_f,
713 IN void *ctx);
714
726IGSC_EXPORT int
728 IN struct igsc_fwdata_image *img,
729 IN igsc_progress_func_t progress_f,
730 IN void *ctx);
731
741IGSC_EXPORT
743 IN const uint8_t *buffer,
744 IN uint32_t buffer_len);
745
754IGSC_EXPORT
756 OUT struct igsc_fwdata_version *version);
757
767IGSC_EXPORT
769 OUT struct igsc_fwdata_version2* version);
770
779IGSC_EXPORT
781 OUT struct igsc_fwdata_version *version);
782
792IGSC_EXPORT
794 OUT struct igsc_fwdata_version2* version);
795
810IGSC_EXPORT
812 IN struct igsc_fwdata_version *device_ver);
813
829IGSC_EXPORT
831 IN struct igsc_fwdata_version2* device_ver);
832
842IGSC_EXPORT
844 OUT uint32_t *count);
845
859IGSC_EXPORT
861 OUT struct igsc_fwdata_device_info *devices,
862 IN OUT uint32_t *count);
873IGSC_EXPORT
875 IN struct igsc_device_info *device);
883IGSC_EXPORT
885
895IGSC_EXPORT
897 OUT struct igsc_fwdata_device_info *device);
898
906IGSC_EXPORT
908
922IGSC_EXPORT
923uint8_t igsc_fw_version_compare(IN struct igsc_fw_version *image_ver,
924 IN struct igsc_fw_version *device_ver);
925
935IGSC_EXPORT
937 IN uint32_t oprom_type,
938 OUT struct igsc_oprom_version *version);
939
952IGSC_EXPORT
954 IN uint32_t oprom_type,
955 IN struct igsc_oprom_image *img,
956 IN igsc_progress_func_t progress_f,
957 IN void *ctx);
962
972IGSC_EXPORT
974 IN const uint8_t *buffer,
975 IN uint32_t buffer_len);
976
986IGSC_EXPORT
988 IN enum igsc_oprom_type type,
989 OUT struct igsc_oprom_version *version);
990
1000IGSC_EXPORT
1002 IN uint32_t *oprom_type);
1003
1013IGSC_EXPORT
1015 OUT uint32_t *count);
1016
1030IGSC_EXPORT
1032 OUT struct igsc_oprom_device_info *devices,
1033 IN OUT uint32_t *count);
1045IGSC_EXPORT
1047 IN enum igsc_oprom_type request_type,
1048 IN struct igsc_device_info *device);
1056IGSC_EXPORT
1058
1068IGSC_EXPORT
1070 OUT struct igsc_oprom_device_info *device);
1071
1083IGSC_EXPORT
1085 IN uint32_t request_type,
1086 OUT uint32_t *count);
1087
1102IGSC_EXPORT
1104 IN uint32_t request_type,
1105 OUT struct igsc_oprom_device_info_4ids *devices,
1106 IN OUT uint32_t *count);
1115IGSC_EXPORT
1117 IN uint32_t request_type);
1118
1129IGSC_EXPORT
1131 IN uint32_t request_type,
1132 OUT struct igsc_oprom_device_info_4ids *device);
1133
1143IGSC_EXPORT
1145 IN uint32_t request_type,
1146 OUT bool *has_4ids_extension);
1147
1156IGSC_EXPORT
1158 OUT bool *has_2ids_extension);
1159
1168IGSC_EXPORT
1170 OUT bool *devid_enforced);
1171
1179IGSC_EXPORT
1181
1195IGSC_EXPORT
1196uint8_t igsc_oprom_version_compare(const struct igsc_oprom_version *image_ver,
1197 const struct igsc_oprom_version *device_ver);
1207IGSC_EXPORT
1208int igsc_image_get_type(IN const uint8_t *buffer,
1209 IN const uint32_t buffer_len,
1210 OUT uint8_t *type);
1214
1219
1227IGSC_EXPORT
1228int igsc_device_iterator_create(struct igsc_device_iterator **iter);
1229
1238IGSC_EXPORT
1239int igsc_device_iterator_next(struct igsc_device_iterator *iter,
1240 struct igsc_device_info *info);
1241
1249IGSC_EXPORT
1250void igsc_device_iterator_destroy(struct igsc_device_iterator *iter);
1254
1259
1264 IGSC_IFR_TILE_0 = 0x0001,
1265 IGSC_IFR_TILE_1 = 0x0002,
1266};
1267
1272 IGSC_IFR_SUPPORTED_TEST_SCAN = 0x00000001,
1273 IGSC_IFR_SUPPORTED_TEST_ARRAY = 0x00000002,
1274};
1275
1280 IGSC_IFR_REPAIR_DSS_EN = 0x00000001,
1281 IGSC_IFR_REPAIR_ARRAY = 0x00000002,
1282};
1283
1298
1310IGSC_EXPORT
1312 OUT uint8_t *result,
1313 OUT uint32_t *supported_tests,
1314 OUT uint32_t *ifr_applied,
1315 OUT uint8_t *tiles_num);
1316
1329IGSC_EXPORT
1331 IN uint8_t test_type,
1332 IN uint8_t tiles,
1333 OUT uint8_t *result,
1334 OUT uint8_t *run_status,
1335 OUT uint32_t *error_code);
1339
1344
1349 uint32_t corr_err;
1350 uint32_t uncorr_err;
1351};
1352
1361
1370IGSC_EXPORT
1372 OUT uint32_t *max_num_of_tiles);
1373
1382IGSC_EXPORT
1384 IN OUT struct igsc_gfsp_mem_err *tiles);
1385
1394
1404
1420
1432IGSC_EXPORT
1434 OUT uint32_t *status,
1435 OUT uint32_t *extended_status,
1436 OUT uint32_t *pending_reset,
1437 OUT uint32_t *error_code);
1438
1450IGSC_EXPORT
1452 OUT uint32_t *status,
1453 OUT uint32_t *pending_reset,
1454 OUT uint32_t *error_code);
1455
1463
1472
1494
1503
1521IGSC_EXPORT
1523 OUT uint32_t *supported_tests,
1524 OUT uint32_t *hw_capabilities,
1525 OUT uint32_t *ifr_applied,
1526 OUT uint32_t *prev_errors,
1527 OUT uint32_t *pending_reset);
1528
1537IGSC_EXPORT
1539 OUT uint16_t *supported_tiles);
1540
1552IGSC_EXPORT
1554 IN uint16_t tile_idx,
1555 OUT uint16_t *used_array_repair_entries,
1556 OUT uint16_t *available_array_repair_entries,
1557 OUT uint16_t *failed_dss);
1568IGSC_EXPORT
1570 IN uint8_t req_ecc_state,
1571 OUT uint8_t *cur_ecc_state,
1572 OUT uint8_t *pen_ecc_state);
1573
1583IGSC_EXPORT
1585 OUT uint8_t *cur_ecc_state,
1586 OUT uint8_t *pen_ecc_state);
1587
1596IGSC_EXPORT
1598 OUT struct igsc_oem_version *version);
1599
1608IGSC_EXPORT
1610 OUT struct igsc_oem_serial_number *sn);
1611
1620IGSC_EXPORT
1622 OUT struct igsc_ifr_bin_version *version);
1623
1632IGSC_EXPORT
1634 OUT struct igsc_psc_version *version);
1635
1637 IGSC_HEALTH_INDICATOR_HEALTHY = 0,
1638 IGSC_HEALTH_INDICATOR_DEGRADED = 1,
1639 IGSC_HEALTH_INDICATOR_CRITICAL = 2,
1640 IGSC_HEALTH_INDICATOR_REPLACE = 3
1641};
1642
1651IGSC_EXPORT
1652int igsc_gfsp_get_health_indicator(IN struct igsc_device_handle *handle,
1653 OUT uint8_t *health_indicator);
1654
1668IGSC_EXPORT
1669int igsc_gfsp_heci_cmd(struct igsc_device_handle *handle, uint32_t gfsp_cmd,
1670 uint8_t* in_buffer, size_t in_buffer_size,
1671 uint8_t* out_buffer, size_t out_buffer_size,
1672 size_t *actual_out_buffer_size);
1673
1678 CSC_LATE_BINDING_FLAGS_IS_PERSISTENT_MASK = 0x1,
1679};
1680
1685 CSC_LATE_BINDING_TYPE_INVALID = 0,
1686 CSC_LATE_BINDING_TYPE_FAN_TABLE = 1,
1687 CSC_LATE_BINDING_TYPE_VR_CONFIG = 2,
1688 CSC_LATE_BINDING_TYPE_OCODE = 3,
1689 CSC_LATE_BINDING_TYPE_DGDIAG = 4,
1690};
1691
1696 CSC_LATE_BINDING_STATUS_SUCCESS = 0,
1697 CSC_LATE_BINDING_STATUS_4ID_MISMATCH = 1,
1698 CSC_LATE_BINDING_STATUS_ARB_FAILURE = 2,
1699 CSC_LATE_BINDING_STATUS_GENERAL_ERROR = 3,
1700 CSC_LATE_BINDING_STATUS_INVALID_PARAMS = 4,
1701 CSC_LATE_BINDING_STATUS_INVALID_SIGNATURE = 5,
1702 CSC_LATE_BINDING_STATUS_INVALID_PAYLOAD = 6,
1703 CSC_LATE_BINDING_STATUS_TIMEOUT = 7,
1704 CSC_LATE_BINDING_STATUS_BUFFER_TOO_SMALL = 8,
1705 CSC_LATE_BINDING_STATUS_INTERNAL_ERROR = 9,
1706 CSC_LATE_BINDING_STATUS_INVALID_FPT_TABLE = 10,
1707 CSC_LATE_BINDING_STATUS_SIGNED_PAYLOAD_VERIFICATION_ERROR = 11,
1708 CSC_LATE_BINDING_STATUS_SIGNED_PAYLOAD_INVALID_CPD = 12,
1709 CSC_LATE_BINDING_STATUS_SIGNED_PAYLOAD_FW_VERSION_MISMATCH = 13,
1710 CSC_LATE_BINDING_STATUS_SIGNED_PAYLOAD_INVALID_MANIFEST = 14,
1711 CSC_LATE_BINDING_STATUS_SIGNED_PAYLOAD_INVALID_HASH = 15,
1712 CSC_LATE_BINDING_STATUS_SIGNED_PAYLOAD_BINDING_TYPE_MISMATCH = 16,
1713 CSC_LATE_BINDING_STATUS_SIGNED_PAYLOAD_HANDLE_SVN_FAILED = 17,
1714 CSC_LATE_BINDING_STATUS_DESTINATION_MBOX_FAILURE = 18,
1715 CSC_LATE_BINDING_STATUS_MISSING_LOADING_PATCH = 19,
1716 CSC_LATE_BINDING_STATUS_INVALID_COMMAND = 20,
1717 CSC_LATE_BINDING_STATUS_INVALID_HECI_HEADER = 21,
1718 CSC_LATE_BINDING_STATUS_IP_ERROR_START = 0x80000000,
1719};
1720
1725 CSC_LATE_BINDING_SVN_SOURCE_SPI = 0,
1726 CSC_LATE_BINDING_SVN_SOURCE_KEY_MANIFEST = 1,
1727};
1728
1741IGSC_EXPORT
1742int igsc_device_update_late_binding_config(IN struct igsc_device_handle *handle,
1743 IN uint32_t type, /* enum csc_late_binding_type */
1744 IN uint32_t flags, /* enum csc_late_binding_flags */
1745 IN uint8_t *payload, IN size_t payload_size,
1746 OUT uint32_t *status); /* enum csc_late_binding_status */
1747
1760IGSC_EXPORT
1761int igsc_device_update_late_binding_config2(IN struct igsc_device_handle* handle,
1762 IN uint32_t type, /* enum csc_late_binding_type */
1763 IN uint32_t flags, /* enum csc_late_binding_flags */
1764 IN uint8_t* payload, IN size_t payload_size,
1765 OUT uint32_t* status); /* enum csc_late_binding_status */
1766
1778IGSC_EXPORT
1779int igsc_device_get_late_binding_info(IN struct igsc_device_handle* handle,
1780 IN uint32_t type, /* enum csc_late_binding_type */
1781 OUT uint32_t* svn_source,
1782 OUT uint32_t* min_svn,
1783 OUT uint32_t* status); /* enum csc_late_binding_status */
1784
1793IGSC_EXPORT
1794int igsc_device_commit_arb_svn(IN struct igsc_device_handle *handle, uint8_t *fw_error);
1795
1804IGSC_EXPORT
1806 OUT uint8_t *min_allowed_svn);
1807
1811
1815
1820 IGSC_PPR_STATUS_TEST_EXECUTED_MASK = 0x1,
1821 IGSC_PPR_STATUS_TEST_SUCCESS_MASK = 0x2,
1822 IGSC_PPR_STATUS_FOUND_HW_ERROR_MASK = 0x4,
1823 IGSC_PPR_STATUS_HW_ERROR_REPAIRED_MASK = 0x8,
1824};
1825
1834
1850
1859IGSC_EXPORT
1861 OUT uint32_t *device_count);
1862
1872IGSC_EXPORT
1874 OUT struct igsc_ppr_status *ppr_status);
1875
1879
1888IGSC_EXPORT
1889void igsc_library_version(uint32_t *major, uint32_t *minor,
1890 uint32_t *patch, uint32_t *build);
1891
1892#ifdef __cplusplus
1893}
1894#endif
1895#endif /* __IGSC_LIB_H__ */
#define IGSC_HW_CONFIG_BLOB_SIZE
Definition igsc_lib.h:342
structure to store hw configuration
Definition igsc_lib.h:349
structure to store device subsystem ids
Definition igsc_lib.h:359
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:1290
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:1819
@ IFR_TEST_STATUS_SUBSLICE_FAILURE
Definition igsc_lib.h:1294
@ IFR_TEST_STATUS_ERROR
Definition igsc_lib.h:1296
@ IFR_TEST_STATUS_PASSED_WITH_RECOVERY
Definition igsc_lib.h:1293
@ IFR_TEST_STATUS_SUCCESS
Definition igsc_lib.h:1291
@ IFR_TEST_STATUS_PASSED_WITH_REPAIR
Definition igsc_lib.h:1292
@ IFR_TEST_STATUS_NON_SUBSLICE_FAILURE
Definition igsc_lib.h:1295
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:625
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:427
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:1467
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:1695
igsc_ifr_repairs_mask
Definition igsc_lib.h:1498
igsc_ifr_array_scan_extended_status
Definition igsc_lib.h:1405
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:1677
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:1459
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:1724
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:1389
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:1398
igsc_gfsp_health_indicators
Gets memory health indicator.
Definition igsc_lib.h:1636
igsc_ifr_previous_errors_masks
Definition igsc_lib.h:1476
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:1684
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:1470
@ IGSC_IRF_HW_CAPABILITY_IN_FIELD_REPAIR
Definition igsc_lib.h:1468
@ IGSC_IFR_REPAIRS_MASK_ARRAY_REPAIR
Definition igsc_lib.h:1500
@ IGSC_IFR_REPAIRS_MASK_FAILURE
Definition igsc_lib.h:1501
@ IGSC_IFR_REPAIRS_MASK_DSS_EN_REPAIR
Definition igsc_lib.h:1499
@ IGSC_IFR_EXT_STS_NO_RESORCES
Definition igsc_lib.h:1415
@ IGSC_IFR_EXT_STS_REPAIRED_ARRAY_SUBSLICE
Definition igsc_lib.h:1412
@ IGSC_IFR_EXT_STS_DEEP_RST_PENDING
Definition igsc_lib.h:1408
@ IGSC_IFR_EXT_STS_NO_REPAIR_NEEDED
Definition igsc_lib.h:1409
@ IGSC_IFR_EXT_STS_REPAIRED_ARRAY
Definition igsc_lib.h:1410
@ IGSC_IFR_EXT_STS_PASSED
Definition igsc_lib.h:1406
@ IGSC_IFR_EXT_STS_NON_SUBSLICE_IN_ARRAY
Definition igsc_lib.h:1416
@ IGSC_IFR_EXT_STS_REPAIR_NOT_SUPPORTED
Definition igsc_lib.h:1414
@ IGSC_IFR_EXT_STS_REPAIRED_ARRAY_FAULTY_SUBSLICE
Definition igsc_lib.h:1413
@ IGSC_IFR_EXT_STS_NON_SUBSLICE_IN_SCAN
Definition igsc_lib.h:1417
@ IGSC_IFR_EXT_STS_TEST_ERROR
Definition igsc_lib.h:1418
@ IGSC_IFR_EXT_STS_REPAIRED_SUBSLICE
Definition igsc_lib.h:1411
@ IGSC_IFR_EXT_STS_SHALLOW_RST_PENDING
Definition igsc_lib.h:1407
@ IGSC_IFR_SUPPORTED_TESTS_MEMORY_PPR
Definition igsc_lib.h:1461
@ IGSC_IFR_SUPPORTED_TESTS_ARRAY_AND_SCAN
Definition igsc_lib.h:1460
@ IGSC_IFR_PENDING_RESET_NONE
Definition igsc_lib.h:1390
@ IGSC_IFR_PENDING_RESET_SHALLOW
Definition igsc_lib.h:1391
@ IGSC_IFR_PENDING_RESET_DEEP
Definition igsc_lib.h:1392
@ IGSC_ARRAY_SCAN_STATUS_FOUND_HW_ERROR_MASK
Definition igsc_lib.h:1401
@ IGSC_ARRAY_SCAN_STATUS_HW_REPAIR_MASK
Definition igsc_lib.h:1402
@ IGSC_ARRAY_SCAN_STATUS_TEST_EXECUTION_MASK
Definition igsc_lib.h:1399
@ IGSC_ARRAY_SCAN_STATUS_TEST_RESULT_MASK
Definition igsc_lib.h:1400
@ IGSC_IFR_PREV_ERROR_DSS_ERR_SCAN_STS_PKT
Definition igsc_lib.h:1483
@ IGSC_IFR_PREV_ERROR_NOT_ENOUGH_SPARE_DSS
Definition igsc_lib.h:1485
@ IGSC_IFR_PREV_ERROR_DSS_ERR_ARR_STS_PKT
Definition igsc_lib.h:1477
@ IGSC_IFR_PREV_ERROR_MIS_NON_DSS_STS_PKT_ON_SCAN
Definition igsc_lib.h:1489
@ IGSC_IFR_PREV_ERROR_DSS_UNREPAIRABLE_PKT
Definition igsc_lib.h:1480
@ IGSC_IFR_PREV_ERROR_MIS_DSS_STS_PKT_ON_ARR
Definition igsc_lib.h:1486
@ IGSC_IFR_PREV_ERROR_NON_DSS_ENG_DONE_CLR_IN_ARR
Definition igsc_lib.h:1491
@ IGSC_IFR_PREV_ERROR_UNEXPECTED
Definition igsc_lib.h:1492
@ IGSC_IFR_PREV_ERROR_MIS_NON_DSS_STS_PKT_ON_ARR
Definition igsc_lib.h:1487
@ IGSC_IFR_PREV_ERROR_NON_DSS_ERR_ARR_STS_PKT
Definition igsc_lib.h:1478
@ IGSC_IFR_PREV_ERROR_NON_DSS_UNREPAIRABLE_PKT
Definition igsc_lib.h:1482
@ IGSC_IFR_PREV_ERROR_DSS_ENG_DONE_CLR_IN_ARR
Definition igsc_lib.h:1490
@ IGSC_IFR_PREV_ERROR_MIS_DSS_STS_PKT_ON_SCAN
Definition igsc_lib.h:1488
@ IGSC_IFR_PREV_ERROR_NON_DSS_REPAIRABLE_PKT
Definition igsc_lib.h:1481
@ IGSC_IFR_PREV_ERROR_NON_DSS_ERR_SCAN_STS_PKT
Definition igsc_lib.h:1484
@ IGSC_IFR_PREV_ERROR_DSS_REPAIRABLE_PKT
Definition igsc_lib.h:1479
uint32_t data_arb_svn
Definition igsc_lib.h:219
uint32_t data_arb_svn_fitb
Definition igsc_lib.h:220
uint16_t device_id
Definition igsc_lib.h:308
uint16_t subsys_vendor_id
Definition igsc_lib.h:248
uint16_t hotfix
Definition igsc_lib.h:127
uint32_t date
Definition igsc_lib.h:145
igsc_supported_ifr_tests
Definition igsc_lib.h:1271
uint32_t num_devices
Definition igsc_lib.h:1847
uint32_t oem_manuf_data_version_fitb
Definition igsc_lib.h:215
@ IGSC_FWDATA_VERSION_OLDER_VCN
Definition igsc_lib.h:188
@ IGSC_FWDATA_VERSION_REJECT_DIFFERENT_PROJECT
Definition igsc_lib.h:186
@ IGSC_FWDATA_VERSION_REJECT_ARB_SVN
Definition igsc_lib.h:190
@ IGSC_FWDATA_VERSION_ACCEPT
Definition igsc_lib.h:187
@ IGSC_FWDATA_VERSION_REJECT_VCN
Definition igsc_lib.h:184
@ IGSC_FWDATA_VERSION_REJECT_OEM_MANUF_DATA_VERSION
Definition igsc_lib.h:185
@ IGSC_FWDATA_VERSION_REJECT_WRONG_FORMAT
Definition igsc_lib.h:189
uint16_t major_version
Definition igsc_lib.h:216
igsc_ifr_tiles
Definition igsc_lib.h:1263
uint16_t subsys_device_id
Definition igsc_lib.h:249
IGSC_EXPORT void igsc_library_version(uint32_t *major, uint32_t *minor, uint32_t *patch, uint32_t *build)
Return the library version.
uint32_t ras_ppr_applied
Definition igsc_lib.h:1845
uint32_t cfg_version
Definition igsc_lib.h:146
uint8_t boot_time_memory_correction_pending
Definition igsc_lib.h:1839
char project[4]
Definition igsc_lib.h:126
uint32_t format_version
Definition igsc_lib.h:213
struct igsc_lib_ctx * ctx
Definition igsc_lib.h:376
igsc_ifr_repairs
Definition igsc_lib.h:1279
@ IGSC_IMAGE_TYPE_OPROM_CODE
Definition igsc_lib.h:117
@ IGSC_IMAGE_TYPE_UNKNOWN
Definition igsc_lib.h:114
@ IGSC_IMAGE_TYPE_FW_DATA
Definition igsc_lib.h:119
@ IGSC_IMAGE_TYPE_OPROM_DATA
Definition igsc_lib.h:118
@ IGSC_IMAGE_TYPE_OPROM
Definition igsc_lib.h:116
@ IGSC_IMAGE_TYPE_GFX_FW
Definition igsc_lib.h:115
uint8_t version[IGSC_OPROM_VER_SIZE]
Definition igsc_lib.h:231
uint16_t subsys_device_id
Definition igsc_lib.h:310
uint32_t oem_manuf_data_version
Definition igsc_lib.h:214
char name[IGSC_INFO_NAME_SIZE]
Definition igsc_lib.h:301
uint32_t oem_manuf_data_version
Definition igsc_lib.h:198
uint32_t mbist_completed
Definition igsc_lib.h:1846
@ IGSC_VERSION_OLDER
Definition igsc_lib.h:177
@ IGSC_VERSION_NEWER
Definition igsc_lib.h:175
@ IGSC_VERSION_ERROR
Definition igsc_lib.h:173
@ IGSC_VERSION_NOT_COMPATIBLE
Definition igsc_lib.h:174
@ IGSC_VERSION_EQUAL
Definition igsc_lib.h:176
@ IGSC_LOG_LEVEL_DEBUG
Definition igsc_lib.h:87
@ IGSC_LOG_LEVEL_TRACE
Definition igsc_lib.h:88
@ IGSC_LOG_LEVEL_MAX
Definition igsc_lib.h:89
@ IGSC_LOG_LEVEL_ERROR
Definition igsc_lib.h:86
uint16_t major_version
Definition igsc_lib.h:199
uint32_t num_of_tiles
Definition igsc_lib.h:1357
uint8_t sn[IGSC_MAX_OEM_SN_LENGTH]
Definition igsc_lib.h:166
uint8_t test_run_status
Definition igsc_lib.h:1843
uint16_t length
Definition igsc_lib.h:155
uint8_t version[IGSC_MAX_OEM_VERSION_LENGTH]
Definition igsc_lib.h:156
struct igsc_device_mbist_ppr_status device_mbist_ppr_status[]
Definition igsc_lib.h:1848
uint16_t vendor_id
Definition igsc_lib.h:309
uint16_t subsys_vendor_id
Definition igsc_lib.h:311
uint16_t domain
Definition igsc_lib.h:303
uint8_t ppr_mode
Definition igsc_lib.h:1841
struct igsc_gfsp_tile_mem_err errors[]
Definition igsc_lib.h:1359
uint16_t build
Definition igsc_lib.h:128
@ IGSC_OPROM_DATA
Definition igsc_lib.h:239
@ IGSC_OPROM_CODE
Definition igsc_lib.h:240
@ IGSC_OPROM_NONE
Definition igsc_lib.h:238
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:295
igsc_fwdata_version_compare_result
Definition igsc_lib.h:183
void * igsc_handle_t
Definition igsc_lib.h:78
IGSC_EXPORT void igsc_set_log_level(unsigned int log_level)
Sets log level.
igsc_image_type
Definition igsc_lib.h:113
igsc_version_compare_result
Definition igsc_lib.h:172
igsc_log_level_type
Definition igsc_lib.h:85
#define IGSC_OPROM_VER_SIZE
Definition igsc_lib.h:226
igsc_oprom_type
Definition igsc_lib.h:237