|
@@ -64,7 +64,6 @@
|
|
|
#define DEFAULT_FW_FABRIC_NAME "hfi1_fabric.fw"
|
|
|
#define DEFAULT_FW_SBUS_NAME "hfi1_sbus.fw"
|
|
|
#define DEFAULT_FW_PCIE_NAME "hfi1_pcie.fw"
|
|
|
-#define DEFAULT_PLATFORM_CONFIG_NAME "hfi1_platform.dat"
|
|
|
#define ALT_FW_8051_NAME_ASIC "hfi1_dc8051_d.fw"
|
|
|
#define ALT_FW_FABRIC_NAME "hfi1_fabric_d.fw"
|
|
|
#define ALT_FW_SBUS_NAME "hfi1_sbus_d.fw"
|
|
@@ -76,19 +75,11 @@ static uint fw_fabric_serdes_load = 1;
|
|
|
static uint fw_pcie_serdes_load = 1;
|
|
|
static uint fw_sbus_load = 1;
|
|
|
|
|
|
-/*
|
|
|
- * Access required in platform.c
|
|
|
- * Maintains state of whether the platform config was fetched via the
|
|
|
- * fallback option
|
|
|
- */
|
|
|
-uint platform_config_load;
|
|
|
-
|
|
|
/* Firmware file names get set in hfi1_firmware_init() based on the above */
|
|
|
static char *fw_8051_name;
|
|
|
static char *fw_fabric_serdes_name;
|
|
|
static char *fw_sbus_name;
|
|
|
static char *fw_pcie_serdes_name;
|
|
|
-static char *platform_config_name;
|
|
|
|
|
|
#define SBUS_MAX_POLL_COUNT 100
|
|
|
#define SBUS_COUNTER(reg, name) \
|
|
@@ -178,7 +169,6 @@ static struct firmware_details fw_8051;
|
|
|
static struct firmware_details fw_fabric;
|
|
|
static struct firmware_details fw_pcie;
|
|
|
static struct firmware_details fw_sbus;
|
|
|
-static const struct firmware *platform_config;
|
|
|
|
|
|
/* flags for turn_off_spicos() */
|
|
|
#define SPICO_SBUS 0x1
|
|
@@ -684,7 +674,6 @@ done:
|
|
|
static int obtain_firmware(struct hfi1_devdata *dd)
|
|
|
{
|
|
|
unsigned long timeout;
|
|
|
- int err = 0;
|
|
|
|
|
|
mutex_lock(&fw_mutex);
|
|
|
|
|
@@ -708,38 +697,11 @@ static int obtain_firmware(struct hfi1_devdata *dd)
|
|
|
}
|
|
|
/* not in FW_TRY state */
|
|
|
|
|
|
- if (fw_state == FW_FINAL) {
|
|
|
- if (platform_config) {
|
|
|
- dd->platform_config.data = platform_config->data;
|
|
|
- dd->platform_config.size = platform_config->size;
|
|
|
- }
|
|
|
- goto done; /* already acquired */
|
|
|
- } else if (fw_state == FW_ERR) {
|
|
|
- goto done; /* already tried and failed */
|
|
|
- }
|
|
|
- /* fw_state is FW_EMPTY */
|
|
|
-
|
|
|
/* set fw_state to FW_TRY, FW_FINAL, or FW_ERR, and fw_err */
|
|
|
- __obtain_firmware(dd);
|
|
|
-
|
|
|
- if (platform_config_load) {
|
|
|
- platform_config = NULL;
|
|
|
- err = request_firmware(&platform_config, platform_config_name,
|
|
|
- &dd->pcidev->dev);
|
|
|
- if (err) {
|
|
|
- platform_config = NULL;
|
|
|
- dd_dev_err(dd,
|
|
|
- "%s: No default platform config file found\n",
|
|
|
- __func__);
|
|
|
- goto done;
|
|
|
- }
|
|
|
- dd->platform_config.data = platform_config->data;
|
|
|
- dd->platform_config.size = platform_config->size;
|
|
|
- }
|
|
|
+ if (fw_state == FW_EMPTY)
|
|
|
+ __obtain_firmware(dd);
|
|
|
|
|
|
-done:
|
|
|
mutex_unlock(&fw_mutex);
|
|
|
-
|
|
|
return fw_err;
|
|
|
}
|
|
|
|
|
@@ -761,9 +723,6 @@ void dispose_firmware(void)
|
|
|
dispose_one_firmware(&fw_pcie);
|
|
|
dispose_one_firmware(&fw_sbus);
|
|
|
|
|
|
- release_firmware(platform_config);
|
|
|
- platform_config = NULL;
|
|
|
-
|
|
|
/* retain the error state, otherwise revert to empty */
|
|
|
if (fw_state != FW_ERR)
|
|
|
fw_state = FW_EMPTY;
|
|
@@ -1725,10 +1684,8 @@ int hfi1_firmware_init(struct hfi1_devdata *dd)
|
|
|
}
|
|
|
|
|
|
/* no 8051 or QSFP on simulator */
|
|
|
- if (dd->icode == ICODE_FUNCTIONAL_SIMULATOR) {
|
|
|
+ if (dd->icode == ICODE_FUNCTIONAL_SIMULATOR)
|
|
|
fw_8051_load = 0;
|
|
|
- platform_config_load = 0;
|
|
|
- }
|
|
|
|
|
|
if (!fw_8051_name) {
|
|
|
if (dd->icode == ICODE_RTL_SILICON)
|
|
@@ -1742,8 +1699,6 @@ int hfi1_firmware_init(struct hfi1_devdata *dd)
|
|
|
fw_sbus_name = DEFAULT_FW_SBUS_NAME;
|
|
|
if (!fw_pcie_serdes_name)
|
|
|
fw_pcie_serdes_name = DEFAULT_FW_PCIE_NAME;
|
|
|
- if (!platform_config_name)
|
|
|
- platform_config_name = DEFAULT_PLATFORM_CONFIG_NAME;
|
|
|
|
|
|
return obtain_firmware(dd);
|
|
|
}
|