Своеобразный дуализм, обу­слов­лен­ный воз­мож­но­стью ис­поль­зо­вать два ме­то­да дос­ту­па к SATA-на­ко­пи­те­лям (эти ме­то­ды ре­а­ли­зу­ют­ся с по­мо­щью AHCI и эму­ля­ци­ей IDE), стал для раз­ра­бот­чи­ков UEFI со­блаз­ном ре­а­ли­зо­вать уни­фи­ци­ро­ван­ную под­держ­ку mass sto­ra­ge уст­ройств «по ми­ни­му­му». В ре­зуль­та­те, опе­ра­ции c UEFI воз­мож­ны то­ль­ко в про­крус­то­вом ло­же IDE (воз­мож­но, в PIO-ре­жи­ме), мо­мент же ути­ли­за­ции пре­и­му­ществ конт­рол­ле­ра AHCI откладывается до стар­та драй­ве­ров опе­ра­ци­он­ной сис­те­мы.

Можно согласиться, что на общее время загрузки ОС такой компромисс влияния не оказал, но об­нов­ле­ние «прошивки» SATA-накопителей в среде UEFI, требующее реализации специальных низкоуровневых про­то­ко­лов, оказалось вследствие такого упрощения затруднено. Чтобы исправить ситуацию American Megatrends пред­ло­жи­ла ре­а­ли­за­цию полнофункциональной поддержки AHCI-контроллера еще до загрузки драйверов.

Нововведения, анонсированные ведущим разработчиком низкоуровневого программного обеспечения, на­прав­ле­ны на стандартизацию процесса обновления «прошивки» SATA-устройств, работающих под управлением кон­т­рол­ле­ров Advanced Host Controller Interface (AHCI).

Разъемы для подключения SATA-накопителя к системной плате ASUS M2N-MX

Фактор унификации

Очевидно, поставленная цель потребует модернизации драйверной поддержки контроллеров такого типа в UEFI. Дело в том, что программный протокол, призванный в сочетании с механизмом Capsule Update, обеспечить уни­фи­ка­цию управления «перепрошивкой» mass storage устройств, основан на использовании специального сис­тем­но­го объекта — ESRT (EFI System Resource Table).

Таблица ESRT является основой своеобразного программного диспетчера, определяющего необходимость об­нов­ле­ния микропрограмм и управляющего этим процессом. Номенклатура ее записей, декларирующих список сис­те­м­ных ресурсов, содержащих встроенное программное обеспечение и поддерживающих его обновление, до­пол­не­на струк­ту­ра­ми, способными обслуживать SATA-накопители.

Неочевидные сложности

Как сказано выше, сегодня поддержка накопителей в UEFI выполнена «по однотипному минимуму» на основе ре­жи­ма эмуляции IDE-интерфейса для SATA-устройств.

В ряде случаев режим ограниченной функциональности предполагает использование программного обмена или PIO-mode, что отражается на производительности накопителей в среде UEFI.

Хотя за исключением экстремальных ситуаций на общее время загрузки ОС такой компромисс и не оказал су­щест­вен­но­го влияния, возможно возникновение другой проблемы. Процедура обновления firmware накопителей в среде UEFI, требующая реализации специальных низкоуровневых протоколов, в некоторых случаях оказывается затрудненной вследствие такого упрощения.

Программно-аппаратный интерфейс должен обеспечивать загрузку информации, подлежащей записи в Flash ROM накопителя и стробирование начала процесса обновления. И, конечно, протокол взаимодействия нужно защитить от случайного или злонамеренного искажения информации. Это означает — решение поставленной задачи пред­по­ла­га­ет реализацию полнофункционального обслуживания программной модели контроллера AHCI в UEFI.

Выводы

Итак, процесс обновления «прошивок» переводится под контроль регулярных механизмов, реализованных в со­ста­ве UEFI-платформы, что позволит уйти от дорогостоящих, не всегда защищенных и сложных в сопровождении проприетарных решений. Дополнительным бонусом должна стать заявленная возможность параллельного об­нов­ле­ния firmware для нескольких накопителей одной модели.

Несмотря на уверенное наступление твердотельных устройств с интерфейсом NVMe, магнитные диски, а также твердотельные SATA-устройства не собираются сдавать позиций, что в свою очередь автоматически означает про­должение жизни AHCI-интерфейса и связанных с ним программных протоколов.

Прошивку SATA-накопителей можно обновлять в UEFI