add h310 full size dedicated page/script

This commit is contained in:
Jon Sands 2022-06-14 05:52:15 -04:00
parent fea58f629d
commit b0025e75c6
5 changed files with 130 additions and 21 deletions

View File

@ -0,0 +1,29 @@
#!/bin/sh
# H310 Full Size Flashing
addr=$(lspci -nnv | grep LSI | cut -b -7)
rmmod megaraid_sas mpt3sas mptctl mptbase
echo "Errors above are normal!"
sleep 2
echo 16 > /proc/sys/vm/nr_hugepages
sleep 1
#free the card, get it into rawdog mode, boot it from RAM
/root/lsirec/lsirec 0000:$addr unbind
sleep 1
/root/lsirec/lsirec 0000:$addr halt
sleep 2
##write IT mode SBR
/root/lsirec/lsirec 0000:$addr writesbr /root/H310/H310-Full-Modded.sbr
sleep 2
/root/lsirec/lsirec 0000:$addr hostboot /root/H310/2118it.bin
sleep 2
/root/lsirec/lsirec 0000:$addr rescan
sleep 1
echo "Pausing for 20 seconds to allow the card to boot"
sleep 20
# erase FW again now from lsiutil to be sure it's dell-free
/root/lsiutil/lsiutil -p1 -a 3,8, 33
sleep 2
# flash FW to onboard flash
/root/lsiutil/lsiutil -p1 -f /root/H310/2118it.bin -y 2
sleep 1
echo "All Done! Continue following the guide to set SAS addr"

82
docs/H310-full.md Normal file
View File

@ -0,0 +1,82 @@
# H310 Full Size IT Mode Flashing
Instructions for flashing the H310 Full Size. Full credits for this guide go to [fourlynx](mailto:fourlynx@phoxden.net) and his original [H310 guide](https://doku.phoxden.net/pages/viewpage.action?pageId=7208964). As we were working on these H710 guides together and building a convenient live ISO, we figured we might as well add an easy H310 script to it.
## Linux Time
Boot into the Linux ISO from the ZIP. Use the following credentials to login: **user/live**
We highly recommend SSH'ing to the live ISO so you can copy/paste commands and not have to use the iDRAC virtual console. To do so, run the following to find the IP of the install:
```
ipinfo
```
It should spit out an IP. SSH to it, using the same **user/live** credentials. This is not required and you can continue on using the iDRAC (or physical) console, but it will be slightly more inconvenient.
## Flashing IT Firmware
Now, still in Linux, we need to change to the root user:
```
sudo su -
```
Now we need to note down the SAS address of the adapter so we can program it back later. Run the following and save the output somewhere:
```
sas-mega
```
Once you have the address saved, run the flashing script. This will program the appropriate IT mode SBR, then flash the card with IT firmware:
```
H310-Full
```
It should automatically do everything required to flash the card. If you don't get any unexpected errors and it completes, we need to reboot and program the SAS address back to finish. See the following note.
**Note:** For some reason, the very first boot after crossflashing the card will cause a kernel panic - I believe it's iDRAC not letting go of something (I was able to see the card put in a fault state via the debug UART when this happens). This only happens the first reboot after crossflashing. When you boot back into the live ISO and get the panic, either let it reboot itself, or use iDRAC to force a reboot. After that boot back into the live ISO again and all will be well.
## Programming SAS Address Back
Now rebooted back into the live Linux image, just run the following commands, filling in the example address with your own, that you noted down earlier:
```
sudo su -
setsas 500605b123456777
```
It should succeed without errors. That's it! You can run the following command to get some info about your new card. You should be able to see your SAS address and the same firmware version:
```
info
```
```
Controller Number : 0
Controller : SAS2008(B2)
PCI Address : 00:02:00:00
SAS Address : 5b8ca3a-0-f37a-4500
NVDATA Version (Default) : 14.01.00.08
NVDATA Version (Persistent) : 14.01.00.08
Firmware Product ID : 0x2213 (IT)
Firmware Version : 20.00.07.00
NVDATA Vendor : LSI
NVDATA Product ID : SAS9211-8i
BIOS Version : N/A
UEFI BSD Version : N/A
FCODE Version : N/A
Board Name : SAS9211-8i
Board Assembly : N/A
Board Tracer Number : N/A
```
Unless you also need to flash boot images for booting off the card, you can now ditch all the live images and reboot back into your normal system, and enjoy your IT mode card.
## Optional: Boot Images
>Note: flashing these can add up to 2 minutes to server boot time if you have a lot of drives. Be sure you need them!
If you need to boot from drives connected to this adapter, you'll need to flash a boot image to it. Otherwise, skip it. This is what gives you the "press blahblah to enter the LSI boot configuration utility" text when the server boots. To flash the regular BIOS boot image:
```
flashboot /root/Bootloaders/mptsas2.rom
```
If you want to UEFI boot from drives connected to this adapter, you need to flash the UEFI boot image (the card can have both UEFI and BIOS boot images flashed):
```
flashboot /root/Bootloaders/x64sas2.rom
```
You can now ditch the live images and boot back into your normal system.
## Optional: Reverting
If for some reason you need to revert back to the stock Dell PERC firmware, that's easy. Boot into the FreeDOS live image, and run the following command:
```
310FLRVT
```
That's it! When it finishes, just reboot back to your normal system with the `reboot` command.
>Note: This uses the unmodified latest Dell firmware `20.13.3-0001,A11` extracted from the update EXE found [here](https://www.dell.com/support/home/en-in/drivers/driversdetails?driverid=r09pj).

View File

@ -31,12 +31,10 @@ Ensure there is only one LSI-based adapter in your system. If there are others b
* Integrated Devices > SR-IOV Global Enable
* Integrated Devices > I/OAT DMA Engine
>Note: If you're flashing a full size card on a non-Dell system, such as an AMD based desktop or server, make sure you find any BIOS settings related to IOMMU and Virtualization, and disable them
You also **must** set the server boot mode to BIOS, not UEFI:
* Boot Settings > Boot Mode > Set to **BIOS**
* Boot Settings > Boot Mode > Set to **BIOS**
>Note: If you're flashing a card on a non-Dell system, such as an AMD based desktop or server, make sure you find any BIOS settings related to IOMMU and Virtualization, and disable them
When you're finished with this guide, don't forget to go back and enable Virtualization, as well as SR-IOV if you plan to use it. Switch boot mode back to UEFI as well if you were using it previously. But only once you've finished the guide!
@ -49,30 +47,29 @@ Download the ZIP below which contains two ISOs. One is a FreeDOS live image, the
```ZIP Updated: 04-08-2022```
```MD5: 42a87bd496f6d2e3aa1d8f2afe3cc699```
>Note: If you **know** you have an H310 Mini or H310 Full Size (**not** an H710), skip all of the below and jump right to the [H310 Mini Guide](H310.md). Otherwise, continue below.
## Finding Your Card Revision
Boot the server off the FreeDOS ISO. Once it's booted, just run the following command, which will spit out the name and revision of your card:
Boot the server off the FreeDOS ISO. Once it's booted just run the following command It will spit out the name and revision of your card:
```
info
```
![percflash1](store/perc/percinfo.png)
>WARNING: If you are flashing a card in a blade chassis (like an M620 or M820), only use the "for blades" section for your card model below. For example, the **H710 Mini (D1) Blade Guide**. Following any of the "normal" guides on a blade server will brick the PERC. Blade servers are the M620 and M820 for instance. Standard rackmount models like the R620 and R720 are **not** blade servers!
>WARNING: If you are flashing a card in a blade chassis (like an M620 or M820), only use the "for blades" section for your card model below. Blade servers are the M620 and M820 for instance. Standard rackmount models like the R620 and R720 are **not** blade servers!
If it displays an **H310 Mini** or **H310 Adapter**, proceed to the [H310 Guide](H310.md)
If it displays an **H710 Mini B0** revision, proceed to the [H710 Mini (B0) Guide](H710-B0.md)
If it displays an **H710 Mini D1** revision, proceed to the [H710 Mini (D1) Guide](H710-D1.md)
If it displays an **H710 Mini D1** revision **and it's in a blade server**, proceed to the [H710 Mini (D1) Blade Guide](H710-D1-Blade.md)
If it displays an **H710P Mini B0** revision, proceed to the [H710P Mini (B0) Guide](H710P-B0.md)
If it displays an **H710P Mini D1** revision, proceed to the [H710P Mini (D1) Guide](H710P-D1.md)
If it displays an **H710 Adapter B0** revision, proceed to the [H710 Full Size (B0) Guide](H710-B0-full.md)
If it displays an **H710 Adapter D1** revision, proceed to the [H710 Full Size (D1) Guide](H710-D1-full.md)
If it displays an **H710P Adapter B0** revision, proceed to the [H710P Full Size (B0) Guide](H710P-B0-full.md)
If it displays an **H710P Adapter D1** revision, proceed to the [H710P Full Size (D1) Guide](H710P-D1-full.md)
If it displays an **H810 Adapter B0** revision, proceed to the [H810 Full Size (B0) Guide](H810-B0-full.md)
If it displays an **H810 Adapter D1** revision, proceed to the [H810 Full Size (D1) Guide](H810-D1-full.md)
If it displays an **H310 Mini**, proceed to the [H310 Mini Guide](H310.md)
If it displays an **H310 Adapter**, proceed to the [H310 Full Size Guide](H310-full.md)
If it displays an **H710 Mini B0**, proceed to the [H710 Mini (B0) Guide](H710-B0.md)
If it displays an **H710 Mini D1**, proceed to the [H710 Mini (D1) Guide](H710-D1.md)
If it displays an **H710 Mini D1** ***and it's in a blade server***, proceed to the [H710 Mini (D1) Blade Guide](H710-D1-Blade.md)
If it displays an **H710P Mini B0**, proceed to the [H710P Mini (B0) Guide](H710P-B0.md)
If it displays an **H710P Mini D1**, proceed to the [H710P Mini (D1) Guide](H710P-D1.md)
If it displays an **H710 Adapter B0**, proceed to the [H710 Full Size (B0) Guide](H710-B0-full.md)
If it displays an **H710 Adapter D1**, proceed to the [H710 Full Size (D1) Guide](H710-D1-full.md)
If it displays an **H710P Adapter B0**, proceed to the [H710P Full Size (B0) Guide](H710P-B0-full.md)
If it displays an **H710P Adapter D1**, proceed to the [H710P Full Size (D1) Guide](H710P-D1-full.md)
If it displays an **H810 Adapter B0**, proceed to the [H810 Full Size (B0) Guide](H810-B0-full.md)
If it displays an **H810 Adapter D1**, proceed to the [H810 Full Size (D1) Guide](H810-D1-full.md)
If it displays anything that doesn't exactly match the above choices, [contact me](mailto:jon@fohdeesha.com?subject=PERC-Unknown) with a screenshot. If you're impatient and pick the "closest one" instead, you'll brick your card.
@ -125,7 +122,7 @@ racadm set system.thermalsettings.ThirdPartyPCIFanResponse 1
>Note: The above commands were pulled from the following Dell White Paper: [Disabling a Third-Party PCIe Card Cooling Response with Dell PowerEdge Servers](store/perc/ThirdPartyPCIFanResponse.pdf)
## Extra: Revision Info & Part Numbers
The main difference between the B0 and D1 revisions is the D1 will link at PCIe 3.0 speeds, instead of PCIe 2.0. This will almost certainly never cause a bottleneck unless you have every SAS port on the card connected to very fast SSDs that all get hammered at the same time. Even then, you're likely to reach the card's processor limitations before the bus bandwidth limit. The difference with the *P* cards (H710P) is more cache (1GB vs 512MB), but this is totally irrelevant when running the card flashed to IT mode as the cache is not used.
The main difference between the B0 and D1 revisions are link speeds: D1 will link at PCIe 3.0 instead of PCIe 2.0. This will almost certainly never cause a bottleneck, as you'll hit the processing limits of the SAS chipset before you run into the 20gbps full duplex bandwidth of a 4x PCIe 2.0 slot. The difference with the *P* cards (H710P) is more cache (1GB vs 512MB), but this is totally irrelevant when running the card flashed to IT mode as the cache is not used.
Regardless, since they're the same price used, you may as well grab the D1 revision. Note that many ebay sellers just stick popular part numbers in the listing title, so try to verify in the actual auction images that the label states the correct part number. Note that most sellers omit the leading `0` so you'll get more results doing the same:

View File

@ -48,6 +48,7 @@ nav:
- 'H710 D1 Mini Blade': 'H710-D1-Blade.md'
- 'H710P B0 Mini': 'H710P-B0.md'
- 'H710P D1 Mini': 'H710P-D1.md'
- 'H310 Full Size': 'H310-full.md'
- 'H710 B0 Full Size': 'H710-B0-full.md'
- 'H710 D1 Full Size': 'H710-D1-full.md'
- 'H710P B0 Full Size': 'H710P-B0-full.md'