{"id":115,"date":"2016-12-20T11:56:14","date_gmt":"2016-12-20T10:56:14","guid":{"rendered":"https:\/\/www.skrue.de\/wp\/?p=115"},"modified":"2023-01-31T08:23:14","modified_gmt":"2023-01-31T07:23:14","slug":"cross-flash-ibm-serveraid-m1015-to-lsi-9211-8i-on-uefi","status":"publish","type":"post","link":"https:\/\/www.skrue.de\/wp\/?p=115","title":{"rendered":"Cross Flash IBM ServeRAID M1015 to LSI 9211-8i on UEFI"},"content":{"rendered":"<div id=\"attachment_123\" style=\"width: 160px\" class=\"wp-caption alignright\"><a href=\"https:\/\/www.skrue.de\/wp\/wp-content\/uploads\/2016\/12\/m1015-1.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-123\" class=\"size-thumbnail wp-image-123\" src=\"https:\/\/www.skrue.de\/wp\/wp-content\/uploads\/2016\/12\/m1015-1-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><p id=\"caption-attachment-123\" class=\"wp-caption-text\">Image by IBM<\/p><\/div>\n<p>Despite multiple tutorials on this topic being available on the internet, I just spent several hours fiddling around with different FreeDOS images, UEFI shells, flashing tools and firmware versions until I had finally successfully cross flashed my M1015 to a LSI 9211-8i. So I thought I&#8217;d just share my experience and maybe save you some time.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>Disclaimer:<\/strong><\/span> Follow the described steps <strong>at your own risk<\/strong>. If you turn your HBA into a $100 paperweight, don&#8217;t blame me. I just wrote down what worked for me, which doesn&#8217;t mean it will work for you too. Please read all of the steps carefully before attempting anything.<\/p>\n<p><strong>Mainboard used:<\/strong> ASRock J3455M (Celeron J3455 &#8222;Apollo Lake&#8220; CPU, UEFI v2.50)<\/p>\n<h1>1. Clear original Firmware<\/h1>\n<h2>1.1 Prepare a bootable FreeDOS USB stick<\/h2>\n<p>Create a bootable USB stick using <a href=\"https:\/\/sourceforge.net\/projects\/win32diskimager\/\">Win32DiskImager<\/a> (or just dd if you are on Linux\/Unix) and one of the FreeDOS 1.1 images published by Christian Taube: <a href=\"http:\/\/freedos.chtaube.eu\/download\/\">http:\/\/freedos.chtaube.eu\/download\/<\/a><\/p>\n<p>I tried several other FreeDOS images, including the one provided with <a href=\"https:\/\/rufus.akeo.ie\">Rufus<\/a>, but the above was the only one I could actually get to boot on the ASRock J3455M.<\/p>\n<p><em><strong>Update 2023-01-31:<\/strong> The images seem long gone from Christians server and archive.org doesn&#8217;t have them either, so you&#8217;ll have to look elsewhere.<\/em><\/p>\n<h2>1.2 Obtain the megarec tool and addidtional files<\/h2>\n<p>Download the sas2008.zip archive provided by Pieter <a href=\"https:\/\/forums.laptopvideo2go.com\/topic\/29059-sas2008-lsi92409211-firmware-files\/\">over here<\/a>. Extract it and copy the following files to your FreeDOS USB stick:<\/p>\n<ul>\n<li>MegaRec.exe<\/li>\n<li>dos4gw.exe<\/li>\n<li>DOS32A.exe (not sure if this one is really needed, but copy it anyway)<\/li>\n<li>sbrempty.bin<\/li>\n<\/ul>\n<h2>1.3 Boot FreeDOS<\/h2>\n<ul>\n<li>Go to the UEFI menu of the mainboard and make sure you have the &#8222;Secure Boot&#8220; option <strong>disabled<\/strong> and the &#8222;CSM&#8220; option (Compatibility Support Module) <strong>enabled<\/strong>. Otherwise you won&#8217;t be able to boot FreeDOS.<\/li>\n<li>Plug in the USB stick and start. In the FreeDOS boot menu, select the 4th option: <strong>&#8222;4 &#8211; Load FreeDOS without drivers&#8220;<\/strong>. Otherwise megarec will run into a page fault error later.<\/li>\n<\/ul>\n<h2>1.4 Actually clear the original firmware<\/h2>\n<p>Run the following commands:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">megarec -writesbr 0 sbrempty.bin\nmegarec -cleanflash 0<\/pre>\n<p>You&#8217;re done with step 1 now. Power off your system.<\/p>\n<h1>2. Flash new firmware<\/h1>\n<h2>2.1 Prepare the UEFI shell<\/h2>\n<p>This part of the cross flash procedure needs to be done from a <strong>UEFI shell<\/strong>.<br \/>\nThe Arch Linux Wiki has several <a href=\"https:\/\/wiki.archlinux.org\/index.php\/Unified_Extensible_Firmware_Interface#Obtaining_UEFI_Shell\">links to different versions<\/a>. Although Shell v2 seems to be recommended for mainboards using UEFI v2.3+, you will need to <strong>download Shell v1<\/strong> for the sas2flash.efi software to run. Otherwise you will run into the following error:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">InitShellApp: application not started from shell<\/pre>\n<ul>\n<li>Format your USB stick using the FAT32 file system<\/li>\n<li>Download the Shell_Full.efi file from the <a href=\"https:\/\/github.com\/tianocore\/edk2-archive\/tree\/master\/EdkShellBinPkg\/FullShell\/X64\">tianocore github repository<\/a><\/li>\n<li>On your USB stick, create a folder &#8222;EFI&#8220; and within that create another folder &#8222;BOOT&#8220;<\/li>\n<li>Copy the Shell_Full.efi file into the EFI\/BOOT folder and rename it to BOOTX64.EFI<\/li>\n<\/ul>\n<h2>2.2 Obtain the sas2flash tool and firmware files<\/h2>\n<p>To flash the most recent firmware (currently P20), go to the <a href=\"https:\/\/www.broadcom.com\/products\/storage\/host-bus-adapters\/sas-9211-8i#downloads\">Broadcom (LSI) downloads page for the 9211-8i<\/a> and download the following archives:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.broadcom.com\/docs\/12350820\">Installer_P20_for_UEFI<\/a><\/li>\n<li><a class=\"download-title\" href=\"https:\/\/docs.broadcom.com\/docs\/12350530\" data-toggle=\"modal\" data-url=\"https:\/\/docs.broadcom.com\/docs\/12350530\" data-resid=\"drv1211131869797\" data-type=\"uela\" data-expired=\"false\" data-target=\"#download_modal\"><span class=\"title-internal\">9211-8i_Package_P20_IR_IT_Firmware_BIOS_for_MSDOS_Windows<\/span><\/a><\/li>\n<\/ul>\n<p><em><strong>Update 2023-01-23:<\/strong> They seem to have these websites password protected now, you&#8217;ll have to google around to find the archives I guess.<\/em><\/p>\n<p>From the first one, extract the <strong>sas2flash.efi<\/strong> application to the root of your USB stick.<\/p>\n<p>From the second one, extract the <strong>2118it.bin<\/strong> file (from the <em>Firmware\\HBA_9211_8i_IT\\<\/em> subfolder) and the <strong>mptsas2.rom<\/strong> file (from the <em>sasbios_rel<\/em> subfolder) to the root of your USB stick.<\/p>\n<p>The sas2008.zip archive from step 1.2 also includes these files, so you might as well use these, although they are probably an older firmware version (P11 or something).<\/p>\n<h2>2.3 Boot the UEFI shell<\/h2>\n<p>Plug in your USB stick and power up your system. It should now boot to the UEFI shell command prompt and look like this:<\/p>\n<pre class=\"lang:default highlight:0 decode:true \">Shell&gt;<\/pre>\n<p>Issue the following command to get to the root of your USB stick:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">Shell&gt; fs0:<\/pre>\n<p>(Depending on the hard disk configuration of your system, the USB stick might as well be fs1:, fs2:, fs3: and so on. You can issue a <em>dir<\/em> command to see the contents of the current directory.)<\/p>\n<p>The prompt should now look like this:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">fs0:&gt;<\/pre>\n<h2>2.4 Flash the firmware<\/h2>\n<p>To actually flash the firmware, issue the following commands:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">sas2flash.efi -o -f 2118it.bin -b mptsas2.rom\nsas2flash.efi -o -sasadd 500605b0[xxxxxxxx]<\/pre>\n<p>Replace the [xxxxxxxxx] with your actual SAS address which can be found on a sticker on the back of your M1015 PCIe card.<br \/>\n(<strong>Caution<\/strong>: There are Dell HBAs which can also be cross flashed using this procedure. As far as I know, these don&#8217;t have the SAS address printed on a sticker, so you have to determine it using the MegaCli tool before erasing the original firmware. There are instructions on how to do this available elsewhere.)<\/p>\n<p>If you run into the following error&#8230;<\/p>\n<pre class=\"lang:default highlight:0 decode:true \">ERROR: Firmware Host Boot Failed!<\/pre>\n<p>&#8230; you probably forgot to run the <em>megarec -cleanflash 0<\/em> command in step 1.4. (Guess why I know that.)<\/p>\n<p>If both commands have run successfully, reboot.<\/p>\n<p><strong>Voil\u00e1, you&#8217;re done!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Despite multiple tutorials on this topic being available on the internet, I just spent several hours fiddling around with different FreeDOS images, UEFI shells, flashing tools and firmware versions until I had finally successfully cross flashed my M1015 to a LSI 9211-8i. So I thought I&#8217;d just share my experience and maybe save you some [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":123,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-115","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.skrue.de\/wp\/index.php?rest_route=\/wp\/v2\/posts\/115","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skrue.de\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skrue.de\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skrue.de\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skrue.de\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=115"}],"version-history":[{"count":10,"href":"https:\/\/www.skrue.de\/wp\/index.php?rest_route=\/wp\/v2\/posts\/115\/revisions"}],"predecessor-version":[{"id":168,"href":"https:\/\/www.skrue.de\/wp\/index.php?rest_route=\/wp\/v2\/posts\/115\/revisions\/168"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.skrue.de\/wp\/index.php?rest_route=\/wp\/v2\/media\/123"}],"wp:attachment":[{"href":"https:\/\/www.skrue.de\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skrue.de\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skrue.de\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}