sfc: extend MTD support for newer hardware
The X2 family of NICs (based on the SFC9250) have additional MTD partitions for firmware and configuration. This includes partitions that are read-only. The NICs also have extended versions of the NVRAM interface, allowing more detailed status information to be returned. Signed-off-by: Bert Kenward <bkenward@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
cea3bfb374
commit
5fb1beecea
@@ -6041,10 +6041,11 @@ static const struct efx_ef10_nvram_type_info efx_ef10_nvram_types[] = {
|
||||
{ NVRAM_PARTITION_TYPE_EXPROM_CONFIG_PORT3, 0, 3, "sfc_exp_rom_cfg" },
|
||||
{ NVRAM_PARTITION_TYPE_LICENSE, 0, 0, "sfc_license" },
|
||||
{ NVRAM_PARTITION_TYPE_PHY_MIN, 0xff, 0, "sfc_phy_fw" },
|
||||
/* MUM and SUC firmware share the same partition type */
|
||||
{ NVRAM_PARTITION_TYPE_MUM_FIRMWARE, 0, 0, "sfc_mumfw" },
|
||||
{ NVRAM_PARTITION_TYPE_EXPANSION_UEFI, 0, 0, "sfc_uefi" },
|
||||
{ NVRAM_PARTITION_TYPE_STATUS, 0, 0, "sfc_status" }
|
||||
{ NVRAM_PARTITION_TYPE_DYNCONFIG_DEFAULTS, 0, 0, "sfc_dynamic_cfg_dflt" },
|
||||
{ NVRAM_PARTITION_TYPE_ROMCONFIG_DEFAULTS, 0, 0, "sfc_exp_rom_cfg_dflt" },
|
||||
{ NVRAM_PARTITION_TYPE_STATUS, 0, 0, "sfc_status" },
|
||||
};
|
||||
|
||||
static int efx_ef10_mtd_probe_partition(struct efx_nic *efx,
|
||||
@@ -6071,8 +6072,15 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx,
|
||||
rc = efx_mcdi_nvram_info(efx, type, &size, &erase_size, &protected);
|
||||
if (rc)
|
||||
return rc;
|
||||
if (protected &&
|
||||
(type != NVRAM_PARTITION_TYPE_DYNCONFIG_DEFAULTS &&
|
||||
type != NVRAM_PARTITION_TYPE_ROMCONFIG_DEFAULTS))
|
||||
/* Hide protected partitions that don't provide defaults. */
|
||||
return -ENODEV;
|
||||
|
||||
if (protected)
|
||||
return -ENODEV; /* hide it */
|
||||
/* Protected partitions are read only. */
|
||||
erase_size = 0;
|
||||
|
||||
part->nvram_type = type;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user