AMD Solarflare 8.x Linux utilities ================================== Version: 8.3.3.1000 Overview -------- This package is the AMD Solarflare Utilities source RPM for Linux. It contains - sfupdate: a flash firmware update utility - sfboot: a boot ROM configuration utility - sfkey: a license management utility for X2xxx and SFN8xxx - sfctool: a utility to configure or display linux driver/hardware parameters This package is supplied as a source RPM. Note pre-compiled 64bit RPMs are also available from the downloads page at https://www.xilinx.com/support/nic-support.html Building and installation ------------------------- To build a binary RPM from the source RPM: rpmbuild --rebuild Then install the resulting binary RPM: e.g. rpm -Uvh sfutils-8.3.3.1000-1.x86_64.rpm Using the AMD Solarflare Utilities ---------------------------------- To update the firmware on your AMD Solarflare adapter 1. Install the binary RPM as above 2. Run "sfupdate" This will display the versions of the firmware currently installed on your network adapter 3. Run "sfupdate --write" This will update the firmware on your adapter For full details on these utilities and detailed instructions of how to use them see the "AMD Solarflare Server Adapter User's Guide" (SF-103837-CD): - Section "Configuring the Boot Manager with sfboot" - Section "Upgrading Adapter Firmware with sfupdate" Supported hardware platforms ---------------------------- The utilities in this package support the following AMD Solarflare adapters: - AMD Solarflare Server Adapters: - AMD Solarflare XtremeScale X2541 PCIe Single Port QSFP28 - AMD Solarflare XtremeScale X2542 PCIe Dual Port QSFP28 - AMD Solarflare XtremeScale X2522-25G PCIe Dual Port SFP28 - AMD Solarflare XtremeScale X2522 (10G) PCIe Dual Port SFP28 - AMD Solarflare SFN8522 Dual Port SFP+ Server Adapter - AMD Solarflare SFN8522M Dual Port SFP+ Server Adapter - AMD Solarflare SFN8042 Dual Port QSFP+ Server Adapter - AMD Solarflare SFN8542 Dual Port QSFP+ Server Adapter - The following OEM adapters are also supported, but note each OEM may recommend a different driver version to match the version used for testing/qualification: - AMD Solarflare 2522-25G-PLUS Ethernet 10/25Gb 2-port SFP28 Adapter for HPE - AMD Solarflare 2522-25G Ethernet 10/25Gb 2-port SFP28 Adapter for HPE - AMD Solarflare 2522-25G Ethernet 10/25Gb 2-port SFP28 Adapter for Lenovo Firmware versions ----------------- The flash firmware update utility (sfupdate) embeds the various firmware images used for the AMD Solarflare adapters. This version of sfupdate contains the following firmware versions: - Controller firmware v8.6.2.1000 (for X2522-25G, X2522-25G Lenovo, X2522-10G, X2541, X2542, SFN8522, SFN8042 and SFN8542 adapters) v8.5.0.1002 (for all other X2xxx and SFN8xxx adapters) v6.2.7.1001 (for SFN7xxx adapters) - BootROM image v5.2.2.1006 - UEFI driver v2.9.6.9 (for X2522-25G, X2522-25G Lenovo, X2522-10G, X2541 and X2542 adapters) v2.9.6.3 (for SFN8xxx and all other X2xxx adapters) v2.6.7.2 (for SFN7xxx adapters) - Board support micro firmware v2.2.0.1000 (for X2xxx and SFN8xxx adapters) - Firmware family v8.6.2.1000 - Release collection v8.6.2.1000 - Bundle version v8.6.2.1000 (for X2522-25G, X2522-25G Lenovo, X2522-10G, X2541 and X2542 adapters) v8.5.2.1000 (for all other X2xxx adapters) Support ------- Please contact your local AMD support representative or email . Known Limitations ----------------- - On X2522, X2522-25G, X2541 and X2542 adapters running firmware v7.8 or higher, performing a firmware downgrade to pre-v7.8 firmware versions may fail. Please follow the sequence below for firmware downgrade: ~ Using sfutils v8.1.2.X or newer, run sfboot -i permit-fw-downgrade=yes ~ Reload sfc net driver ~ Perform the downgrade using the required version of sfupdate. - When increasing pf-count, MAC addresses that were on one physical port are not guaranteed to be on the same physical port after the reconfiguration and reboot. Known Issues ------------ Issue SWFWHUNT-6758: ~ On running sfutils ISO, the following error message is seen "failed to get NVRAM information" This message is emitted for cards with multiple ethernet interfaces. Firmware update on the card succeeds on the first interface encountered by the OS, the error messages emitted on other interfaces on the same card are harmless and can be ignored. Issue SWUTILS-827: ~ On certain linux distributions, invoking sfupdate on X2xxx adapters to perform a firmware update on an adapter may fail. The failure is due to an incompatibility between sfupdate and the in-distro sfc net driver. Please install the latest sfc net driver. Contact AMD support team at support-nic@amd.com for more information. Issue 51076: ~ Affects SR-IOV and NIC partitioning mode where PCI functions are configured to use VLANs. If ethtool is used to install a drop filter on a PCI function configured with a hardware VLAN, the inserted filter will also consume untagged traffic that otherwise matches the requested filter. Issue 48157: ~ If PXE booting is enabled and a large number of PFs (e.g. 16) are configured, some systems will refuse to boot from the hard drive. This is believed to be a BIOS limitation where the BIOS does not have enough space to register all 16 PFs and the hard drive as boot devices. Changelog (Controller firmware) ------------------------------- ### v8.6.2.1000 Issue SWFWHUNT-6762 / KI-000036179: ~ Fix FEC auto-detection for optical modules For more details, please read the article at https://support.xilinx.com/s/article/000036179?language=en_US ### v8.6.1.1000 Issue SWFWHUNT-6737: ~ Fix selection of boot image between iPXE and UEFI driver ### v8.6.0.1006 Issue SWFWHUNT-6702: ~ Report sensor hysteresis in PLDM commands Issue SWFWHUNT-6710: ~ Enable/disable event cut-thru based on sfboot setting. Issue SWFWHUNT-6583: ~ Improve robustness when encountering backpressure on PCIe link Issue SWFWHUNT-6696: ~ Work around Dell NC-SI specification issue that resulted in incorrect cable type reporting Issue SWFWHUNT-6669: ~ Fix intermittent link issue on some 10G fixed speed modules/cables. Retry link training if it fails to complete within 3s. Issue SWFWHUNT-6518: ~ Reduce the default event merge timeout for SFP28 X2 adapters to reduce latency on base adapters Issue SWFWHUNT-6672: ~ Always wait 2s after module insertion before attempting link up. Issue SWFWHUNT-6653: ~ Improve statistics update state machine to avoid statistics occasionally failing to increment Issue SWFWHUNT-6639: ~ Avoid race condition between TX alternatives setup and 8xxx link change workaround Issue SWFWHUNT-6542: ~ Fix FW assertion caused by certain sequences of TX alternatives usage Issue SWFWHUNT-6572: ~ Fix selection between gpxe and iPXE images Issue SWFWHUNT-6561: ~ Remove artificial limit on max buffer table size Issue SWFWHUNT-6574: ~ Filter multicast traffic correctly when using a double VLAN ### v8.5.0.1002 Issue SWNETLINUX-4033 ~ Blank out LINKDOWN bit when not running with Port Shutdown to avoid side effects on link state Issue APPFW-331 ~ Fix FPGA loopback mode Issue APPFW-425 ~ Handling function ops cleanly when PCIe interface down Issue SWFWHNT-6499 ~ Improve CTPIO handling for corner-cases Issue SWFWHUNT-6531 ~ Add PCIe state checking to PTP before sending events Issue SWFWHUNT-6524 ~ Require module temperatures to be stable for three cycles Issue SWFWHUNT-6524 ~ Ensure all builds ignore one spurious module reading ### v8.0.0.1015 Issue SWFWHUNT-6361: ~ Fix IP multicast filters not working when NCSI enabled Issue SWFWHUNT-6408: ~ Avoid link loss on X2 10G only adapters Issue APPFW-332: ~ Add quirk for modules that need a delay after reading interrupt registers. Issue SWFWHUNT-6337: ~ Mask interrupts on inactive channels. Issue SWFWHUNT-6365: ~ Add debug for QSFP faults. Issue APPFW-322: ~ Fix NC-SI global multicast filtering Issue SWFWHUNT-5936: ~ NCSI - Don't store datapath resets Issue APPFW-362: ~ Don't drop link on xx_LOS or xx_FAULT ### v7.8.5.1002 Features: ~ Add support for Alveo U25 ### v7.8.2.1011 Features: ~ Add support for X2562 R2.3 variant ~ Improve PCIe reset handling ~ Improve robustness to PERST assertion shortly after in-band reset. ~ Improve PCIe inter-op on server specs on which ref_clk can stop without prior warning. ~ Improve PERST (de)assertion handling on server specs where ref_clk can remain stopped whilst PERST is deasserted. ### v7.8.0.1022 Features: ~ Sensor reporting over emulated I2C device for X2522-25G ~ Add support for alternate set of sensor limits on X2522-25G (to support cold-aisle airflow) ~ Update cold-aisle sensor limits for X2522-25G ~ Enable signed package update of software binaries on X2522-25G adapters. Issue SWFWHUNT-6322: ~ sfptpd stops detecting PPS events after driver reload Issue SWFWHUNT-6316: ~ Fix EL2NSYNC error while allocating a timestamping VI. ### v7.7.0.1015 Production release of firmware for X2562 Adapters. Features: ~ NC-SI. Improve conformance with DSP0222 Issue 86870: ~ Add workaround for Dell z9100 switch when AN enabled Issue 85886: ~ Add quirk for Arista SFP-10G-DAC module ### v7.6.2.1006 Production release of firmware for X2552 Adapters. Features: ~ Insert a TX source MAC filter on functions without MAC spoofing privilege ~ Implement NC-SI passthrough statistics ~ Implement FEC auto-detection on optical modules Issue 79740: ~ NCSI multicast filters are now fully independent of driver filters ~ Unicast filters are not, i.e. the BMC can't share the host's MAC address. Issue 85162: ~ MCTP over PCIe VDM: Correctly pad PCIe VDMs Issue 84438: ~ X2xxx. Account for port-mode in controller die temperature compensation Issue 85537, 86297, 85700, 86287, 86298, 87172: ~ Fix interop issues with some modules and cables Issue 85243: ~ Fix link issue with 1000BASE-LX modules Issue 85855: ~ Prevent non-enumeration when increasing PF count followed by warm-reboot Issue 85973: ~ Implement proper rate control select for dual speed 10G/25G SFP modules Issue 86754: ~ Correct some NC-SI statistics Issue 86973: ~ TCP checksum sometimes wrong when using PIO on packets with L2 padding Issue 88297: ~ Prevent VPD output being truncated if it changes length dynamically Issue 83803: ~ Attempt to recover after SFP module error ### v7.5.0.1022 - X2xxx and 8xxx Update Release Issue 86957: ~ Fix 40G parallel detect regression on 8xxx series ~ Fix active lane detection issue which can cause a port to configure to the wrong link speed ### v7.5.0.1021 - X2xxx and 8xxx Update Release Issue 85115: ~ Fix issue where the packet drop counter can increment incorrectly while using a bond together with full-feature firmware and RX event merging ### v7.5.0.1019 - X2xxx and 8xxx Update Release Issue 84822,84830: ~ Improved Tx performance in 100G operation Issue 82708: ~ Modify event merge timeout to increase throughput performance Issue 73153: ~ Fix issue seen during BIST on X2xxx adapters Issue 84258: ~ Improve accuracy of thermal sensor on x2541 Issue 84111: ~ Increase time allowed for link Parallel Detect to complete Issue 84020, 83585: ~ Improved 25G Link negotiation and tuning Issue 83803: ~ Re-read the SFP module data if checksum verification fails Issue 84039: ~ Disable Device Readiness Status (DRS) PCIe message as found to cause interop issues on some machines Issue 84144: ~ Improve PCIe interoperability Issue 80797: ~ Disable PCIe relaxed ordering (RO) for RX data to improve performance on some systems ### v7.5.0.1009 - X2xxx Update Release Issue 81966: ~ Additional temperature sensor. Issue 82588: ~ Introduce critical limits for PLDM sensors. Issue 82501: ~ Improved link training against 3rd party hardware. ~ Enable VGA stage in Rx link training. Issue 83311/82411: ~ Firmware-assisted TSO performance enhancements. Issue 82340: ~ Manageability: Allow for a management MAC address. Issue 81056: ~ OCP "Lights out" lower power support enhanced. Issue 80908: ~ Allow 64K descriptor rings. ### v7.4.4.1000 - X2xxx Update Release Issue 82588: ~ PLDM Monitoring. Introduce critical level thermal limits in addition to warning and fatal. Issue 82587: ~ MCTP. Report correct MCTP version numbers. Issue 82130: ~ Sensors. Remote fatal level and ammend warning level for PCIe rails. ### v7.4.2.1005 - X2542 Update Release Issue 76722: ~ X2542. Fix issue that can cause link-up to take a long time when the adapter is connected to another X2542 and auto-negotiation is enabled. ### v7.4.2.1002 Production release of firmware for X2542 Adapters. ### v7.4.0.1021 Production release of firmware for X2522-25 Adapters. Features: ~ X2xxx Adapters. Production release of DPDK firmware variant ~ X2xxx Adapters. Support PLDM & NCSI over SMBus. Issue 80992: ~ Fix issue that allows a firmware variant to be selected using sfboot that is not valid for a particular adapter. Issue 80449: ~ X2522. Do not advertise 10G BASER FEC. Issue 79077: ~ Packed-Stream Firmware Variant. Fix issue where packets that do not match a filter (and so are to be dropped) can cause the consumption and leakage of an RX-descriptor. Packed stream applications typically do not observe this issue as they install multicast and unicast mismatch filters. Issue 60817: ~ Link. Fix issue that can cause an incorrect link speed to be selected in the situation where the link is forced to a specific link speed and then the cable is changed to another cable which does not support this speed. ### v7.1.1.1012 -- Production Release Production release of firmware for X2522 Adapters. Includes firmware support for ServerLock. ### v7.1.0.1006 -- Pre-production Release Pre-production release of firmware for X2522 Adapters. ### v7.0.2.1005 -- Pre-production Release Pre-production release of firmware for X2522 Adapters. ### v6.6.3.1001 -- 8xxx Update Release Issue 77889/78005 ~ SFN8542 & SFN8042. Fix issue that causes the firmware to report the wrong link speed (25G) when operating in 40G mode. When used with old linux net drivers that do not have support for 25G this causes a kernel panic e.g. in-tree kernel driver in RHEL6.9. ### v6.6.0.1017 -- 8xxx Series Feature release Features: ~ SFN8542 and SFN8042. Add support for dual 2x10G port mode where two 10G ports are active on each QSFP Cage. ~ Support reading of thermal sensors from optical modules Issue 76934: ~ Apply pseudo time when sensor presence changes so that PDR response contains an updated time. Issue 76833: ~ NC-SI Enhancements: ~ Report appropriate NC-SI commands as un-supported, irrespective of the channel supplied. ~ Allow for MCTP header in output buffer. ~ Add further OEM NC-SI functionality. ~ Correct size of some OEM NC-SI responses. ~ Correct responses for some OEM NC-SI responses. Issue 75970: ~ VMWare/ESX + SR-IOV. Fix issue that can the firmware to crash when a filter insertion requests from a Virtual Machine associated with a PCI VF is passed to the Hypervisor for authorisation. Issue 75019: ~ Update NC-SI to support version 1.1. ### v6.5.2.1002 -- 8xxx Series Feature release Features: ~ SFN8522M & SFN8042. Support for PLDM & NCSI over SMBus. Issue 74899: ~ Fix issue that can cause the adapter to leak resources in certain scenarios when an Virtual Interface is freed but there is still an associated Event Queue allocated. ### v6.5.1.1023 -- 8xxx Series Feature release Features: ~ First GA support for Solarflare SFN8522M SFP+ and SFN8042 QSFP+ Server Adapters. Issue 74899: ~ Fix issue that can cause the host network driver to fail to load if a previously loaded driver does not free the adapter resources correctly. Issue 74365: ~ SFN8722. Improve reliability of reading SFP cage information. Issue 73751: ~ Fix issue that can cause a firmware crash if the Host network driver attempts to allocate more Virtual Interfaces than the PCI Function can support. Issue 73616: ~ SFN8522 & SFN8722. Fix interop issue that could cause the firmware to return a partial record of an SFP Module's data if the module data was corrupt or incomplete. Issue 73292: ~ SFN8542. Fix interop issue with JDSU JQP-04SWAA1 that can cause a link failure after the Adapter is rebooted. Issue 72956: ~ PTP. Fix issue that causes intermittent inaccurate measurements in the dataset used to calculate the difference between the Adapter and Host clocks. Issue 72887: ~ SLES11. Fix interop issue with MTD Block Device that can cause firmware updates to fail with error ENXIO on SLES11 distributions. Issue 72477: ~ SFN8722. Initialize NC-SI correctly when operating in lights out mode. Issue 72293: ~ Fix a problem whereby the global promiscuous or all-multicast filters may stop matching any traffic following a filter removal under obscure circumstances, which can only be encountered after a minimum of 6 simultaneous subscriptions to the same filter followed by a particular pattern of other removals. MAC, IP, and VLAN-qualified promiscuous or all-multicast filters are never affected by this issue. Issue 72205: ~ SFN8522. Fix issue that causes the Adapter current consumption to be incorrectly reported as a saturated value when the Adapter is heavily loaded or in a hot environment. Issue 64832: ~ Fix issue that could cause flash reads to return corrupted data if VPD is being accessed. This may cause SFBOOT to fail if run in parallel with other utilities. ### v6.4.2.1020 -- 8xxx Series Feature release Features: ~ First GA support for SFN8722 Dual Port SFP+ OCP Server Adapters Issue 71689/71299: ~ 8xxx Series. Fixes issue that can cause the adapter to fail to wakeup when the host wakes up from hibernation following certain sequences of power-on/ PCI reset. Issue 70304: ~ 8xxx Series, VFIFO Stuffing. Fix an issue that can lead to packet loss where VFIFO stuffing is used in combination with normal packet transmission. Issue 69795/69771/69679: ~ 8xxx Series, Ultra Low Latency Firmware. Fix issue that can cause packet loss when sending high volumes of traffic using jumbo frames. Issue 69183: ~ 8xxx Series, Ultra Low Latency Firmware. Fix issue that can cause packet loss and the datapath to become unresponsive when sending high volumes of traffic. Issue 66007: ~ SFN8542 Link. Improvements to Variable Gain Amplifier algorithm to improve interoperability with cables, switches and optical modules. Issue 63090: ~ 8xxx Series Link. Improve link detection algorithm. Issue 60654: ~ 8xxx Series. Packed Stream Firmware. Do not count forced replay-drops in statistics. ### v6.2.7.1001 -- 7xxx Update Release Issue 74220: ~ 7xxx Series. Fix issue that causes the adapter to reboot when exiting SolarCapture Pro. ### v6.2.7.1000 -- 7xxx Update Release Issue 63173/72914: ~ 7xxx Series. TCP Segmentation Offload (TSO). Fix issue that can cause a transmit queue lockup when 32 or more transmit queues are used and queue 31 has TSO traffic on it. ### v6.2.5.1000 -- Update release Issue 65074 ~ SFN8000 series adapters. Fix issue that causes the rx_nodesc_drop_cnt statistic to be reported as 0 on the second and fourth (if present) network ports ### v6.2.3.1000 -- Update release Features: - Update SFN7000 series adapters to latest v6.2.1 firmware, prior releases used v4.7.1.1000. Issue 68053: ~ 8xxx: Adjust PCIe amplitudes to provide wider system interoperability. Issue 67005: ~ Pause briefly before attempting to re-establish a link, thereby avoiding link-flapping in some situations. Issue 66859: ~ Gracefully handle PCIe link down whilst the adapter is awaiting a DMAR completion. Issue 65206: ~ Improve interoperability with FiberStore SFP+ DAC cables. Issue 65002: ~ 7142: Uncalibrated sensors should report 'no reading' instead of 'broken'. Issue 64117 / 64155 / 67412 / 67476 / 67650: ~ Significant improvements to PCIe reset handling. Issue 46537: ~ Provide support for changing statistics sampling frequency in Linux with 'ethtool -C stats-block-usecs'. Issue 66809: ~ 8xxx: Improvements to ECC handling. Issue 65930: ~ Make enhanced TSO functionality more robust against malformed PIO descriptors. Issue 64782: ~ Prevent potential adapter freezes when using TCPDirect with the 'alternatives' interface. Issue 64350 / 64906 / 66007: ~ 8xxx: Improvements to SFP+ and QSFP+ link receive-side tuning. ### v6.2.0.1016 -- Feature release First GA support for SFN8542 adapters (using SFC92XX family silicon). This release also adds improved reporting of licenses via VPD and beta support for stateless checksum offloads for NVGRE, VXLAN and GENEVE tunnels. Issue 64475 / SF-116882-KI: ~ TCP Segmentation Offset (TSO). When using TSO or Large Send Offload (LSO) on SFN8000 series adapters there is the potential for data to be corrupted, truncated or extended. This issue will not be detected by the Ethernet, IPv4 or TCP checksums, and corrupted data may be received by the host application. This corruption has been observed in situations where the host is unable to keep pace with the adapter when providing payload blocks from memory. This is more likely when the TSO frame (provided by the kernel TCPIP stack to transmit) comes from a large number of fragments, or when a smaller TCP MSS was negotiated during TCP handshake. The issue was discovered during Windows-based testing and has been tracked to an underlying problem with SFN8000 series firmware (versions 6.1.0.1014 and 6.0.2.1004). Linux platforms are unlikely to experience this issue (Solarflare have so far failed to reproduce this on Linux) due to the differences in the Linux kernel TCP/IP implementation of TSO. Onload accelerated traffic will not be affected by this issue as it does not make use of firmware-assisted TSO. Issue 63955: ~ VFIFO Stuffing. Fix issue that can potentially cause a packet or some non-packet data to be unintentionally transmitted if the the VFIFO configuration is modified while processing a link up/down event. Issue 63794: ~ Packed Stream Firmware Variant. Ensure that a larger default RX event merge timeout is selected when using Packed Stream firmware variant. Issue 64400: ~ Firmware authentication. Fix issue with firmware authentication that can cause the firmware to occasionally fail authentication of the firmware image or firmware configuration. The symptoms of this can be the firmware fails to boot or that the configuration is discarded which may result in the driver being unable to load or unable to pxe boot. Issue 63759: ~ VFIFO Stuffing. Fix issue that can potentially cause a packet that has been primed for transmission to be unintentionally transmitted if the VFIFO selection is changed whilst a packet is being DMAed into the adapter. Issue 63755: ~ Fix issue that can cause the adapter to be left in a bad state following an impolite reboot of the host e.g. using a system request trigger. The symptoms are that the adapter resource manager is left in a bad state and host driver is unable to install filters and pass traffic. Issue 63291: ~ TCP Segmentation Offload (TSO). Fix issue that can occur if the host requests an invalid MSS that is larger than the maximum supported by the transmit datapath. If this issue occurs, it can cause the transmit data path to lockup and require a reboot to recover. Issue 63263: ~ PCIe Interface. Fix issue introduced in v6.1.0.1014 that can cause the adapter to fail to enumerate over PCIe. The issue is timing dependent and is limited to certain host systems. Issue 63197: ~ Ultra-Low Latency Firmware Variant. Fix issue that did not allow RX event merging to be used when in Ultra-Low Latency firmware variant. ### v6.1.0.1014 -- Update release Issue 62858: ~ Fix issue where the host may be unable to allocate a transmit queue after reconfiguring the adapter port mode or firmware variant. Issue 62851: ~ SFP+. Fix issue that causes some SFP+ Modules, for example 1GBase-T modules, not to be detected by the adapter. Issue 62814/62796: ~ Fix issue that can cause firmware to not send a notification to the driver when it restarts if traffic is flowing. The symptom of this is that after the adapter is restarted, if the issue occurs the driver will detect a problem and not create interfaces for the adapter PCI functions. ### v6.0.2.1004 -- Feature release First GA support for SFN8522 adapters (using SFC92XX family silicon). Changelog (BootROM) ------------------- ### v5.2.2.1006 Issue SWBOOTROM-689 ~ List bundle firmware version correctly in OptionROM ### v5.2.2.1004 Issue 85372: ~ Avoid leaving an uninitialised pointer ~ Avoid a memory leak when unregistering autovivified settings ~ Unplug an interface before closing it ~ Free static setting blocks ### v5.2.2.1002 Issue 85372: ~ Prevent double free of a detached IO buffer ### v5.2.1.1000 Issue 66819: ~ Port mode support for X25xx ~ Rename port mode names for SFN7xxx and SFN8xxx ### v5.2.0.1004 Issue 59840: ~ Remove support for SFN4xxx series adapters. ### v5.2.0.1000 Issue 80539: ~ Move boot image field to a rescue menu Issue 80535: ~ Remove link speed field from the Ctrl-B menu ### v5.1.0.1006 Issue 64244: ~ Support for VI sizing on X25xx. ### v5.1.0.1005 General changes: ~ Production support for X2522 Adapters. ~ Update copyright year to 2018 Issue 78595: ~ Show new firmware variants in Ctrl-B menu Issue 78562: ~ VLAN: Set firmware variant for non-primary PFs. Issue 76030: ~ X2522 recovery and reset support. ### v5.1.0.1002 General changes: ~ Pre-production support for X2522 Adapters. Issue 76863: ~ All Ctrl-B menu entries are read-only when the adapter is bound to a ServerLock controller. Issue 75971: ~ Avoid link flap after doing a Ctrl-B menu write on X2522. ### v5.0.7.1000 Issue 76436: ~ Add support for ${mac:hexhyp} expression. This provides the MAC address separated by hyphens and allow for commands such as: chain pxelinux.cfg/${mac:hexhyp} ### v5.0.6.1002 Issue 76540: ~ Add support for NBP lpxelinux.0. This is a variant of PxeLinux that uses the lwIP stack. ### v5.0.6.1001 General changes: ~ Support Port mode 2x10G+2x10G for SFC8XXX. Issue 72846 / 73441 / SF-119444-KI: ~ Fix possible general protection fault or hang when exiting from gPXE. Issue 74985: ~ Support the CLP API on any function of an adapter. Issue 75224: ~ Fix Reset to defaults option in Ctrl-B menu. Issue 74878: ~ Fix LED blinking on unprivileged PFs. Issue 75394: ~ Fix potential NULL pointer dereferences. ~ Unregister images automatically. Issue 60286: ~ Avoid an ARP cache miss for the DHCP server. ### v5.0.5.1002 Issue 73308: ~ Fix boot of network boot programs with a .com extension. Accept only ".cbt" as an extension for COMBOOT images. Issue 72379: ~ Fix DMTF CLP call from the BIOS, and give a better error message for an invalid netport ~ Fix bus count for PCI version 3. ### v5.0.4.1000 No changes other than version number. ### v5.0.3.1002 -- Update release Issue 69218: ~ Ignore boot type iSCSI. Issue 66773: ~ Avoid link flapping when terminating. Issue 67463: ~ Do not show the "waiting for link up" message if the link is already up. ### v5.0.2.1000 -- Update release Incorporated UEFI driver v2.4.2.4. ### v5.0.0.1002 -- Update release Issue 63785: ~ Several UNDI call improvements. Issue 67842: ~ Support chainloading of the Windows 2012-R2 installer. Issue 60137: ~ Propagate an error if we cannot turn on the PHY. ### v5.0.0.1000 -- Update release Issue 65185: ~ Avoid "No space left on device" on SFN7XXX|SFN8XXX caused by bad configuration at manufacturing time. Note there are no other bad effects. ~ See Solarflare known issue SF-116998-KI for further details. Issue 63328: ~ Show an error dialog when the dynamic config cannot be saved. Issue 65108: ~ [ctrl-b] Remove iSCSI support. Issue 59966#1: ~ Increase ARP cache to 200 entries. ~ Reserve entries in the ARP cache for DHCP. ~ This should help in situations where the bootrom is having to send packets to a number of destinations e.g. answering ping requests. Issue 59966#2: ~ Enable RX MAC filtering. ~ More efficiently drop packets that are not destined for this ethernet station. Previously these packets were passed to the gPXE TCP/IP stack and could potentially cause packet drops if there was a backlog. ### v4.6.0.1003 No changes other than version number. ### v4.6.0.1001 -- Update release General changes: ~ Enable HTTP support. Issue 60455: ~ Show improved error message in response to a TFTP_ERROR packet. Issue 63328: ~ Avoid sfboot error when Ctrl+B menu used to remove a VLAN. Issue 63644: ~ Fix issue with asynchronous UNDI calls. This caused issues when chain-loading (e.g. using ipxe as undionly.kpxe) and could cause network transfers to stop. Issue 63940: ~ Correctly save configuration changes for SFN8XXX cards in all cases. ### v4.5.2.1010 -- Update release General changes: ~ [SFN8XXX] Changes to format of bootrom config in flash storage to allow for CMAC check on authenticity for improved security. ~ In Ctrl-B config menus, fields on the PF screen can only be changed in single-PF mode. For more complex configuration the "sfboot" utility from the sfutils package is needed. Issue 62044: ~ [tftp] Reject a tftp blksize that is too large. Issue 60454: ~ [tftp] Detect an early finish of a TFTP transfer and do not start the NBP. ### v4.5.2.1008 -- Update release Issue 62597: ~ [ctrl-B] Fix an issue that caused a failure when saving settings with the error "Unable to save setting! No space left on device". Issue 62300: ~ [ctrl-B] Fix display of the default VLAN tag. ### v4.5.2.1007 -- Major release New Features: ~ Support for SFN8XXX adapters. ~ Reduce Ctrl+B menu options to only support basic provisioning use-cases. This change support adapters where NIC partitioning / multiple PFs are configured using "sfboot pf-count>=2". ~ Support PXE boot from a preset VLAN on the first function on each port. ~ Add forced 40G link speed. ~ Significant improvements to DHCP/proxy DHCP handling code. ~ For >=SFN7XXX cards enable better RX filtering to allow more reliable PXE booting on busy networks. Issue 59966: ~ Handle incoming packets when waiting for a key-press. ~ Reserve room in the ARP table for ping replies. ~ Respond to our IP when we do not know the sender. Issue 59130: ~ Try bootp broadcast if no ProxyDHCP info is received. ~ Provide the DHCP boot item in big-endian form to a BladeLogic PXE server. ~ Fixed some corner cases of UNDI GET_CACHED_INFO packet 2. ~ Bind to a random UDP port for every TFTP connection. ~ Allow TFTP block size to be controlled via the PXE TFTP API. ### v4.4.2.1006 -- Update release Issue 61431: ~ Reset the adapter when terminating UNDI. This improves reliability of driver load after the PXE bootrom has been active. ### v4.4.2.1005 -- Update release New Features: ~ Ctrl+B configuration menu prompt is not displayed on servers that support UEFI if theSolarflare UEFI driver is active. In this case, the adapter configuration can be changed in the UEFI setup menu. ~ The bootROM will not be initialised for inactive AOE ports, and these ports will not be available for configuration in the Boot Manager. Issue 49092: ~ Fix unwanted server reboot when trying to boot from a non-Solarflare device on some HP servers. Issue 54075: ~ Fix exception when configuring the network interface in an UNDI environment. Issue 55647: ~ Handle proxyDHCP server offers that do not set option 54 with multicast boot server discovery. Issue 55943: ~ Set the boot-type correctly on HP servers where CLP is not available. ### v4.4.0.1002 -- Update release Issue 49903: ~ Set the adapter MTU correctly to avoid issue where some HTTP transfers may fail to complete. Issue 52923: ~ When loading the driver ensure that the adapter is reset to guarantee consistent behaviour. ### v4.3.1.1006 No changes other than version number. ### v4.3.1.1002 No changes other than version number. ### v4.3.0.1000 -- Update release New Features: ~ Support for PXE booting with multiple physical functions per port. Multiple physical functions will appear in the list of interfaces in the Boot Manager, but the boot settings can only be configured on the first PF per port; other PFs will appear grayed-out in the list. PFs on the same port will all use the same boot config, and in particular they will have the same boot-type. Boot Manager changes: ~ New setting: PFIOV Enables PFIOV mode to switch traffic between PFs on the adapter. Issue 45811: ~ Port-specific settings are reset to default values when changing the port-mode. Issue 47107: ~ Recalculate the VF BAR sizes when changing settings to avoid resource exhaustion. ### v4.2.1.1000 -- Update release Boot Manager changes: ~ 7142: New setting: port-mode=default|40G|10G Configures the port mode to use. This is for SFC9140-family adapters only (SFN7142Q). ~ SolarCapture Pro: New setting value: firmware-variant=capture-packed-stream This allows for line rate 10G packet capture ~ SRIOV: New setting: pf-count= This is the number of available physical Functions. ~ Onload SR-IOV: New setting: insecure-filters= (*experimental*) If enabled, bypass filter security on non-privileged functions. This is required for some applications, but reduces security in virtualized environments. The default is disabled. ### v4.2.0.1000 -- Update release New Features: ~ Support for SFN7142Q adapters in 2*40G mode. Issue 43861: ~ Use MC_CMD_ENTITY_RESET instead of MC_CMD_PORT_RESET. Issue 43964: ~ Always reboot after saving changes in the Ctrl+B menu. ### v4.0.7.6711 -- Update release New features: ~ Add CLP support for HP branded adapters. Issue 40921: ~ Only start OCSD for PCI function that the BIOS called. ~ Further OCSD code robustness fixes. Issue 42831: ~ Fill in proxyDHCP settings with boot discovery information. ### v4.0.0.6589 -- Update release Issue 39761: ~ Fix an issue in PXE API PXENV_GET_CACHED_INFO handler. In a setup using proxy DHCP this was seen to cause a failure during Windows Deployment Services ### v4.0.0.6587 -- Major release General changes: ~ This is the first release to support PXE booting on SFN7XXX adapters. ~ Add support for setting the variant of firmware that the adapter runs: Auto (default) - allow the driver to pick variant at load time. Ultra low-latency - force to use the variant with the lowest latency. This disables some virtualization and advanced feature support. Full featured / Virtualization - force to use the variant supporting all adapter features. Changes for IBM and HP OEMed boards: ~ Suppress Ctrl+B prompt if the UEFI driver has loaded Issue 35503: ~ Replace EBDA memory allocations with PMM allocations when PXE booting. This was seen to cause issues for some UNDI clients. ### v3.3.1.6312 -- Update release Issue 37531 ~ Fix selection of boot server type during boot discovery ### v3.3.0.6290 -- Update release Issue 35709 ~ Fixes for PXE setups using proxy-DHCP. ~ Fixes for handling of PXE DHCP option 43. ~ Introduce support for the use of multicast IP addresses for boot discovery (PXE DHCP option 43 tag 7 : MCAST_DISCOVERY_ADDR) ~ Fix transmission to multicast addresses. ### v3.3.0.6267 -- Update release Added support for Option Card Sensor Data (OCSD) when using HP branded adapters and HP servers. Display only one Ctrl+B prompt per PCI device during BIOS POST. Issue 32884 ~ Inhibit all calls to INT 15,e820 and INT 15,e801 during POST This is a BIOS interoperability fix with IBM x3650 machines. ~ BIOS interop fixes when Ctrl+B UI requests to reboot the machine. ### v3.3.0.6257 -- No change other than version number ### v3.3.0.6247 -- No change other than version number ### v3.2.3.6128 -- Update release Issue 18848 / 28570 ~ Reduce resource requirements of the bootrom. Fixes out of resource issues seen on some IBM servers and on other servers when using multiple Solarflare adapters Issue 32552 ~ Accept filename via DHCP option 67 as well as BOOTP filename field Issue 31367 ~ Set TFTP block size correctly to fix Solaris pxegrub booting Issue 30471 / 30154 ~ Fix hang on PXE boot seen on HP Z800 workstation ~ Fix display of Ctrl-B setup screens seen on HP Z800 workstation Issue 30716 ~ Fix display of Ctrl-B setup screens seen on some systems using AMI BIOS ~ Includes; removing even megabyte constraint, limit relocation during POST and round up PMM allocation sizes to nearest 4kB Issue ~ Fix handling of fragmented IP protocol packets ### v3.2.1.6087 -- Update release Issue ~ Remove 'Solarstorm' branding Issue ~ Fix interop with some IBM BIOSs (do not fall back to INT19, remove BBS detection, force PnP header to 16byte boundary and fix register corruption on BEV entry point) Issue 29415 ~ Improve handling of corrupt EBDA (fix support of undionly.kpxe) ### v3.2.0.6061 -- Update release Issue ~ Deallocate PMM if boot-type is disabled ### v3.1.0.4027 -- Initial release First release of 3.1 BootROM. Changelog (UEFI driver) ----------------------- ### v2.9.6.9 - Update Release Issue UEFI-451: ~ Avoid performing memory deallocation in Exit Boot Services path to prevent EFI memory becoming fragmented ### v2.9.6.3 - Update Release General: ~ Internal changes - no feature updates ### v2.9.5.10 - Feature Release General: ~ Add MAC address to HII forms. Issue UEFI-235: ~ Fixed some Memory Leaks ### v2.9.5.5 - Feature Release ~ Add MAC address to standard SF forms Issue UEFI-220: ~ Use FMPv3 for Dell adapters alone. For rest use FMPv2. Issue UEFI-233: ~ Fix black screen at start-up on certain old dell servers(r630, r640). Issue UEFI-227: ~ RSOD with X2562 and X2522 in same machine on some servers. ### v2.9.4.6 - Feature Release ~ Change the default for Legacy Boot Protocol in DELL OEM HII forms to None. ~ Only display the Wake on Lan configurable in racadm on adapters that support it ~ Prevent a potential crash with newly produced cards if the server was configured to detect software errors. Issue UEFI-220: ~ Disable EFI_FIRMWARE_MANAGEMENT_PROTOCOL for all non-dell OEM cards ### v2.9.4.1 - Feature Release New Features: ~ [HII] Added Wake On Lan configurable to DELL OEM adapters that support the functionality General: ~ Amend language-dependent functions to the UEFI specification with respect to how the treat supported languages. ~ Silence spurious warning in libraries due to DEBUG ASSERT calls ~ [HII] Fix partial Chinese localisation strings in DELL OEM forms ~ [HII] Improve accuracy of localised strings ~ Fix an issue where sometimes MAC address couldn't be changed ~ Fix an issue where sometimes the driver would report garbage firmware versions ~ Clean up some API irregularities highlighted by the SCT suite ~ Remove a very unlikely dead loop due to buggy poll moderator ~ Rework the FMP embedded driver in capsules to use newly merged FmpDxeLib ~ Fix potential conflicts with older adapters causing debug output overload during boot ~ SimpleNetworkProtocol advertises support for MAC changing ~ SimpleNetworkProtocol publishes MAC stats ~ [HII] Add FR-fr, ES-es, DE-de, JP-jp, ZH-hans translations of DELL OEM forms ~ [HII] Enable Wake on Lan on both ports ~ Only display the Wake on Lan on adapters that support it. ~ [HII] Add multi-language translations for improved strings for Firmware Variant help and for Wake On Lan help. ~ Increase code modularity for better robustness. Issue JIT-149925: ~ Notify platform the driver already manages a given controller when asked ~ This improves compatibilty with some third-party test frameworks used to evaluate UEFI drivers. Issue JIT-149806: ~ [HII] Change default for Legacy Boot Protocol from PXE to None Issue JIT-149397: ~ [HII] Ensure that changing firmware variant requests a reboot from the platform Issue UEFI-155: ~ Prevent a potential future crash when downgrading the SFC UEFI driver. Issue UEFI-129: ~ Properly describe all managed components in ComponentName2Protocol. Issue UEFI-135: ~ Correctly recover corrupted configuration flash partition Issue UEFI-147/JIT-147928: ~ Correctly update adapters when X2562 and X2522-25G are updated via DELL iDRAC update at the same time. Issue 88173: ~ [HII] Correctly initialise MSIX Limit value Issue JIT-138721: ~ [HII] Amend help text in DELL OEM forms to denote firmware variant capabilities Issue JIT-144766: ~ Use newly merged FmpDxeLib in EDK2 to support multiple adapters properly Issue JIT-140236: ~ [HII] Correctly initialise the title text for the DELL OEM formset for languages other than English Issue JIT-144465: ~ Fix a potential double free if a platform tried to update the same capsule twice without reloading the embedded FMP driver Issue JIT-138721: ~ [HII] Clarify help text for Firmware Variant in DELL OEM strings Issue 87241: ~ Ensure that ipxe does not flush iSCSI config on port 1 if it is pxe booted into using port 2. ### v2.8.7.6 - Update Release Issue JIT-132662: ~ Ensure that restoring defaults in DELL HII forms disables virtualisation Issue JIT-131838: ~ Amend regex for Virtual Mac Address to disallow setting of multicast MACs General: ~ Fix compatibility issue with SFN7XXX adapters in the same platform where in some cases the driver for SFN8XXX adapters would not bind ~ Change Banner Timeout default value from 0 to 2 seconds in DELL HII forms ### v2.8.6.16 - Update Release Issue JIT-129680: ~ Ensure we do not confirm bad defaults in HII callbacks in global menu ~ This resolves an issue where Advanced Options would not reset to Disabled when defaults are invoked in some HII Browsers. General: ~ Initialise Virtual Mac Address with zeroes to make sure bogus value is not used when the address is not supported on the adapter. ### v2.8.6.14 - Update Release General: ~ Amend the TPL handling in debug library to not attempt to raise TPL higher than current level. Issue JIT-128244: ~ Override default values in HII callback function for interactive confiurables ~ This resolves an issue where such configurables would not correctly reset to defaults on some platforms with quirky HII browsers. Issue JIT-125162: ~ Reduce the SNP advertised MaxPacketSize to 1500. This ensures that the TCP Driver in platform stack does not offer oversize MSS leading to potential packet loss when trying to transmit max-size frames over networks with prohibited IP fragmentation. ~ This can potentially cause the software iSCSI initiator to enter an infinite loop during the boot process if iSCSI is configured over such network. Issue JIT-129262: Issue JIT-129417: ~ Correct spelling mistakes in DELL HII OEM forms. Issue JIT-127533: ~ Add configuration support for the transparent VLAN functionality to DELL OEM HII forms. Issue 86328: ~ Resolve an issue where the adapter would sometimes not start using the new firmware following an update using FMP. ### v2.8.6.4 - Feature Release ~ Capsule-embedded FMP driver for updates with UEFI Capsules Issue UEFI-126: ~ Adapter-wide configurable Firmware Variant is now configurable from any port on the adapter and the configuration should work on a variety of platform with different form-save disciplines. Issue UEFI-128: ~ The Firmware Family configurable in HII forms is populated by the firmware bundle version if the adapter has been updated with a valid bundle. Issue JIT-126595: ~ Read only HII strings should no longer reset to empty or zeroed defaults when the user resets the settings to defaults using the HII browser. ### v2.8.5.4 - Update Release ~ Fix some conformance failures for OEM specific HII forms ~ Fix broken LED blinking functionality ~ General stability improvements Issue 85799: ~ Resolve a potential hang on some platforms when teardown of our driver is peformed Issue JIT-113989: ~ Fix some typos in DELL OEM HII strings. Issue JIT-123950: ~ Remove the legacy Option ROM toggle from DELL OEM HII forms. Configuration of legacy boot protocols is sufficient. Issue JIT-124809: ~ Resolve mismatch of reported Firmware Variant to actual variant of the firmware active on the adapter. ### v2.8.4.1 - Update Release ~ Ensure only the newest SFC driver stays resident in memory and binds against all controllers. ~ Numerous stability improvements ~ Switch the hardcoded debug serial port to COM2 because it is usually better accessible using SOL. ~ Remove Wake On Lan configurable from OEM specific HII forms because we do not support it on current set of adapters. ### v2.8.1.1 - Update Release ~ General stability and modularity improvements ~ Add Firmware Variant configurable to OEM specific HII forms​ ### v2.7.8.5 - Update Release ~ General stability and modularity improvements ~ [HII] Move port mode configuration options into a separate form ~ [HII] Add a warning text about changing port mode and require a specific user action to confirm. ~ FirmwareManagementProtocol implementation capable of writing the UEFI driver ~ Performance improvements to the datapath Issue UEFI-93: ~ Fix an issue where an empty AIP block with a NULL GUID was advertised ### v2.7.5.0 - Update Release Issue UEFI-103: ~ Report the UEFI driver version to firmware during probe. This allows the manageability firmware to report the driver version to the BMC. Issue UEFI-66: ~ Add a timeout to VPD reading, fixing the potential issue where the adapter could hang the platform on boot in case of VPD failure. Issue UEFI-88: ~ Change the PXE client UNDI version from 3.10 to 3.16. This might affect how the platform PXE client interacts with the PXE server and might require reconfiguration of the DHCP/PXE server if the configuration is sensitive to the PXE client UNDI version. General Fixes: ~ [HII] Fix potential issue with HII strings not fitting into VFR fields. ~ [HII] Ensure FirmwareFamily field is populated with defaults in case of VPD failure ~ [HII] Add bigger warning labels to the Manufacturing Defaults button ### v2.7.4.0 - Update Release Issue UEFI-90: ~ Fix the issue where link state in the SFC HII form was not dynamically updated to correspond to the actual state of the link. Issue UEFI-102: ~ Change the MAC stats to be driven by UEFI events instead of NIC to prevent memory corruption due to rogue DMA with some platforms that do not properly implement ExitBootServices Issue UEFI-101: ~ Add a configuration option to Global Driver Configuration screen that lets the user prevent extraneous DMA accesses in case the platform does not correctly implement ExitBootServices Issue UEFI-20: ~ Add require flags to image descriptors to make sure that the standard ESRT driver implementation populates the ESRT with SFC entries ~ Actually perform a flash write when using FMP to update firmware AARCH64 Compatibility: ~ Ensure that transmit buffers are properly DMA mapped before dispatching them to the NIC. Issue 82225: ~ Also fix the issue when changing port mode on x2541-100G and x2542-100G to [1x50G][1x50G] that results in an invalid configuration. ### v2.7.3.2 - Feature Release Firmware Mangement Protocol: ~ Add support for getting and setting of firmware images ~ Add Hardware Instance reporting ~ Populate UEFI OptionROM image descriptor Other: ~ Improve VPD handling. All VPD will be gathered at the probe time and cached for future use instead of dynamically accessing VPD when needed. ~ Remove internal SMBios representation and use platform provided SMBios protocol ~ General stability improvements Issue 81505: ~ Stability improvements when chain-loading ipxe ### v2.7.2.11 - Update Release Issue 82225: ~ Fix misconfiguration occurring when a user changed port mode on adapters that support 50G link speeds. ### v2.7.2.10 - Update Release ~ [HII] Make sure the Legacy Option ROM enablement is correctly propagated to the rest of the PFs on the same adapter ~ [HII] Hide advanced configuration options better to not confuse the user ~ [HII] Add support for Virtual Mac Address ~ Changing the Port Mode no longer requires the user to power-cycle the platform. Issue UEFI-63: ~ Fix potential issues with changing port mode on SFN8XXX adapters when changing to two internal ports. Issue 81123: ~ [HII] Forms should no longer indicate that settings have changed when the user didn't change anything. ~ The LedState should no longer start with an invalid default value. ### v2.7.1.0 - Update Release ~ [HII] Add a Button to restore the Manufactoring Configuration from backup flash partition ~ Changing the Port Mode no longer requires a power-cycle ~ Fixed a potential issue where changing the port mode on some adapters could result in an invalid configuration ### v2.7.0.4 - Feature Release ~ [HII] Add Port Mode setting capability ~ [HII] Remove legacy link-speed setting capability ~ [HII] Add driver build date and time to global menu ~ [HII] Add VPD (Serial Number, Engineering Changes, Licences) reporting to Version Information page ~ Freeze SFN7XXX codebase. Now in maintenance mode. ~ Issue 80741: Fix potential issue that could lead to config corruption when resetting to defaults in UEFI Setup, if the board has not been cleared by sfboot utility first. ### v2.6.5.3 - Code Freeze for SFN7XXX adapters ~ Freeze codebase for the SFN7XXX adapters. Now in maintenance mode. Bugfix patches might be released for these adapters, but the driver version for SFN7XXX adapters will not advance beyond v2.6 ~ [HII] Add Port Mode setting capability ~ [HII] Remove legacy link-speed setting capability ~ [HII] Add driver build date and time to global menu ~ [HII] Add VPD (Serial Number, Engineering Changes, Licenses) reporting to Version Information page ### v2.6.3.0 - Feature Release ~ Add support for configuration recovery if internal NVRAM is corrupt ~ [HII] Add SFC Driver Global Configuration menu ~ [HII] Add ability to restrict driver binding in case of fatal issues ~ [HII] Add driver version, build and instance count reporting ~ [HII] Add debug options allowing the user to get a lot more information with the help of Solarflare Support ~ [HII] Report overall firmware family version in Version Information ~ Remove misleading SAN support from AdapterInformationProtocol ~ Fix a some UEFI Setup utilities blinking once a second ~ Fix potential probe issues with many SFC adapters present in a machine ~ Issue 79523: Fix the issue where broadcast traffic might not be received on SFC adapters when manageability (NCSI) is enabled. ~ Issue 78261: Ensure that the driver correctly determines sensors on the adapter ~ Fix issues with non-privileged PFs causing them to not work ~ [HII] Remove obsolete PHY version from Version Information page ~ [HII] Improvements to HII packages publishing eliminating potential bug sources ~ [HII] Change LED flash functionality into a duration-based callback ### v2.5.2.2 -- Code Freeze for SFN5XXX and SFN6XXX adapters ~ Freeze codebase for the SFN5XXX and SFN6XXX adapters. Now in maintenance mode. Bugfix patches might be released for these adapters, but the driver version for SFN5XXX and SFN6XXX adapters will not advance beyond v2.5 ~ [HII] Add version reporting to the HII formset ### v2.5.1.2 -- Update Release ~ [TSA] Set configuration to be read only when the adapter is bound to a TSA management agent ~ [HII] Fix potential guid comparison assert when we are asked to provide HII configuration blob without specifying which settings to include ~ Fix another poisoned pointer dereference ~ Clean up FMP GetImageInfo API which is ambiguous in the UEFI Spec and increase robustness against NULL parameters. ### v2.5.0.6 -- Feature Release ~ X2522 pre-production support ~ [HII] Add read-only port-mode display ~ [HII] Add reactive link status display ~ General stability and EDKII adherence updates ~ [HII] Robustness redesign for LED flashing and other reactive elements. LED flashing interval now set to 2 seconds. ~ [HII] Show external port id in function menu ~ Deferred initialisation reworked to use native event signalling, improving probe robustness ~ [TSA] Fix the hashing algorithm to be deterministic ~ Clean up several potential issues with iPXE that emerge from some shared memory interaction ~ Refactor the probe and teardown process to increase robustness. This should fix problems emerging from poisoned heap locations being dereferenced and causing RSoD on new platforms. ~ Other numerous robustness improvements. ### v2.4.5.4 -- Update Release General Changes: ~ [HII] Change the default value for Boot Image to 'OptionROM & UEFI'. ~ Fix potential problem with SFN5XXX series adapters during boot where some platforms could crash. ~ Slightly reduce the datapath resources to unify them across adapters. ~ Fix potential issue where the first packet could be dropped instead of received if the link-speed negotiation is slow. ~ Fix a potential boot crash on Dell 13G platforms with some specific firmware versions on SFN8042. ### v2.4.4.8 -- Update Release New Features: ~ [TSA] Produce and fill in a system UUID to identify the platform across reboots and multiple adapters. General Changes: ~ [HII] Tell the platform to require reboot after changes to the Boot Image setting ~ Fixes to random early drop mechanic. Use local PRNG rather than the RngLib which requires RDRAND processor instruction. Also make random early drop upper limit strict and set limits on queue sizes for unicast (4k) and multicast (128) traffic ~ [HII] Fix potential issue with NVRAM not probing correctly on SFN7XXX series adapters. ~ [HII] Improve help text for some HII fields. ~ Make DriverHealth correctly report the need for reboot after changes to Boot Image setting have been made. ~ Stability improvements. Issue 73312: ~ [HII] Properly fill in MAC address in all HII form titles. ### v2.4.4.2 -- Update Release General Changes: ~ Increase the number of hardware descriptors to 2K for TX and 4k for RX. This improves the network performance significantly. ~ Implement a simple filtering system such that the platform does not receive traffic that it said it doesn't want using SNP filters. ~ [HII] Create a new HII page with version information, including the UEFI version and build commit ~ General stability improvements Issue 72129: ~ Use multiple RX queues for unicast/multicast/broadcast traffic. This helps with noisy networks with lots of broadcast traffic Issue 72347: ~ Fix an issue where we might not show with IPv6 in boot manager on certain platforms that do not follow the UEFI spec. Improve NII safety for random pointer dereference. Issue 72281: ~ Fix information in NII that prevented WDS from performing DHCP correctly ### v2.4.3.2 -- Update Release Issue 69642: ~ Improve performance in noisy networks. ~ Improve RX datapath by increasing the number of RX descriptors to 256. ~ Fix potential issue with driver overwriting already recieved data. ### v2.4.3.1 -- Update Release Issue 68978: ~ [HII] Fix when non-primary function might try to save shared settings on some platforms resulting in the user not being able to change shared settings. Issue 70679: ~ [HII] Fix saving settings operation when there are mutliple SFC boards present in the machine. ~ Fix problems with network operations when both SFN7XXX (or newer) and SFN6XXX (or older) NICs are present in the same system. ### v2.4.2.4 -- Update Release Issue 68921: ~ [HII] Fix a potential memory scribble on SFN5XXX and SFN6XXX adapters. ~ [HII] The forms should show defaults if the setting has not been changed on the NIC from factory settings. ~ Implement stronger locking to prevent link polling from interrupting NVS access and general probe/teardown tasks. Issue 68477: ~ [HII] Add help text to LED flashing options. Issue 68315: ~ Fix the NII workaround (DELL specific requirement) that could potentially cause an RSOD during boot. ~ Fix a potential RSOD during handover to OS loader. Issue 66766: ~ Fix incorrect information being provided using AIM protocol. ### v2.4.1.0 -- Update Release Issue 60581: ~ Report the correct driver name using the correct language code. Issue 65344: ~ Implement DriverFamilyOverride protocol which binds the newest driver to all Solarflare adapters even if different versions are exposed on multiple exprom partitions. Issue 64549: ~ Improve PXE boot process when using GRUB2 beta2 which contains a bug (SNP protocol not opened with exclusive flag, allowing the MNP protocol to steal packets). ~ This will appear like packet loss and can cause severe slow-downs for transfers. ~ This patch does not fix the problem, instead it makes the handling of internal driver state more robust to this condition. ~ For a full fix please upgrade GRUB2. ### v2.4.0.2 -- Update Release Issue 68026: ~ Fix possible memory corruption by trying to free memory that wasn't allocated by the Solarflare UEFI driver. This issue should be benign due to UEFI memory protections but could show up on systems with debug enabled. Issue 67680: ~ [HII] Fix the failure to save settings in HII forms until the user enters the HII form for every function on the adapter. This affected HPg9 servers. ### v2.4.0.0 -- Update Release General changes: ~ Obsolete deprecated UEFI string methods and use the new versions. ~ Fix potential memory leak and null dereference. ~ Improve the SNP protocol implementation to clean up link state handling. ~ Ensure no DMA access after UEFI boot services exit. ~ Internal simplifications of RX and TX buffer handling to improve robustness. Issue 66725: ~ [HII] Only allow changing boot-image on first port of each adapter. Issue 65435: ~ Harden the driver datapath against concurrency issues that are seen due to a GRUB2 bug, when SNP is not opened in exclusive mode. Issue 65321: ~ Fix incorrect/lacking device names in some boot managers. Issue 64703: ~ Ensure HII form titles contain valid MAC. Issue 59966: ~ More efficiently drop unicast packets on SFN5XXX|6XXX where they are for a different ethernet station, without sending to the UEFI network stack. ### v2.3.0.2 -- Update Release Issue 64395: ~ [HII] Fix saving of settings when using NIC partitioning (i.e. sfboot pf-count>1) Issue 62598 / 63941: ~ Save data in the correct format for last firmware on SFN85XX adapters to allow space for CMACs which protect the partition contents. This change also correctly sets the partition generation counts, which may have caused saved settings to be lost (as the firmware would not be able to determine which of the two flash partitions represented the latest settings). ### v2.2.0.1 -- Update Release New Features: ~ GA support for SFN8XXX adapters. Issue 62765: ~ Remove bootrom iSCSI settings from HII forms due to an interop issue seen on a Dell 12G server. For more complex configurations the "sfboot" utility from the sfutils package can be used. ### v2.1.4.0 -- Update Release New Features: ~ Alpha support for SFN8XXX adapters. ~ Creating network interfaces for all NIC partitions (configured with "sfboot pf-count>=2") is now supported. Issue 61398: ~ Fixes to firmware management protocol. Issue 59863: ~ Updates to Lenovo Agentless HII formsets for compliance. Issue 55536: ~ Disable bus master DMA in ExitBootServices() for increased robustness. ### v2.0.2.0 -- Feature Release New Features: ~ Support for CLP/SMASH on HP UEFI based platforms. ~ Note this also requires adapter firmware support. Issue 53919 ~ HP570M/HP570FLB: Fix issue where an adapter MAC address that has overridden using the HP Virtual Connect Switch is not shown as overridden in the UEFI shell. Issue 53059 ~ For PXE booting set NII protocol stringId to "UNDI" as per the spec. ~ This allows for IPv6 PXE booting to a Windows WDS environment. Issue 48949 ~ Fix issue that can cause Dell r630 servers to hang during boot when used with SFN6xxx series adapters. ### v2.0.0.9 -- Update Release New Features: ~ Add HP UEFI HII menu option "Disable HP Shared Memory features". This option enables/disables the HP OCSD feature and is only available on relevant HP-branded adapters. Issue 52923 ~ Reset the Solarflare adapter correctly when loading the driver. Issue 53059 ~ Fix receive filtering so that DHCPv6 server response packets can be received. Issue 52445: QXCR1001411003 ~ Correct Form and FormSet titles to be compliant to HP UEFI spec. Issue 50723: QXCR1001399867 ~ No longer register FirmwareManagementProtocol until a full implementation is available. The partial implementation that only allowed reporting of firmware versions could be confusing as the adapter would be listed in HII forms as being available for firmware updates. Issue 50702: QXCR1001399491 ~ AdapterInfoProtocol updates to work correctly when other UEFI drivers that present FirmwareManagementProtocol are also loaded. ### v2.0.0.7 -- Feature Release New Features: ~ [HP adapters] Support for HP OCSD being started in the UEFI driver ~ Added driver configuration protocol implementation. ~ Added driver diagnostics protocol implementation. ~ Added AdapterInfoProtocol implementation. ~ Enabled ComponentName2 and DiagnosticsProtocol2. ~ Advertise support for UEFI 2.40 (with driver version 0x20028) HII cleanups: ~ Add " - NIC" on to HP strings to conform to spec. ~ Remove the MAC address from the NIC title displayed. Issue 50885: ~ Avoid debug ASSERT trigged in UEFI platform by ensuring that the progress pointer in ExtractConfig/RouteConfig failure cases is always filled in. Issue 50882: ~ ComponentName protocol now returns the product name from VPD. Issue 50028: ~ Avoid "Failed to save" issue seen when saving HII forms by initialising the BadIpv4 EFI variable during hii_init(). Issue 34101: ~ Fixes to get SCT 2.31 pass. ~ Respect SNP MaxMCastFilterCount. ~ Add sanity tests on SNP NetworkStatistics entry point. ### v2.0.0.6 -- Feature Release First release of the Solarflare UEFI driver to support SFN7XXX series adapters. ### v1.0.0.1 -- Initial release of EDKII based UEFI driver ~ does not include a Microsoft CA signature for SecureBoot. Changelog (Board Support Microcontroller Firmware) -------------------------------------------------- ### v2.2.0.1000 -- Production Release Issue SWFWHUNT-6761: ~ When operating in I2C master mode, send STOP on a NAK. ### v2.1.1.1032 -- Production Release ~ Add support for X2522-25G Lenovo Adapters. ### v2.1.1.1028 -- Production Release ~ Add support for Alveo U25 ### v2.1.1.1027 -- Production Release Issue APPFW-285: ~Improve watchdog handling Issue APPFW-286: ~ Don't enable interrupts until module is initialised ### v2.1.1.1022 -- Production Release Features: ~ Sensor reporting over emulated I2C device for X2522-25G ### v2.1.1.1022 -- Production Release Production release of board support firmware for X2562 Adapters. ### v2.1.1.1012 -- Production Release Production release of board support firmware for X2552 Adapters. ### v2.1.1.1003 -- Update Release No changes other than version number. ### v2.1.1.1001 -- Update Release Issue 83056: - Only light debug LED on error ### v2.1.1.1000 -- Update Release Issue 82526: ~ MCTP. Fix issue that can cause MCTP to stop working after a warm reboot. Issue 72857: ~ SMBUS. Allow assignment and retrieval of SMBUS address. ### v2.1.0.1007 Production release of board support firmware for X2522-25 and X2542 Adapters. ### v2.1.0.1001 -- Production Release Production release of board support firmware for X2522 Adapters. ### v1.2.0.1004 -- Update Release Issue 77965: ~ SFN8522M/SFN8042. Improve error recovery after detection of an I2C error. ### v1.1.2.1004 -- Feature Release Features: ~ First GA support for Solarflare SFN8522M SFP+ and SFN8042 QSFP+ Server Adapters. Issue 74391: ~ SFN8722. Improve reliability of reading SFP cage information. Issue 71239: ~ SFN8722. Fix issue that can cause communications errors between the board support microcontroller and the main adapter CPU. Issue 69384: ~ SFN8722. Fix issue that can cause occasional misreading of sensor values. ### v1.0.0.1002 -- Feature Release Features: ~ First GA support for SFN8722 Dual Port SFP+ OCP Server Adapters Changelog (utilities) --------------------- ### v8.3.3.1000 No changes other than the version number. ### v8.3.2.1000 ~ Update RPM metadata for AMD productisation. ### v8.3.1.1004 ~ Add License file to binary rpm. ### v8.2.4.1004 No changes other than the version number. ### v8.2.1.1003 No changes other than the version number. ### v8.1.3.1008 No changes other than the version number. ### v8.1.3.1007 No changes other than the version number. ### v8.1.3.1006 ~ Add support for Alveo U25 ### v8.1.3.1001 No changes other than the version number. ### v8.1.2.1019 ~ sfupdate and sfboot: Add support for signed package update on X2 adapters ~ sfboot: Add support for selecting alternate sensor limits on X2522-25G ~ sfupdate: Internal updates to improve build support for GPXe images ### v8.0.3.1000 Production release of firmware and utilities for X2562 ~ Updated UEFI driver for X2xxx and 8xxx adapters ### v8.0.1.1004 Production release of firmware and utilities for X2552 ~ Support for bundle update mechanism used by X2552 Issue 82216 ~ Prevent deadlock when VPD reads do not complete Issue 85722 ~ Enabled serial console on ttyS0 in bootble ISO image ### v7.5.4.1001 No changes other than the version number. ### v7.5.3.1000 No changes other than the version number. ### v7.5.2.1000 No changes other than the version number. ### v7.5.0.1003 Issue 83424 ~ sfupdate. Fix issue where iPXE ROM fails to install on 2xxx series adapters. Issue 83929 ~ sfboot. Allow recovery of an adapter with a corrupted configuration by using the --clear or --factory-reset options. Clarify that the --repair option is only of use on 7xxx series adapters. ### v7.5.0.1000 Issue 82216 ~ sfboot, sfupdate & sfkey. The kernel can cache a VPD length of 0 if the first access fails, this causes subsequent VPD accesses by the utilities to fail. Work around this by getting VPD directly from PCI config space. ### v7.3.4.1001 No changes other than the version number. ### v7.3.3.1002 Issue 82112 ~ sfboot. Fix issue where after using the factory-reset option, sfboot is no longer able to set the port mode to 'default'. ### v7.3.1.1001 Production release of firmware and utilities for X2522-25 and X2542 Adapters. Features: ~ ServerLock. Addition of ServerLock adapter configuration tool sf_slacfg. Issue 80992 ~ sfboot. Fix issue that allows a firmware variant to be selected that is not valid for a particular adapter. Issue 80829 ~ sfboot. Allow up to 16 Physical Functions to be configured on single-port adapters. ### v7.1.3.1000 No changes other than version number. ### v7.1.2.1000 No changes other than version number. ### v7.1.1.1000 -- Production Release Production release of firmware and utilities for X2522 Adapters. Features: ~ X2522 & sfboot. This release includes an additional command line option 'factory-reset' that restores the firmware configuration and Expansion ROM configuration to the default settings that the adapter was shipped with. ### v7.1.0.1003 -- Pre-production Release Pre-production release of firmware and utilities for X2522 Adapters. ### v6.6.1.1002 -- Feature Release Features: ~ SFN8542 & SFN8042. Add support for 2x10G+2x10G port mode where two 10G ports are active on each QSFP Cage. To configure this mode use the sfboot option: sfboot port-mode=2x10G_2x10G ### v6.5.1.1000 No changes other than version number. ### v6.5.0.1003 -- Feature Release Features: ~ First GA support for SFN8522M Dual Port SFP+ Server Adapter and SFN8042 Dual Port QSFP+ Server Adapter. ~ sfboot. This release of the utilities changes the default OptionROM configuration for all adapters. When sfboot --clear is used to clear the configuration, the default OptionROM settings are set to expose the OptionROM and UEFI ROM and in addition enable gPXE booting. Issue 73558 ~ sfkey. Fix issue that can cause sfkey to fail with the error "You have insufficient permissions for this task." if run on a system where the adapter has VFs configured. ### v6.4.0.1003 -- Feature Release Features: ~ First GA support for SFN8722 Dual Port SFP+ OCP Server Adapters. ~ sfboot. Adds support for 8xxx series adapters to configure the TX and RX descriptor cache sizes and VI count. ### v6.3.0.1005 -- Feature Release This release adds support for users to install their own iPXE OptionROM as an alternative to using the standard Solarflare OptionROM. To install a custom iPXE image use the following command: sfupdate --ipxe-image=my_ipxe_image.mrom Note that once an iPXE image is installed, sfupdate will indicate this and will not overwrite the iPXE image with the packaged Solarflare OptionROM. To restore the OptionROM to the standard Solarflare image included in sfupdate use the command: sfupdate --restore-bootrom ### v6.2.4.1001 No changes other than version number. ### v6.2.3.1001 No changes other than version number. ### v6.2.1.1000 No changes other than version number. ### v6.2.0.1003 Issue 68300 ~ sfkey. Prevent sfkey crash on SFN5xxx and SFN6xxx series adapters if the linux net driver returns a bad MCDI response output length. Issue 66779 ~ sfupdate. Ensure the family version string written to the VPD is of the form "xx.yy.zz" and does not contain "-internal" or "-unsigned". Issue 65890 ~ sfboot. Fix bug where changing boot-image for the second port, could cause the boot image for the first port to reset to disabled. Issue 65133 ~ sfupdate on SFN8000 series adapters. Set the correct UEFI version in VPD. Issue 61210 ~ Emit appropriate error messages when sfboot or sfupdate fail due to corrupted dynamic config partition. ~ sfboot. Implement 'sfboot --repair' to write back a properly formatted blank config to dynamic config. Note that this feature was present in version v4.7.4.1001 but was not included in earlier v6.x.y.z releases. Issue 53747 ~ sfupdate. Avoid potential segfault and report a more helpful message when the user is not root. ### v6.0.3.1001 Issue 64843 ~ sfkey. Fix issue that can cause sfkey to exit with a segmentation fault if a file containing too many keys is used. Issue 64532 ~ sfboot. Fix issue that can cause the OptionROM parameter 'boot image' to become inconsistent across interfaces when port mode and boot options are changed. Issue 52939 ~ sfboot. Display a message requesting a cold reboot when the firmware variant is changed. ### v6.0.2.1000 No changes other than version number. ### v6.0.1.1004 No changes other than version number. ### v6.0.1.1003 -- Update Release Issue 63798 ~ sfkey. Fix issue that prevents sfkey from working on linux kernels 4.6 or later. Note that the kernel change that exposes this issue has been backported to earlier kernels by some distros e.g. Sles12. ### v6.0.0.1004 -- Feature Release Initial GA release for SFN8x22 adapters. ### v4.7.4.1001 -- Update Release Issue 61210 ~ sfboot & sfupdate. Improve error reporting when the utilities are run against an adapter that has a corrupt or missing dynamic configuration. ~ sfboot. Add an option '--repair' to allow an adapter that has a missing or corrupt dynamic configuration to be repaired. The option writes a correctly formatted blank dynamic configuration to the adapter which will cause the firmware to use the firmware defaults. Note that the firmware defaults will not necessarily be the same as the configuration that the adapter had when it was originally shipped. ### v4.7.3.1001 No changes other than version number. ### v4.7.1.1001 No changes other than version number. ### v4.7.0.1005 -- Feature Release This release adds a new configuration option to configure the global receive event-merging timeout which is used when a receive queue is operating in store-and-forward mode. This is configured with the sfboot option event-merge-timeout = . Issue 58272 ~ Sfupdate. Fix issue that causes the firmware version readable in the PCI configuration space Vital Product Data descriptor to be blank after a firmware update. ### v4.6.9.1000 No changes other than version number. ### v4.6.8.1005 -- Update Release Issue 55012 ~ Sfboot. Fix issue that can cause sfboot to ignore the firmware-variant specified by the user when combined with certain other options. ### v4.6.6.1002 -- Feature Release This release adds support to allow the ulta-low-latency firmware variant to be used in Partitioning SRIOV mode. ### v4.6.5.1000 No changes other than version number. ### v4.6.3.1001 -- Feature Release This releases adds new port modes for the SFN7xx2F, SFN7xx4F and SFN7x42Q adapters and also allows the size of the descriptor caches and total number of Virtual Interfaces to be modfied. ~ Port modes: Option port-mode= The SFN7xx2F adapter range supports a new port mode 1x10G. Adapters SFN7x42Q and SFN7xx4F support a new port mode 2x10G. ~ TX Descriptor cache size: Option tx-dc-size=<8|16|32|64> Set the size of the transmit descriptor cache allocated for each Virtual Interface. ~ RX Descriptor cache size: Option rx-dc-size=<8|16|32|64> Set the size of the receive descriptor cache allocated for each Virtual Interface. ~ Number of Virtual Interfaces: Option vi-count=3...2048 Configure the total number of Virtual Interfaces for the adapter. Note that the allocation of VIs to ports is as follows. For SFN7xx2F adapters the first 1024 VIs are allocated to port 0 and the second 1024 VIs are allocated to port 1. For SFN7xx4F and SFN7x42Q adapters the first 512 VIs are allocated to port 0, the next 512 to port 2, the next 512 to port 1 and the final 512 VIs to port 3. As a result of this allocation scheme, changing the total number of VIs may result in no VIs being allocated to some ports. ### v4.6.0.1003 No changes other than version number. ### v4.5.0.1009 -- Feature Release This releases adds NIC partitioning support for the SR-IOV functionality and also includes support for SR-IOV Proxied Network Access Control. sfboot settings changes: ~ SRIOV: The pf-count option can now be used per port; previously this applied to all Solarflare adapters present in the host. ~ SRIOV: New setting mac-spoofing= Enable MAC spoofing privilege. Allows non-privileged functions to modify their MAC address and/or insert filters for a MAC address other than their own. This is required when using bonding. Note that this privilege was previously provided as part of the insecure-filters setting. The default is disabled. ~ Onload SR-IOV: insecure-filters= If enabled, allows non-privileged functions to insert unicast filters that do not include the destination MAC address. This is required to use OpenOnload in virtualized environments. Note that in previous releases, this setting also allowed MAC spoofing which is now separately configurable using the mac-spoofing option. The default is disabled. Issue 50475 ~ SRIOV: Fix issues that can cause sfboot to crash if more than 100 Solarflare interfaces are present. Issue 50397 ~ Fix issue in sfboot --clear option that caused some adapter global settings to be cleared even though a particular interface was specified for the clear operation. Issue 45776 ~ Fix issue in sfboot to allow the boot-image to be set independently in hosts with multiple Solarflare adapters installed. ### v4.3.2.1000 -- Update Release No changes to the utilities. ### v4.3.1.1000 -- Update Release Issue 48307 ~ SRIOV: Fix issue that can cause sfboot to configure the adapter incorrectly for some combinations vf-count and pf-count when in NIC Partitioning with SRIOV switch mode. ### v4.3.0.1010 -- Feature Release This release adds support for new SR-IOV functionality which requires a firmware update. When sfboot is used to change the configuration, it will check that the adaptor has appropriate firmware and prompt the user to perform an update if necessary. sfboot settings changes: ~ SRIOV: New setting switch-mode= Sets the virtualization switch mode. Note that this replaces the setting pfiov ~ SRIOV: New setting pf-vlans=<[0..4094],[0..4094],...> or none Configures transparent VLAN insertion/stripping. Specify the VLAN tag to use for each PCIe Physical Function associated with a network port. Use with partitioning switch modes. ### v4.1.2.1009 -- Feature release sfboot settings changes: ~ 7142: New setting: port-mode=default|40G|10G Configures the port mode to use. This is for SFC9140-family adapters only (SFN7142Q). ~ SolarCapture Pro: New setting value: firmware-variant=capture-packed-stream This allows for line rate 10G packet capture ~ SRIOV: New setting: pf-count= This is the number of available physical Functions. ~ SRIOV: New setting: pfiov= Enable PF-IOV support, where traffic from PFs will be switched on the adapter. When disabled only traffic between a PF and associated VFs is switched. ~ Onload SR-IOV: New setting: insecure-filters= (*experimental*) If enabled, bypass filter security on non-privileged functions. This is required for some applications, but reduces security in virtualized environments. The default is disabled. ### v4.1.1.1007 -- Previous release Copyright --------- Copyright 2022-2024 Advanced Micro Devices, Inc. Copyright 2002-2022 Xilinx, Inc. All rights reserved. Use is subject to license terms.