
Своеобразный дуализм, обусловленный возможностью использовать два метода доступа к SATA-накопителям (эти методы реализуются с помощью AHCI и эмуляцией IDE), стал для разработчиков UEFI соблазном реализовать унифицированную поддержку mass storage устройств «по минимуму». В результате, операции c UEFI возможны только в прокрустовом ложе IDE (возможно, в PIO-режиме), момент же утилизации преимуществ контроллера AHCI откладывается до старта драйверов операционной системы.
Можно согласиться, что на общее время загрузки ОС такой компромисс влияния не оказал, но обновление «прошивки» SATA-накопителей в среде UEFI, требующее реализации специальных низкоуровневых протоколов, оказалось вследствие такого упрощения затруднено. Чтобы исправить ситуацию American Megatrends предложила реализацию полнофункциональной поддержки AHCI-контроллера еще до загрузки драйверов.
Нововведения, анонсированные ведущим разработчиком низкоуровневого программного обеспечения, направлены на стандартизацию процесса обновления «прошивки» SATA-устройств, работающих под управлением контроллеров Advanced Host Controller Interface (AHCI).
Фактор унификации
Очевидно, поставленная цель потребует модернизации драйверной поддержки контроллеров такого типа в 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-интерфейса и связанных с ним программных протоколов.