Перейти к основному содержанию
 

Прошивка Avago SAS 9300-8i Host Bus Adapter через UEFI

Avago SAS 9300-8i HBA

Имеем железку Avago SAS 9300-8i HBA. На ней стоит прошивка "IT" от 16 года. Начитался, что если поставить прошивку "IR", то можно контроллер обучить работать с RAID. Проверим. Если не получится - обновим "IT" до последней версии.

Качаем прошивку

Прежде всего, нужно найти прошивку. Ищем здесь:

https://www.broadcom.com/products/storage/host-bus-adapters/sas-9300-8i

sas

На текущий момент нашлась 9300_8i_Package_P16_IR_IT_FW_BIOS_for_MSDOS_Windows, качаем.

Прошивать будем через UEFI, поэтому качаем ещё один файлик - Installer_P14_for_UEFI.

Из всего этого добра нам понадобятся только эти файлы:

sas

Где:

  • sas3flash.efi - прошивальщик под UEFI.
  • mpt3x64.rom - BIOS контроллера UEFI. Я использовал Unsigned версию.
  • mptsas3.rom - BIOS контроллера Legacy.
  • SAS9311_8i_IR.bin - прошивка IR.
  • SAS9300_8i_IT.bin - прошивка IT.

Число 9311 в названии прошивки IR смущает, возможно, она не пойдёт на нашем контроллере.

Подготовка флешки

  • Берём флешку, форматируем её средствами винды в FAT32. 
  • Копируем на флешку вышеуказанные файлы.

Вставка флешки

Простая операция вставки флешки через KVM вызвала проблемы. Сервер Supermicro.

Решение проблемы здесь: Supermicro - VM Device is not valid, please click "Refresh" button.

Отключаем видимость контроллера в BIOS

При загрузке жмём Ctrl +C и попадаем в утилиту Avago Technologies Config Utility.

Проваливаемся по Enter в контроллер и устанавливаем видимость "OS Only".

Загружаемся в EFI Shell

Поскольку на нашем сервере Supermicro есть Built-in EFI Shel, то будем им пользоваться. При загрузке нажимаем DEL, попадаем в BIOS и выбираем в Boot Device - Built-in EFI Shel:

sas

Сохраняемся, проверяем что флешка вставлена:

sas

Перезагружаем сервер в EFI Shell:

sas

Просмотреть список примонтированных устройств:

map

Мы видим что наша флешка нашлась как blk0 и примонтировалась как hd51a0h0b0b с алиасом fs0. 

Переходим внутрь флешки:

fs0:

Смотрим список содержимого с помощью ls или dir:

sas

Файлики доступны. На скрине у меня нет SAS9300_8i_IT.bin, это не страшно. Флешку можно вытащить, скопировать туда файлик и примонтировать обратно без перезагрузки сервера.

Прошивка

Посмотрим текущие настройки контроллера:

sas3flash.efi -list

sas

  • Текущая версия контроллера 15.00.00.00 (2016.11.17).
  • SAS Address - 500605B-0-0CDA-35A0
  • Firmware Product ID - IT
  • Версия прошивки (Firmware Version) 15.00.02.00.
  • Версия BIOS Legacy (BIOS Version) 08.35.04.00
  • Версия BIOS UEFI (UEFI BSD Version) - нет вообще.

Для начала установим UEFI BSD:

sas3flash.efi -c 00CDA35A0 -b mpt3x64.rom

00CDA35A0 - это последние 9 символов SAS Address без дефисов. Символы HEX от 0 до F.

sas

Flash BIOS Image Successful. Это хорошо.

Дальше ставим IR прошивку контроллера:

sas3flash.efi -c 00CDA35A0 -f SAS9311_8i_IR.bin

sas

Firmware Image Validation Failed! Ну вот, а счастье было так возможно... Судя по описанию ошибки наш чип не поддерживает эту прошивку, печаль. Ну тогда хотя бы попытаемся обновить прошивку IT до последней:

sas3flash.efi -c 00CDA35A0 -f SAS9300_8i_IT.bin

sas

Firmware Flash Successful. Отлично. Прошиваем BIOS Legicy:

sas3flash.efi -c 00CDA35A0 -b mptsas3.rom

sas

Flash BIOS Image Successful. Это хорошо. Проверяем версию sas3flash.efi -list:

sas

Все остальные версии тоже обновились. Перезагружаемся:

reset

Не забываем в BIOS установить нужный Boot Device.

И всё же...

Нагуглил в статье https://www.broadcom.com/support/knowledgebase/1211161501344/flashing-firmware-and-bios-on-lsi-sas-hbas информацию:

*When flashing an 12G HBA (SAS 9300 family) with IR mode firmware provided in the same package, named 9311, SAS3Flash returns the following error:
 
ERROR: NVDATA Image does not match Controller Subsystem ID!
ERROR: No compatible NVDATA Image(s) found!
Firmware Image Validation Failed!
 
Resolution:
Using DOS or EFI SAS3Flash version 10.00.00.01 or higher with following command string

sas3flsh –o –e -6
sas3flsh –o –f <firmware> -b <bios> -nossid

EFI:
sas3flash –o –f <UEFI BSD firmware> -nossid
 

Пробую:

sas3flash.efi -o -f SAS9311_8i_IR.bin -nossid

sas

Cannot Flash IR Firmware over IT Firmware!

Вот оно как. Значит, снесём IT Firmware.

Внимание - дальше нельзя перезагружать сервер, чтобы не превратить контроллер в кирпич!

Стираем все прошивки:

sas3flash.efi -o -e 6

sas

Ставим прошивку и BIOS Legacy:

sas3flash.efi -o -f SAS9311_8i_IR.bin -nossid -b mptsas3.rom

sas

Выдыхаем, стираем пот. Ставим BIOS UEFI, также как было выше:

sas3flash.efi -c 00CDA35A0 -b mpt3x64.rom

Смотрим что получилось:

sas

Слева то что было. Спава то что стало.

Firmware Product ID - IR! перезагружаемся.

reset

Первый раз даём перезагрузиться полностью, чтобы определились все устройства. Попадаем в EFI Shell, снова ребутаемся:

reset

При загрузке жмём Ctrl +C и попадаем в утилиту Avago Technologies Config Utility.

sas

Видим, что всё в порядке, смотрим далее:

sas

Появилась опция RAID Properties. План перевыполнен.