| 1838 | } |
| 1839 | |
| 1840 | int ice_load_pkg(struct ice_adapter *adapter, bool use_dsn, uint64_t dsn) |
| 1841 | { |
| 1842 | struct ice_hw *hw = &adapter->hw; |
| 1843 | char pkg_file[ICE_MAX_PKG_FILENAME_SIZE]; |
| 1844 | char opt_ddp_filename[ICE_MAX_PKG_FILENAME_SIZE]; |
| 1845 | void *buf; |
| 1846 | size_t bufsz; |
| 1847 | int err; |
| 1848 | |
| 1849 | if (!use_dsn) |
| 1850 | goto no_dsn; |
| 1851 | |
| 1852 | memset(opt_ddp_filename, 0, ICE_MAX_PKG_FILENAME_SIZE); |
| 1853 | snprintf(opt_ddp_filename, ICE_MAX_PKG_FILENAME_SIZE, |
| 1854 | "ice-%016" PRIx64 ".pkg", dsn); |
| 1855 | strncpy(pkg_file, ICE_PKG_FILE_SEARCH_PATH_UPDATES, |
| 1856 | ICE_MAX_PKG_FILENAME_SIZE); |
| 1857 | strcat(pkg_file, opt_ddp_filename); |
| 1858 | if (rte_firmware_read(pkg_file, &buf, &bufsz) == 0) |
| 1859 | goto load_fw; |
| 1860 | |
| 1861 | strncpy(pkg_file, ICE_PKG_FILE_SEARCH_PATH_DEFAULT, |
| 1862 | ICE_MAX_PKG_FILENAME_SIZE); |
| 1863 | strcat(pkg_file, opt_ddp_filename); |
| 1864 | if (rte_firmware_read(pkg_file, &buf, &bufsz) == 0) |
| 1865 | goto load_fw; |
| 1866 | |
| 1867 | no_dsn: |
| 1868 | strncpy(pkg_file, ICE_PKG_FILE_UPDATES, ICE_MAX_PKG_FILENAME_SIZE); |
| 1869 | if (rte_firmware_read(pkg_file, &buf, &bufsz) == 0) |
| 1870 | goto load_fw; |
| 1871 | |
| 1872 | strncpy(pkg_file, ICE_PKG_FILE_DEFAULT, ICE_MAX_PKG_FILENAME_SIZE); |
| 1873 | if (rte_firmware_read(pkg_file, &buf, &bufsz) < 0) { |
| 1874 | PMD_INIT_LOG(ERR, "failed to search file path"); |
| 1875 | return -1; |
| 1876 | } |
| 1877 | |
| 1878 | load_fw: |
| 1879 | PMD_INIT_LOG(DEBUG, "DDP package name: %s", pkg_file); |
| 1880 | |
| 1881 | err = ice_copy_and_init_pkg(hw, buf, bufsz); |
| 1882 | if (!ice_is_init_pkg_successful(err)) { |
| 1883 | PMD_INIT_LOG(ERR, "ice_copy_and_init_hw failed: %d", err); |
| 1884 | free(buf); |
| 1885 | return -1; |
| 1886 | } |
| 1887 | |
| 1888 | /* store the loaded pkg type info */ |
| 1889 | adapter->active_pkg_type = ice_load_pkg_type(hw); |
| 1890 | |
| 1891 | free(buf); |
| 1892 | return 0; |
| 1893 | } |
| 1894 | |
| 1895 | static void |
| 1896 | ice_base_queue_get(struct ice_pf *pf) |
no test coverage detected