Гоп-драйвер что это такое
Обновлено: 21.11.2024
Я пытаюсь вставить драйвер GOP для встроенного графического чипа SM750 в прошивку платформы, чтобы его можно было использовать при безопасной загрузке. Это в виде файла .efi, который был предоставлен мне производителем, так что это их «официальный» драйвер GOP. В настоящее время я использую версию этого драйвера .rom, загружая ее в EEPROM, подключенную к SM750, с помощью исполняемой программы в DOS, которую они также предоставили. Мне сказали, что этот файл .rom нельзя использовать с безопасной загрузкой, поэтому я искал способы вставить версию этого драйвера .efi в прошивку.
Я полагаю, что в настоящее время версия драйвера .rom загружается именно так, поскольку она подключена к шине PCI, и, вероятно, это был бы идеальный способ сделать это с драйвером .efi, но я не знаю способ, которым я могу поместить файл .efi в эту EEPROM
Я предпочитаю избегать этого метода, если могу, я не хочу использовать пользовательское изображение от производителя
Я думал, что это будет способ сделать это, но после прочтения этого больше кажется, что это будет жизнеспособно только для обновлений, а не для загрузки драйвера при загрузке. Поправьте меня, если я ошибаюсь, но это также будет выполняться только тогда, когда ОС загружается из раздела EFI (в данном случае RHEL7).
ЦП — Xeon D-1559, целевая ОС — RHEL7.6
TL;DR, как лучше всего вставить драйвер efi GOP в систему для использования с безопасной загрузкой.
Как правило, файлы .efi являются загрузчиками для загрузки на основе efi (включая безопасную загрузку). Он не будет загружаться в eeprom устройства, а будет храниться в разделе EFI на жестком диске, где биос UEFI сможет его найти и позволить вам выбрать его в качестве параметра загрузки. Тем не менее, это может быть просто неудачно выбранное расширение производителем.
@CliffArmstrong Даже если этот файл является видеодрайвером? Мне нужно было бы каким-то образом вывести видео, прежде чем перейти к разделу EFI на жестком диске. Даже если я не «загружаюсь» из этого файла в традиционном смысле, будет ли система знать, что нужно искать в разделе EFI драйверы для загрузки?
Стандартная процедура для ПК (платформы x86/_64 в целом) предназначена для поддержки видеоадаптером определенных строго стандартизированных видеорежимов, в частности, для разрешения вывода видео во время процесса POST и загрузки. Мне неясно, относится ли это к SM750. однако, если предположить, что файл действительно является загрузчиком EFI, то это не видеодрайвер. это образ, содержащий машинный код, необходимый для начальной загрузки ОС. включая любые низкоуровневые драйверы, необходимые для этой задачи (например, специальные контроллеры памяти и видеооборудование). Но это гипотетически. Как я уже сказал, расширение может ввести в заблуждение.
Я хочу сказать, что в том, что вы сказали, есть некоторые моменты, которые заставляют меня задуматься, возможно, некоторые детали у вас неверны. Может не. Просто пытаюсь напомнить вам, что вы, возможно, захотите перепроверить факты и убедиться, что ничего не перепутали.
Возможно, вы правы, я никогда раньше не имел дело с GOP-драйверами, я просто констатировал то, что понял, пытаясь разобраться в этом подробнее. В настоящее время, когда версия драйвера .rom загружается в EEPROM, прикрепленную к чипу, я получаю видео. До этого нет ничего. Я думал, что, поскольку версии .rom и .efi представляют собой просто по-разному скомпилированную версию одного и того же источника (заявленную производителем), они будут вести себя по крайней мере одинаково. Я могу ошибаться, думая об этом.
1 Ответ 1
Значит, производитель предоставил вам как файл ROM, так и файл EFI? Как правило, файлы «rom» представляют собой двоичные файлы прошивки, которые можно напрямую прошивать в микросхемы BIOS дополнительного компонента и жить в микросхеме. Они являются автономными файлами и перезаписывают предыдущую версию при перепрошивке.
OptionROM — это драйвер BIOS для Legacy/CSM Boot, небольшая часть которого встроена в микросхему MB BIOS. Они не распространяются среди конечных пользователей как самостоятельные файлы, обновляемые пользователем. Но опытные пользователи могут, но не поддерживаются производителями.
Если вам нужна безопасная загрузка (форма расширенной загрузки UEFI, класс 3, иногда называемая настоящей загрузкой UEFI), драйвер GOP должен присутствовать в микросхеме MB BIOS или микросхеме BIOS подключенной внешней карты PCI. Безопасная загрузка возможна, когда все «базовые устройства» имеют драйвер EFI в BIOS. Как правило, в собственной загрузочной среде UEFI файлы «efi» — это драйверы, загружаемые загрузчиком UEFI (BL) [ОС] / диспетчером загрузки (BM) [например, Grub или rEFInd] для загрузки вторичных / периферийных функций, а не для основного ввода-вывода. работает как вывод на экран.
Но я предполагаю, что файл efi также можно использовать в качестве «загружаемого драйвера», когда вы пытаетесь запустить эмулированный UEFI (например, DuetPkg, tianocore) на старых системах, которые были созданы только для устаревшей загрузки. Там может быть какой-нибудь умный BM/BL, который может внедрить файл rom/efi перед эмулированной загрузкой UEFI.Но они могут добиться только эмулированной загрузки UEFI, а не безопасной загрузки (о чем также заявил ваш производитель, поэтому они что-то знали об ограничениях платы/устройства). Надеюсь, мой ответ приблизит вас к правильному решению.
Это новый стандарт UEFI, пришедший на смену VESA (BIOS) и UGA (EFI 1.0).
Содержание
Протокол вывода графики
Он имеет в основном те же функции, что и VESA, вы можете запрашивать режимы, устанавливать режимы. Он также предоставляет эффективную функцию BitBlitter, которую вы, к сожалению, не можете использовать в своей ОС. GOP — это служба времени загрузки EFI, то есть вы не можете получить к ней доступ после вызова ExitBootServices(). Однако кадровый буфер, предоставляемый GOP, сохраняется, поэтому вы можете продолжать использовать его для вывода графики в своей ОС.
ПРИМЕЧАНИЕ. UEFI использует собственный ABI. Вы можете либо настроить свою среду сборки для глобального использования, либо вы должны использовать функцию-оболочку. В этих примерах используется последний из соображений совместимости. Опустите uefi_call_wrapper, если вы настроили свою систему сборки для первого. Дополнительную информацию см. в GNU-EFI.
Обнаружение GOP
Как и в случае с другими протоколами UEFI, сначала необходимо найти структуру с указателями функций, используя GUID протокола.
GOP — это протокол по умолчанию, поэтому вы сможете найти его во всех прошивках UEFI. Вероятно, это может произойти только в том случае, если вы работаете на старой машине с EFI (до UEFI), например, на старом iMac или, возможно, на Intel Macbook.
Получить текущий режим
Чтобы получить код режима для текущего видеорежима, вы также должны установить режим, чтобы обойти некоторые ошибки встроенного ПО UEFI. В противном случае это делается с помощью функции QueryMode, и тогда gop->Mode->Mode будет содержать код (это прекрасный пример того, насколько плохо спроектирован UEFI. Смотрите: gop->Mode — это структура, а gop->Mode- >Mode — это UINTN, но точно такое же имя).
Запрос доступных видеорежимов
Как и в случае с VESA, здесь нет стандартных кодов режимов, вместо этого у вас есть функция запроса доступных режимов. Теперь вы знаете, сколько существует режимов (numModes выше) и какой из них установлен в данный момент (nativeMode). Вы можете повторять режимы и запрашивать информационную структуру для каждого из них:
Установите видеорежим и получите кадровый буфер
Это довольно просто. Аргумент режима находится в диапазоне от 0 до numModes.
Чтобы получить то же значение, что и строка развертки в стандарте VESA (которую во многих графических библиотеках также называют шагом), необходимо умножить PixelsPerScanLine на количество байтов на пиксель. Это можно обнаружить, изучив поле gop->Mode->Info->PixelFormat. Например, с 32-битными упакованными пикселями
Отображение пикселей
Теперь вы можете использовать возвращенный фреймбуфер точно так же, как и с VESA, абсолютно никакой разницы. Чтобы вычислить смещение координаты (X,Y) на экране, выполните команду pitch*Y+pixelbytes*X. Например, для 32-битного истинного цвета (где пиксельные байты равны 4):
Для рисования символов можно использовать тот же метод, что и для шрифтов VGA.
Драйвер протокола вывода графики (GOP) для UEFI
Ритхамбари С. V1, доктор Д. Сешачалам2
Отдел инженерного колледжа ECE BMS, Бангалор, Индия.
Профессор и бывший HOD, кафедра инженерного колледжа ECEBMS, Бангалор, Индия.
Аннотация: BIOS (базовая система ввода/вывода, также известная как System BIOS, ROM BIOS или PC BIOS) — это тип микропрограммы, используемой для выполнения аппаратной инициализации во время загрузки. обрабатывать на компьютерах, совместимых с IBM PC, и предоставлять службы времени выполнения для операционных систем и программ[1]. Унифицированный расширяемый интерфейс встроенного ПО (UEFI) был разработан как преемник BIOS с целью устранения его технических недостатков. По состоянию на 2014 г. новое аппаратное обеспечение ПК в основном поставляется с прошивкой UEFI . Унифицированный расширяемый интерфейс микропрограммы (UEFI) — это спецификация, определяющая программный интерфейс между операционной системой и микропрограммой платформы. UEFI заменяет встроенный интерфейс базовой системы ввода-вывода (BIOS), изначально присутствовавший во всех персональных компьютерах, совместимых с IBM PC. Драйвер UEFI — это загружаемый образ, загружаемый загрузчиком UEFI. Эти драйверы могут использовать или создавать протоколы. Драйвер GOP (Graphics Output Protocol) является частью драйверов времени загрузки UEFI отвечает за отображение дисплея во время загрузки BIOS. Этот драйвер позволяет отображать логотип во время загрузки BIOS. В этом документе есть драйвер устройства GOP, написанный для платформы Intel IoT Android, который отвечает за управление дисплеем до тех пор, пока операционная система и, в свою очередь, контроллер дисплея системы не получит управление .
Ключевое слово: BIOS, Unified Extensible Firmware Interface, GOP, Protocol, PCI, Simics, display.
Я. ВВЕДЕНИЕ
Драйвер GOP заменяет устаревший видео BIOS и позволяет использовать предзагрузочную прошивку UEFI без CSM.Драйвер GOP может быть 32-битным, 64-битным или IA-64 без двоичной совместимости. Архитектура встроенного ПО до загрузки UEFI (32/64-разрядная версия) должна соответствовать архитектуре драйвера GOP (32/64-разрядная версия). Драйвер GOP драйверов встроенной графики Intel может быть либо быстрой загрузкой (оптимизированным по скорости и зависящим от платформы), либо универсальным (независимым от платформы для отдельных платформ).
EFI определяет два типа служб: службы загрузки и службы среды выполнения. Загрузочные сервисы доступны только пока прошивка владеет платформой (т.е. до вызова ExitBootServices), и они включают в себя текстовые и графические консоли на различных устройствах, а также шинные, блочные и файловые сервисы. Службы среды выполнения по-прежнему доступны во время работы операционной системы; они включают в себя такие службы, как дата, время и доступ к NVRAM. Кроме того, Протокол вывода графики (GOP) обеспечивает ограниченную поддержку служб во время выполнения. Операционной системе разрешено напрямую записывать в буфер кадров, предоставляемый GOP, в режиме выполнения. Однако возможность изменения видеорежимов теряется после перехода в режим служб времени выполнения до тех пор, пока не будет загружен графический драйвер ОС [2]. Этот документ включает драйвер GOP, написанный для платформы Интернета вещей с использованием комплекта разработки EDK II, который отвечает за отображение во время процесса загрузки, пока операционная система не получит контроль над дисплеем и не вызовет устройства отображения.
II. БЛОКДИАГРАММА
©IJRASET (журнал, одобренный пользователями): все права защищены
А. SIMICS
Simics — это полносистемный симулятор, используемый для запуска неизмененных производственных двоичных файлов целевого оборудования с высокой производительностью. Первоначально Simics была разработана Шведским институтом компьютерных наук (SICS), а затем передана Virtutech для коммерческой разработки в 1998 году. Virtutech была приобретена Intel в 2010 году, и теперь Simics продается через дочернюю компанию Intel Wind River Systems.
Simics может моделировать такие системы, как Alpha, x86-64, IA-64, ARM, MIPS (32-разрядная и разрядная), MSP430, PowerPC (32- и 64-разрядная), POWER, SPARC-V8 и V9, а также процессоры x86. Текущая версия Simics – 5, и она доступна для хост-платформ Microsoft Windows и Linux.
Б. EDK II
Комплект разработчика EFI (EDK) — это версия Framework Foundations с открытым исходным кодом, определенная в спецификациях основного интерфейса Framework (CIS), а также набор примеров драйверов и трех примеров целей, реализованных для Nt32, UNIX и DUET. платформы. В дополнение к открытому коду Framework Foundation, EDK позволяет разрабатывать, отлаживать и тестировать драйверы EFI и DXE, дополнительные ПЗУ и предзагрузочные приложения.
C. Visual Studio
Microsoft Visual Studio — это интегрированная среда разработки (IDE) от Microsoft [5]. Он используется для разработки компьютерных программ для Microsoft Windows, а также веб-сайтов, веб-приложений и веб-сервисов. Visual Studio использует платформы разработки программного обеспечения Microsoft, такие как Windows API, Windows Forms, Windows Presentation Foundation, Windows Store и Microsoft Silverlight. Он может создавать как собственный код, так и управляемый код.
IV. ГОПДРАЙВЕР
Спецификация EFI определяет протокол UGA (универсальный графический адаптер) как способ поддержки аппаратно-независимой графики[3]. UEFI не включал UGA и заменял его GOP (Graphics Output Protocol) с явной целью устранения аппаратных зависимостей VGA. Они похожи.
Таблица 1 дает быстрое сравнение GOP и видео BIOS:
Таблица 1. Разница между Video BIOS и GOP
Ограничение 64 КБ. 16-битное исполнение Без ограничения 64 КБ. 32-битный защищенный режим
CSM необходим для прошивки системы UEFI.
Нет необходимости в CSM. Оптимизирована скорость (быстрая загрузка).
VBIOS работает как с 32-, так и с 64-разрядной архитектурой.
Архитектура предзагрузочной микропрограммы UEFI должна соответствовать драйверу GOP.
Драйвер GOP является частью драйверов времени загрузки UEFI, отвечающих за отображение дисплея во время загрузки BIOS. Этот драйвер позволяет отображать логотип во время загрузки BIOS[4].
Драйвер GOP взаимодействует с драйвером PCI, который отвечает за перечисление устройств PCI, таких как графика. Для каждого контроллера, обнаруженного в драйвере PCI, он устанавливает протокол ввода-вывода PCI, который используется базовым дочерним драйвером для реализации своих служб.
Графический драйвер UEFI (драйвер GOP) отвечает за функциональность дисплея. Он действует как драйвер шины для подсистемы дисплея и создает дочерние устройства для каждого из обнаруженных им выходных интерфейсов[4]. Он использует протокол PCI IO для реализации протокола GOP, установленного на каждом из созданных им выходных дочерних устройств.
©IJRASET (журнал, одобренный пользователями): все права защищены
Рис. 2. Реализация драйвера GOP
A. Драйвер GOP реализует службы QueryMode(), SetMode(), Blt() протокола.
Чтобы сократить время загрузки, драйвер GOP не должен перечислять все доступные режимы во время загрузки.Это перечисление может быть отложено до драйвера Linux в зависимости от требований к времени загрузки. Этот драйвер также реализует протокол Device Path Protocol, интерфейсы протокола привязки драйвера. Для каждого выходного интерфейса необходимо реализовать протокол вывода графики и протокол пути к устройству. В зависимости от необходимости поддержки панелей EDID драйвер должен будет поддерживать протокол EDID Discovered. Данные EDID необходимо установить на выходной интерфейс.
Активный протокол EDID устанавливается вместе с доступными данными EDID на выходном интерфейсе. Протокол переопределения EDID — это альтернативный механизм предоставления данных EDID, если протокол обнаружения EDID недоступен. Это должно позаботиться о поддержке панелей без EDID.
1) QueryMode(): Предполагается, что эта функция перечисляет все режимы, которые могут поддерживаться для данной панели дисплея. Обычно это пересечение режимов, поддерживаемых контроллером дисплея и данной панелью. Чтобы обеспечить оптимизацию времени загрузки, мы можем рассмотреть возможность перечисления только одного режима, оставив остальные режимы для обнаружения драйвером.
2) SetMode(): Эта функция используется для выбора режима из списка, перечисляемого QueryMode. 3) Blt() : эта функция используется для копирования содержимого из внеэкранного буфера в буфер отображения.
В. МЕТОДОЛОГИЯ
Большинство графических контроллеров являются контроллерами PCI, а это означает, что драйверы UEFI для графических контроллеров обычно являются драйверами PCI. Если устройство предназначено для использования в качестве устройства вывода графической консоли при активном микропрограммном обеспечении UEFI, необходимо реализовать драйвер UEFI, который создает протокол вывода графики. Графический контроллер должен либо напрямую поддерживать, либо иметь возможность эмулировать следующие операции:
A. Передача блока для заполнения области кадрового буфера
B. Блочная передача из системной памяти в область кадрового буфера C. Блочная передача из области кадрового буфера в системную память D. Передача блоков между двумя областями кадрового буфера E. Запрос подключенных устройств отображения для получения информации EDID
F. Установите поддерживаемые графические режимы, которые являются пересечением режимов, поддерживаемых графическим контроллером и устройством отображения.
EDK II использует службы протокола вывода графики и растровые шрифты для создания протокола простого вывода текста. Это означает, что если протокол вывода графики создается драйвером UEFI, то буфер кадра, управляемый этим драйвером UEFI, может использоваться как текст
Консольное устройство без необходимости реализовывать простой протокол вывода текста в драйвере UEFI для графического контроллера. Драйверы UEFI для графических контроллеров обычно более чувствительны к накладным расходам интерпретатора виртуальной машины EBC, поэтому это критически важно
©IJRASET (журнал, одобренный пользователями): все права защищены
стандартные шины, такие как PCI. Однако можно реализовать драйверы UEFI для графических контроллеров, не использующих стандартные отраслевые шины. В этих случаях реализация драйвера корневого моста, которая создает дескриптор для каждого выходного контроллера в точке входа драйвера, может быть более подходящей, чем реализация модели драйвера UEFI. Графические контроллеры, подключенные к одному устройству вывода, представляют собой простейший тип графического драйвера UEFI. Они создают один дочерний \дескриптор и присоединяют к нему протоколы Device Path и Graphics Output. Им нужна единая структура данных для управления устройством. Пример стека графического драйвера с одним выходом показан ниже.
VI. ИНТЕГРАЦИЯ
А. Требования к платформе
Прошивка платформы должна соответствовать следующим требованиям для интеграции драйвера GOP: 1) Прошивка платформы должна соответствовать UEFI 2.1 или более поздней версии.
2) Платформа должна перечислить и инициализировать графическое устройство
3) Платформа должна выделить достаточно памяти для графического буфера кадров, необходимого для поддержки разрешения встроенного дисплея в собственном режиме.
4) Платформа должна создавать стандартный EFI_PCI_IO_PROTOCOL, а также EFI_DEVICE_PATH_PROTOCOL для дескриптора графического устройства. Кроме того, платформа должна создавать PLATFORM_GOP_POLICY_PROTOCOL.
5) Микропрограмма платформы не должна запускать устаревшую версию Video BIOS.
Решение драйвера GOP включает следующие файлы. Таблица 2. Файлы драйвера GOP
Формат описания имени файла
GopDriver.efi Двоичный файл драйвера GOP Несжатый образ PE/COFF
Vbt.bin содержит видео BIOS
Таблица (VBT) Необработанные двоичные данные
BMP-файл сценария Vbt.bsf. Требуется для изменения Vbt.bin с помощью инструмента BMP.
B. Этапы интеграции
1) Настройте файл данных VBT Vbt.bin в соответствии с требованиями платформы и соответствующий файл BSF.
2) Интегрируйте файлы Vbt.bin и GopDriver.efi в образ прошивки платформы.Процесс выполнения этого шага определяется разработчиком платформы в зависимости от реализации микропрограммы платформы.
C. Протоколы драйвера GOP
Драйвер GOP следует модели драйвера UEFI и создает следующие протоколы:
1) Efi_Driver_Binding_Protocol: Драйвер GOP создает управляющий протокол привязки для своего дескриптора изображения.
2) efi_driver_binding_protocol.supported(): в вызове Supported() драйвер использует протокол пути устройства и протокол ввода-вывода PCI, чтобы определить, поддерживает ли он контроллер ручка. RemainingDevicePath должен иметь значение NULL, допустимый тип ADR или «конец пути к устройству».
3) Efi_Driver_Binding_Protocol.Start(): При вызове Start() драйвер GOP инициализирует графическое оборудование, создает дочерние дескрипторы и устанавливает необходимые протоколы на детские ручки. Если дочерний дескриптор не может быть создан, возвращается EFI_UNSUPPORTED. В этом случае прошивка должна вызвать Start с NULL в качестве значения параметра RemainingDevicePath, чтобы позволить драйверу запустить дисплей по умолчанию[4]. Если нет подключенных дисплеев, то Start() возвращает EFI_SUCCESS для значения NULL. Ниже приведены протоколы, установленные на дескрипторах дочернего контроллера
©IJRASET (журнал, одобренный пользователями): все права защищены
5) Efi_Graphics_Output_Protocol: Драйвер GOP создает один экземпляр протокола и устанавливается на дочерний контроллер, определяемый параметром RemainingDevicePath.
Таблица 3 EFI_GRAPHICS_OUTPUT_PROTOCOL
Действительная группа адресов ACPI, установленная на соответствующем дочернем дескрипторе
NULL GOP устанавливается на дочерний дескриптор по умолчанию, определяемый драйвером GOP.
6) Efi_Edid_Discovered_Protocol: если дочерний контроллер представляет собой один дисплей, то устанавливается EFI_EDID_DISCOVERED_PROTOCOL. Если дисплей представляет собой локальную плоскую панель без EDID, то драйвер GOP создает EDID на основе данных синхронизации этой панели, настроенных в VBT.
7) Efi_Edid_Active_Protocol Если дочерний контроллер является устройством GOP, то EFI_EDID_ACTIVE_PROTOCOL является установленным протоколом. EFI_EDID_OVERRIDE_PROTOCOL не используется драйвером GOP
8) Efi_Component_Name2_Protocol: Драйвер GOP устанавливает протокол имени компонента на свой дескриптор образа. Английский — единственный поддерживаемый язык.
VII. РЕЗУЛЬТАТЫ
А. Сборка BIOS
Следующая команда используется для сборки BIOS в режиме SPI. Это успешно строит BIOS из исходного кода и создает файл spi.bin, который является двоичным файлом образа. В процессе сшивки создается файл сшивания (бинарное изображение) из всех исходных файлов и файлов библиотеки.
C:\UEFI>BuildImage.bat /c /x6 /nmrc /vp /spi Отладка SRVL
©IJRASET (журнал, одобренный пользователями): все права защищены
Рис. 4. Командное окно, показывающее, что сборка BIOS завершена.
Рис. 5. Окно команд, показывающее, что процесс сшивания начался
©IJRASET (журнал, одобренный пользователями): все права защищены
Б. Моделирование в Simics
Рис. 7. Окно Simics со сценарием отладки для SPI
Сгенерированное бинарное изображение должно быть смоделировано для платформы. Файл скрипта написан для вызова всех драйверов в режиме SPI.
Рис. 8. Окно отладки Simics для моделирования сгенерированного бинарного файла
Файл отладки создается при запуске на Simics. Это список всех вызванных драйверов и установленных протоколов. Файл журнала: hsuart.txt.
Рис. 9. Вызов драйвера GOP
На приведенной выше диаграмме показан вызов драйвера GOP. Запускается Gop.efi (бинарный файл изображения исходного кода GOP) и различные протоколы, такие как
©IJRASET (журнал, одобренный пользователями): все права защищены
установлено. Все вышеупомянутые протоколы перечислены в файле журнала с указанием их соответствующих идентификаторов GUID. После успешного моделирования файл бинарного образа сбрасывается на плату платформы.
VIII. ЗАКЛЮЧЕНИЕ И ДАЛЬНЕЙШАЯ РАБОТА
Документ включает в себя понимание BIOS, процесса загрузки, UEFI, архитектурного потока, драйверов UEFI, моделей драйверов и драйвера GOP. Инструменты моделирования, такие как Simics и Visual Studio, используются для создания BIOS, разработки и отладки для платформы Intel IoT.
С учетом всех вышеупомянутых концепций, а также написания и вызова простого драйвера протокол вывода графики (GOP) написан для платформы Intel IoT, которая отвечает за отображение графики во время процесса загрузки до тех пор, пока ОС не получит управление. р>
В рамках дальнейшей импровизации можно доработать драйвер GOP для предоставления пользователю таких параметров, как яркость, контрастность, цветовые пиксели и т. д., во время загрузки через интерфейс.
[1] Мухаммад Ирфан Афзал Батт, «Целостность BIOS, серьезная постоянная угроза», IEEE Information Assurance and Cyber Security (CIACS), конференция 2014 г., 2014 г.
[2] Рахул Кханна, Фади Зухайри, Муругасами Начимуту, «Унифицированный расширяемый интерфейс встроенного ПО: инновационный подход к управлению питанием DRAM», IEEE Energy Aware Computing (ICEAC), Международная конференция 2014 г., посвященная 2014 г.
[3] Рахул Кханна, Фади Зухайри, Кристиан Ле, «Унифицированный расширяемый интерфейс встроенного ПО: инновационная инфраструктура для энергетической/тепловой автономии», IEEE EnergyAware Computing (ICEAC), Международная конференция 2014 г., посвященная 2014 г.
[4] Винсент Циммер, Майкл Крау, «Установление корня доверия», Форум Unified Extensible Firmware Interface, август 201 г.
Рисунок
Драйвер GOP стр.2
Реализация драйвера GOP стр. 4
Выполняется команда для сборки BIOS в режиме SPI стр.6
Командное окно, показывающее, что двоичный файл успешно сгенерирован стр.7
Командное окно, показывающее, что "сборка BIOS завершена" стр. 7
Командное окно, показывающее, что процесс сшивания начался стр. 7
Окно Simics со сценарием отладки для SPI стр.8
Этот автоматизированный тест проверяет, реализует ли система протокол режима Graphics Output Protocol (GOP) в соответствии с требованиями Windows HLK.
Подробности теста
- System.Client.Firmware.UEFI.GOP.Display
- System.Server.Firmware.UEFI.GOP.Display
- Windows 10, клиентские версии (x86)
- Windows 10, клиентские версии (x64)
- Windows Server 2016 (x64)
- Windows 10, клиентские версии (ARM64)
- Windows 10
- Windows 10, версия 1511
- Windows 10, версия 1607
- Windows 10, версия 1703
- Windows 10, версия 1709
- Windows 10, версия 1803
- Windows 10, версия 1809
- Windows 10, версия 1903
- Следующее обновление до Windows 10
Дополнительная документация
Тесты в этой функциональной области могут иметь дополнительную документацию, включая информацию о предварительных требованиях, настройке и устранении неполадок, которую можно найти в следующих разделах:
Выполнение теста
Перед запуском теста выполните настройку теста, как описано в требованиях к тесту: Требования к тестированию основ системы WDTF.
В системе должна быть отключена безопасная загрузка, чтобы запустить предустановленное системное приложение, или должна быть совместимая функция для запуска тестовых двоичных файлов, подписанных Microsoft.
Устранение неполадок
Общую информацию об устранении неполадок при сбоях теста HLK см. в разделе Устранение неполадок при сбое теста HLK в Windows.
Подробнее
Выбор режима
После того как UEFI определил, на каком дисплее разрешено отображать экран предоперационной системы, он должен выбрать режим для применения на основе следующей логики:
Система со встроенным дисплеем (ноутбук, все в одном, планшет): для дисплея всегда должны быть установлены исходное разрешение и исходное время.
Система без встроенного дисплея (настольный компьютер):
UEFI должен попытаться установить исходное разрешение и синхронизацию дисплея, получив их из EDID.
Если это не поддерживается, UEFI должен выбрать альтернативный режим, который соответствует тому же соотношению сторон, что и исходное разрешение дисплея.
Как минимум UEFI должен установить режим 1024 x 768.
Если устройство отображения не предоставляет EDID, UEFI должен установить режим 1024 x 768.
Прошивка всегда должна использовать 32-битный линейный буфер кадров для отображения экрана до операционной системы.
PixelsPerScanLine должен быть равен HorizontalResolution.
PixelFormat должен быть PixelBlueGreenRedReserved8BitPerColor. Требуется физический буфер кадра. PixelBltOnly не поддерживается.
Читайте также: