Intel® Ethernet Adapters and Devices User Guide
Firmware Logging
Intel® Ethernet 800 Series devices allow you to generate firmware logs for supported categories of events, to help debug complex issues with Customer Support. Firmware logging is enabled by default.
Both the device and the driver need to support firmware logging for the functionality to work. If you are not able to set the configuration and the problem persists, reinstall the driver.
You must have the latest base driver and NVM installed.
Firmware logging events and levels are device-wide settings. Changing the log configuration on one port will apply it to all ports on a device.
Capturing a Firmware Log
To capture a firmware log, you must do the following:
Set the configuration for the firmware log. See later in this page for more information.
Perform the necessary steps to generate the issue you’re trying to debug.
Capture the firmware log. (Exact steps will vary by operating system.)
Stop capturing the firmware log.
Reset your firmware log settings as needed.
Work with Customer Support to debug your issue.
Firmware logs are generated in a binary format and must be decoded by Customer Support. Information collected is related only to firmware and hardware for debug purposes.
Configuring Settings for Firmware Logs
Firmware logs capture information about different categories of events (called “modules”). A module corresponds to a general category of functionality, such as link topology detection or manageability.
The device’s NVM sets default verbosity levels for each module. You can change the verbosity level per module; refer to OS-Specific Information below for more details. You can set only one log level per module, and each level includes the verbosity levels lower than it.
Available verbosity levels are:
0 = none
1 = error
2 = warning
3 = normal
4 = verbose
If you see errors or suspect the issue could fall into the below categories, setting the firmware logs to capture more verbosity for the corresponding module(s) in the right column will provide more information in the firmware log.
Tips for Firmware Logs
Firmware logs are for the hardest issues to debug. If you are experiencing issues, refer to the following sections for preliminary methods to diagnose problems:
We generally do not recommend to capture firmware logs at all times. If you suspect an issue, set the module(s) for the suspected event to a higher verbosity level, capture the firmware log, and then stop the log.
Collecting firmware logs should not materially impact performance or CPU utilization.
In general, set the logging level to Verbose only for the configuration group(s) or module(s) you need to debug. Setting too many modules to Verbose can overrun the buffer.
You can try writing logs to a remote location or an external storage device, if your disk is full or your system does not have sufficient storage.
OS-Specific Information
Linux
At a high level, do the following to capture a firmware log in Linux:
Set log levels. For example:
echo normal > /sys/kernel/debug/ice/0000:18:00.0/fwlog/modules/all
Turn on firmware logging:
echo 1 > /sys/kernel/debug/ice/0000:18:00.0/fwlog/enable
Perform the necessary steps to generate the issue you are trying to debug.
Turn off firmware logging:
echo 0 > /sys/kernel/debug/ice/0000:18:00.0/fwlog/enable
Save data to a file:
cat /sys/kernel/debug/ice/0000:18:00.0/fwlog/data > fwlog.bin
Work with Customer Support to debug your issue.
Refer to the README in the driver tarball for more information on configuring firmware logs.
FreeBSD
Refer to the README in the driver tarball for more information on configuring firmware logs.
In FreeBSD, the driver can register/unregister to receive events per PF.
Windows
In Windows, you use PowerShell and Intel Ethernet cmdlets to configure firmware logging and capture firmware logs.
At a high level, do the following to capture a firmware log in Windows:
Set the configuration for the firmware log, using the
Set-IntelEthernetLogConfig cmdlet in PowerShell.Perform the necessary steps to generate the issue you’re trying to debug.
Start capturing the firmware log, using the
Start-IntelEthernetLog cmdlet.Stop capturing the firmware log, using the
Stop-IntelEthernetLog cmdlet.Work with Customer Support to decode your firmware log file and debug the issue.
Firmware logs will be captured in the file you designated with
Start-IntelEthernetLog .To disable firmware logging, use the
Disable-IntelEthernetLogConfig cmdlet. To verify that firmware logging is disabled, run theGet-IntelEthernetLogConfig cmdlet ; its results should say “Disabled.”
ESXi
In ESXi, use
At a high level, do the following to capture a firmware log in ESXi:
Refer to ESXi Example Commands below for all commands and parameters.
Set the configuration for the firmware log, using
esxcfg-module . The ESXi driver uses the following module parameters for firmware logging:
FWLogEnable : Enables firmware logging functionality on the designated PF (0 = Disable, 1 = Enable). Use commas to separate the values for each PF; the first value is for PF0, second for PF1, and so on.FWLogEvents : Designates the firmware events to log, using a bitmask. Binary math is required to set.FWLogLevel : Sets the verbosity level for the firmware event’s log.
Redirect the kernel log or dmesg to a separate file for capturing the firmware log.
Reboot the system for changes to take effect.
After the system has rebooted, perform the necessary steps to generate the issue you’re trying to debug.
Work with Customer Support to decode your firmware log file and debug the issue.
Note: Firmware logs will be captured in the file you designated in step 2.
ESXi Example Commands
Use the following commands in ESXi for tasks related to firmware logging:
To enable firmware logging and set the verbosity level for your desired events:
esxcfg-module icen -s 'FWLogEnable=<values> FWLogEvents=<bitmask> FWLogLevel=<value>'
For example, to enable firmware logging on PF0 and set all events to log warning messages, use:
esxcfg-module icen -s 'FWLogEnable=1,0,0,0,0,0,0,0 FWLogEvents=255 FWLogLevel=2'
To show the current configuration of the firmware log parameters:
esxcfg-module -g <driver name>
Note: If firmware logging is disabled, the
FWLogEnable parameter should say “0” (disabled).To show a description of module parameters for firmware logging:
esxcfg-module -i <driver name>
Note: Look for the parameters that begin with
FWLog .To redirect the firmware log to a file:
tail -f /var/log/vmkernel.log > filename.log
To disable firmware logging:
esxcfg-module icen -s 'FWLogEnable=0 FWLogEvents=0 FWLogLevel=0'