The following 'spec' has been confirmed to work
- Sony 4GB USB2.0 Flash Drive. I have been told that USB3 sticks may not work.
Format as follows, use lsblk -f
and fdisk -l
to locate the correct device and replace /dev/sdX
below
- Wipe the drive with
dd if=/dev/zero of=/dev/sdX bs=16k status=progress
fdisk /dev/sdX
- Select
o
to create new empty DOS partition table. n
and choose to create a primary partition, where the last sector is+500M
.w
to write and exit
- Select
fdisk /dev/sdX1
+a
to set the primary partition as bootable (active). Choosew
to write and exit.sudo mkfs.vfat /dev/sdX1
to format as FAT16.
Mount and copy the contents of the usb
folder to the root of the USB drive. Here's a breakdown of where these files have been obtained from
-
/efi/boot/bootX64.efi
- This is Shell_Full.efi from the Tianocore Github repo; the X64 full-shell from theUDK2010.SR1
branch. It's the oldest and I needed to find a version old enough that would work withsas2flash.efi
. Refer details byboris_d
and the dreaded "InitShellApp: Application not started from Shell" error when using a newer version of the Tianocore shell. -
sas2flash.efi
: from9211-8i_Package_P20_IR_IT_Firmware_BIOS_for_MSDOS_Windows.zip
-
2118it.bin
: fromInstaller_P20_for_UEFI.zip
(link) -
mptsas2.rom
: fromInstaller_P20_for_UEFI.zip
(link)
The zip files mentioned above are included in the root of this repo for archival purposes.
In the Boot
tab, scroll down to Secure Boot
and choose 'Other OS' as the selection. You will need to save and reboot to ensure this persists. This same view will let you verify that keys are unloaded.
You do not need to wipe your Secure Boot keys; if you do, make sure to make a backup first.
In Asus UEFI, going to Exit > Launch EFI Shell from USB devices
would not work (for me, YMMV); instead it would keep presenting a warning regarding Secure Boot.
Instead, head to the Boot
tab in the UEFI and locate a bootable entry starting with UEFI: ....
that matches the capacity of your media. In my case, this was a Sony USB drive.
Since Secure Boot was already disabled, this booted into the EFI shell straight away.
-
Erase controller flash memory:
sas2flash.efi -o -e 6
DO NOT REBOOT!! -
Write new firmware and BIOS to card:
sas2flash.efi -o -f 2118it.bin -b mptsas2.rom.
-
Make sure to verify before rebooting:
sas2flash.efi -listall
Reboot and hit Ctrl-C
to verify the new firmware in IT mode has persisted.
- AMD Ryzen Threadripper 1950X
- Asus Zenith Extreme X399 (TR4) w/ Noctual NH-U14S-TR4-SP3 Cooler
- G.Skill DDR4 32GB RAM @ 3200MT/s
- Fedora 27 / 4.15.14-300.fc27.x86_64
- Samsung 850 Pro 250GB SSD
This repo is a result of posting my findings in a thread on the Level1Tech's forum. Feel free to share your findings there.
Much thanks to Whizdumb for pointing me in the right direction with crucial info about using USB2 drives.
- https://forums.freenas.org/index.php?threads/how-to-flash-lsi-9211-8i-using-efi-shell.50902/
- https://forums.servethehome.com/index.php?threads/tutorial-updating-ibm-m1015-lsi-9211-8i-firmware-on-uefi-systems.11462/
This project is licensed under the terms of the MIT License.