The newer Supermicro motherboards have the ability to update the system BIOS from IPMI Web management or with a Supermicro tool called
“Supermicro Update Manager (SUM)”
This tool consists of a linux cli and it works on most of the X9/X10/X11 Supermicro systems. If you have one of these motherboards you probably could update your BIOS under linux console and throwing away your freedos cd prehistoric update process (probably coming soon). If you’ve used Supermicro with for ages you probably are aware of the problem with the updating the BIOS, their tool is an old DOS flash utility, which could be used under MS Windows and with linux servers we got a problem! But not any more! Recent motherboards with built-in IPMI modules have “BIOS Update” option in the web interface (under Maintenance menu), but you need a license (which by the way is not expensive).

So if you happen to have such server you could give a try to SUM linux cli (yes they made a linux cli and even a freebsd one!). With the SUM cli you could do more than just update the BIOS (which is pretty important) here are the functions you can do Key Management, System Checks, BIOS Management, BMC Management, System Event Log, CMM Management, Storage Management, Applications (through the network) and for some of them you still need a license, but for BIOS update you do not need if you do it as Supermicro says
In-Band
which basically means from the server you want to update (or in general use it). KEEP IN MIND this method will reset your BIOS options to DEFAULTS!!! In fact you need a license to use preserve settings you can see the output of the SUM help for the command UpdateBios. So save your changes to recover them after the update!
And here we present a BIOS update with SUM on one of our Supermicro servers with motherboard X11SSV-M4F
So the BIOS version was 1.0 reported by lshw:
[srv@local ~]# lshw|head -n 25
srv@local
description: System
product: Super Server (To be filled by O.E.M.)
vendor: Supermicro
version: 0123456789
serial: 0123456789
width: 64 bits
capabilities: smbios-3.0 dmi-3.0 smp vsyscall32
configuration: boot=normal chassis=server family=To be filled by O.E.M. sku=To be filled by O.E.M. uuid=00000000-0000-0000-0000-111111111111
*-core
description: Motherboard
product: X11SSV-M4F
vendor: Supermicro
physical id: 0
version: 1.02
serial: 112233000044
slot: To be filled by O.E.M.
*-firmware
description: BIOS
vendor: American Megatrends Inc.
physical id: 0
version: 1.0
date: 10/18/2016
size: 64KiB
capacity: 15MiB
And here are the steps to do:
STEP 1) Download the SUM cli – Supermicro Update Manager and unpack it in your server
You could download freely the SUM version 2 from here: https://www.supermicro.com/solutions/SMS_SUM.cfm (this link explains what the tool is used for) at the bottom of the page there is a link to download the SUM – https://www.supermicro.com/SwDownload/UserInfo.aspx?sw=0&cat=SUM Here you should fill the form with your name, company and email address and then you will be redirected to the download page, which at present is like the screenshot below:

When downloaded the linux version you would have the following files in the archive file:
[srv@local ~]# cd [srv@local ~]# tar xzvf sum_2.0.0_Linux_x86_64_20171108.tar.gz sum_2.0.0_Linux_x86_64/ sum_2.0.0_Linux_x86_64/ReleaseNote.txt sum_2.0.0_Linux_x86_64/sum sum_2.0.0_Linux_x86_64/ExternalData/ sum_2.0.0_Linux_x86_64/ExternalData/VENID.txt sum_2.0.0_Linux_x86_64/ExternalData/SMCIPID.txt sum_2.0.0_Linux_x86_64/driver/ sum_2.0.0_Linux_x86_64/driver/RHL4_x86_64/ sum_2.0.0_Linux_x86_64/driver/RHL4_x86_64/sum_bios.ko sum_2.0.0_Linux_x86_64/driver/RHL6_x86_64/ sum_2.0.0_Linux_x86_64/driver/RHL6_x86_64/sum_bios.ko sum_2.0.0_Linux_x86_64/driver/RHL5_x86_64/ sum_2.0.0_Linux_x86_64/driver/RHL5_x86_64/sum_bios.ko sum_2.0.0_Linux_x86_64/driver/RHL7_x86_64/ sum_2.0.0_Linux_x86_64/driver/RHL7_x86_64/sum_bios.ko sum_2.0.0_Linux_x86_64/SUM_UserGuide.pdf
The “sum” file binary is the tool you need.
STEP 2) Download the new motherboard BIOS firmware
, which for our board (X11SSV-M4F – https://www.supermicro.com/products/motherboard/Xeon/C236_C232/X11SSV-M4F.cfm) it was version 1.1 with filename “X11SVMF8_308.zip”, unpack the file under X11SVMF8_308
[srv@local ~]# cd [srv@local ~]# unzip X11SVMF8_308.zip Archive: X11SVMF8_308.zip creating: X11SVMF8.308/ inflating: X11SVMF8.308/AFUDOSU.SMC inflating: X11SVMF8.308/CHOICE.SMC inflating: X11SVMF8.308/FDT.smc inflating: X11SVMF8.308/FLASH.BAT inflating: X11SVMF8.308/Readme for UP X11 AMI BIOS.txt inflating: X11SVMF8.308/X11SVMF8.308
The file “X11SVMF8.308” is the BIOS firmware of the motherboard. As you can see the prehistoric DOS executable flash utility is still distributed and is supported method of updating.
STEP 3) Update the BIOS
[srv@local ~]# cd /root/sum_2.0.0_Linux_x86_64
[srv@local ~]# ./sum -c UpdateBios --file ../X11SVMF8.308/X11SVMF8.308
Supermicro Update Manager (for UEFI BIOS) 2.0.0 (2017/11/08) (x86_64)
Copyright©2017 Super Micro Computer, Inc. All rights reserved
Reading BIOS flash ..................... (100%)
Checking BIOS ID ...
Checking ME Firmware ...
Comparing FDT for ROM file and flash.... (100%)
***************************<<<<<CRITICAL WARNING>>>>>***************************
ExitCode = 254
Description = Manual steps are required
Program Error Code = 119.18
Error message:
FDT is different. Please use system reboot(do not shutdown
or poweroff system) command to force ME enter manufacturing mode
and run UpdateBIOS command again to update BIOS and ME region.
********************************************************************************
[srv@local ~]# reboot
As you can see we got critical warning! You may not have the critical, but if you do you need to run the command second time to really flash the new BIOS firmware. So here it is, AFTER rebooting your server login again and execute the command again:
[srv@local ~]# cd /root/sum_2.0.0_Linux_x86_64 [srv@local ~]# ./sum -c UpdateBios --file ../X11SVMF8.308/X11SVMF8.308 Supermicro Update Manager (for UEFI BIOS) 2.0.0 (2017/11/08) (x86_64) Copyright©2017 Super Micro Computer, Inc. All rights reserved Reading BIOS flash ..................... (100%) Checking BIOS ID ... Programming BIOS and ME (including FDT) Writing BIOS flash ..................... (100%) Verifying BIOS flash ................... (100%) Checking ME Firmware ... Putting ME data to BIOS ................ (100%) Writing ME region in BIOS flash ... - Update success for FDR - Updated Recovery Loader to OPRx - Updated FPT, MFSB, FTPR and MFS - ME Entire Image done WARNING:Must power cycle or restart the system for the changes to take effect! [srv@local ~]# reboot
And there you have it you updated the BIOS of your server successfully. KEEP IN MIND the BIOS settings are reset to Defaults! When you restart the server the second time (if you get the critical warning or the first time if you do not) you should load the optimized defaults and change your settings according your needs. Go to BIOS and load the optimized defaults and change the settings according your needs (or your backup).
[srv@local ~]# lshw|head -n 25
srv@local
description: System
product: Super Server (To be filled by O.E.M.)
vendor: Supermicro
version: 0123456789
serial: 0123456789
width: 64 bits
capabilities: smbios-3.0 dmi-3.0 smp vsyscall32
configuration: boot=normal chassis=server family=To be filled by O.E.M. sku=To be filled by O.E.M. uuid=00000000-0000-0000-0000-111111111111
*-core
description: Motherboard
product: X11SSV-M4F
vendor: Supermicro
physical id: 0
version: 1.02
serial: 112233000044
slot: To be filled by O.E.M.
*-firmware
description: BIOS
vendor: American Megatrends Inc.
physical id: 0
version: 1.1
date: 03/08/2018
size: 64KiB
capacity: 15MiB
* SUM cli – UpdateBios help output
[srv@local ~]# ./sum -h -c UpdateBios
Supermicro Update Manager (for UEFI BIOS) 2.0.0 (2017/11/08) (x86_64)
Copyright©2017 Super Micro Computer, Inc. All rights reserved
Description
Updates BIOS with the given image file.
Required Arguments
--file <file name>
Optional Arguments
--reboot
Forces the managed system to reboot or power up after operation.
--flash_smbios
Overwrites the SMBIOS data
--preserve_nv
Preserves the NVRAM region
--preserve_mer
Preserves the ME firmware region
--preserve_setting
Preserves setting configurations
Usage Modes
[OOB] [In-Band] [Multiple systems OOB]
Node Product Key Required
No for [In-Band]
Yes for [OOB]
Examples
OOB
# ./sum -i 192.168.34.56 -u ADMIN -p ADMIN -c UpdateBios --file BIOS.rom
--reboot
In-Band
# ./sum -c UpdateBios --file BIOS.rom --reboot
Multiple systems OOB
# ./sum -l IP_ADDR_RANGE.txt -u ADMIN -p ADMIN -c UpdateBios --file BIOS.rom
--reboot
Notice
1. For [OOB] and [Multiple systems OOB] usage modes, before executing this
command, it is recommended to shutdown the managed system first.
2. --preserve_setting option is only supported in Purley and the platforms
of later versions. Note that --preserve_setting option for in-band usage
requires "SFT-OOB-LIC" product key. The preserved setting configurations
will be listed in preserved_settings.log.
* SUM cli generic help output
[srv@local ~]# ./sum
Supermicro Update Manager (for UEFI BIOS) 2.0.0 (2017/11/08) (x86_64)
Copyright©2017 Super Micro Computer, Inc. All rights reserved
NAME
sum (Supermicro Update Manager)
SYNOPSIS
sum [OPTIONs] [COMMAND] [COMMAND ARGUMENTS]
OPTIONS
-h Shows help information.
-v Displays the verbose output.
-i <BMC/CMM IP address or BMC/CMM host name>
-l <BMC/CMM system list file name. Refer to the user's guide for formatting>
-u <BMC/CMM user ID>
-p <BMC/CMM user password>
-c <command name> (case insensitive)
USAGE MODES
○ Single System Out-Of-Band (OOB) Management [operates on single BMC/CMM]:
Must use -i,-u, -p options
○ Single System In-Band Management [operates on local OS]: Do not use -i, -u
and -p options
○ Concurrent Systems OOB Management [operates on multiple system BMCs/CMMs]:
Replace -i option with -l option
COMMANDS
Function Group Command Names
Key Management ActivateProductKey, QueryProductKey, ClearProductKey
System Checks CheckOOBSupport, CheckAssetInfo,
CheckSystemUtilization, CheckSensorData
BIOS Management GetBIOSInfo, UpdateBios, GetDefaultBiosCfg,
GetCurrentBiosCfg, ChangeBiosCfg,
LoadDefaultBiosCfg, GetDmiInfo, ChangeDmiInfo,
EditDmiInfo, SetBiosAction
BMC Management GetBmcInfo, UpdateBmc, GetBmcCfg, ChangeBmcCfg
System Event Log GetEventLog, ClearEventLog
CMM Management GetCmmInfo, UpdateCmm, GetCmmCfg, ChangeCmmCfg
Storage Management GetRaidControllerInfo, UpdateRaidController,
GetRaidCfg, ChangeRaidCfg, GetSataInfo, GetNvmeInfo
Applications TpmProvision, MountIsoImage, UnmountIsoImage
COMMAND USAGE
See help message for each command
Syntax:" # ./sum -h -c <command name>"
Notes: 1)Command support is platform dependent. Please refer to Appendix C in
the user's guide for platform dependency hints.
2)If BMC/CMM user ID or password includes special characters, it has
to be quoted.
EXAMPLES
OOB
# ./sum -i 192.168.34.56 -u ADMIN -p ADMIN -c ChangeBmcCfg --file BmcCfg.txt
# ./sum -i 192.168.34.56 -u ADMIN -p "&123456" -c ChangeBmcCfg --file
BmcCfg.txt
Multiple systems OOB
# ./sum -l IP_ADDR_RANGE.txt -u ADMIN -p ADMIN -c GetBIOSInfo --file BIOS.rom
# ./sum -l IP_ADDR_RANGE.txt -u ADMIN -p "&123456" -c GetBIOSInfo --file
BIOS.rom
In-Band
# ./sum -c UpdateBios --file BIOS.rom
Help Message
# ./sum -h -c UpdateBios
Another way to update Supermicro mainboards by generating the license key is described here https://peterkleissner.com/2018/05/27/reverse-engineering-supermicro-ipmi/
thanks a lot man!!!