Linux MMIO Access Settings Can Affect fwupdate Commands On Intel Network Controllers
On some Linux kernels, memory mapped IO (MMIO) access is set to strict mode to prevent access to MMIO memory from user space utilities. When the kernel is running in this mode, fwupdate will not be able to access Intel-based network controllers.
If the fwupdate list or update command is run with kernel MMIO access is set to iomem=strict, the following can occur:
-
fwupdatewill display a warning to the console, for example:# ./fwupdate list controller WARNING: Due to strict MMIO memory settings in the running kernel some network controllers may not be accessible. See Hardware Management Pack documentation regarding iomem kernel settings required for firmware update of these devices.
This warning informs you that
fwupdatemight not be able to access some network controllers. Iffwupdatecannot access a device, it will not be able to list or update the device. As a result, no Intel network controllers will be listed in thefwupdate list controlleroutput, though other updatable controllers will be listed. -
fwupdateproduces a warning message indmesg/syslog, for example:kernel: Program fwupdate tried to access /dev/mem between c4a00000->c4a01000.This is an informational message that
fwupdateattempted to access restricted memory and will not cause an issue with the operation of the OS. There will be one of these messages logged each timefwupdateis run with the kernel in strict MMIO access mode. -
If the
fwupdateupdate command is run in quiet (silent) mode, no messages are displayed to the console. A warning that the command failed can be captured in the output xml inventory when using the-ooption. You can then see a<warning>entry for each device affected by this issue. For example, in the output xml file you might see:<device> <devicetype>Controller</devicetype> <devicesubtype>NET</devicesubtype> <devicename>c10</devicename> <modelnumber>0x1528</modelnumber> <manufacturer>Intel</manufacturer> <node_id>Generic WWN:00:10:E0:57:7A:1E PCI Addr:82:00.0</node_id> <xml_support>N/A</xml_support> <pci_address>82:00.0</pci_address> <pci_vendor_id>0x8086</pci_vendor_id> <product_name>Intel X540 Gigabit Ethernet Controller</product_name> <warning>Firmware version data is not readable. Please see Hardware Management Pack documentation and release notes for more information on kernel configuration.</warning> </device>
Workaround
If you encounter this issue, perform one of the following actions to allow fwupdate to access and list or update these devices.
-
Add
iomem=relaxedto the kernel command line. -
Run with a kernel version that does not restrict MMIO memory access to the user space.
Parent topic: fwupdate Command Overview