Linux MMIO Kernel Configuration Can Affect fwupdate For Intel NIC/LOM Updates (25736189, 26006365, 25654252)
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:
-
fwupdate
will 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
fwupdate
might not be able to access some network controllers. Iffwupdate
cannot 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 controller
output, though other updatable controllers will be listed. -
fwupdate
produces a warning message indmesg/syslog
, for example:kernel: Program fwupdate tried to access /dev/mem between c4a00000->c4a01000.
This is an informational message that
fwupdate
attempted 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 timefwupdate
is run with the kernel in strict MMIO access mode. -
If the
fwupdate
update 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-o
option. 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=relaxed
to the kernel command line. -
Run with a kernel version that does not restrict MMIO memory access to the user space.
Parent topic: fwupdate Known Issues