2008年11月8日 星期六

EFI UGA & Simple Pointer[轉貼]

年前學習了有關UGA & Simple Pointer的知識,今天拿出來,總結一下。方便自己以後的理解和查閲。
UGA
UGA是 Universal Graphics Adapter (通用圖形適配器)的縮寫。在本質上講,UGA 是一個EFI driver。它在OS導入前和OS運行時都能被使用。

1,Universal Graphics Adapter Protocols主要描述了有關在EFI環境下的圖象顯示。這個部分包含了 UGA Draw Protocols 和 UGA I/O protocol 。前者描述了如何在 pre-OS space 繪入圖象,在圖象屏幕上顯示出來;後者描述了如何訪問圖象屏幕,以及支持視頻控制器的子設備,例如:圖象顯示設備。同時,後者的目標是在 OS 當前的環境下,實現初步的使用。

2,UGA ROM 是一個軟件的概念,它的目標是來支持可預知圖形硬件,并不要求VGA硬件。(不是很清楚)

3,UGA Draw Protocol 支持三個成員函數,來支持 pre-OS space 有限的圖形需求。這些成員函數允許調用者draw到虚擬的 frame buffer 裏面,來獲得當前的視頻模式,以及設置視頻模式。這些簡單的原始函數已經能充分的滿足pre-OS firmware code的總的需要。

4,在 EFI_UGA_DRAW_PROTOCOL 基本圖形操作是 Blt(Block Transfer)。Blt操作允許數據讀出和寫入視頻適配器的視頻存儲器裏。frame buffer 視頻顯示是由一組像素。每個像素在視頻顯示上的位置由 X 和 Y 坐標描述。X 代表了一個掃描行。一個掃描行是指顯示的水平的像素大小。 software Blt buffer 也是由一組像素來組成的。在buffer 裏的第一個元素是Pixel (0, 0) 。Blt buffer 可以看成是一系列的掃描行。一個像素在視頻顯示上的位置和 Blt buffer 裏相對應的轉化:Blt buffer array index = Y * Width + X 。Blt buffer 裏描述像素是有32位,字節0到字節2分彆代表了在像素中紅,緑,藍三色各含的成分,字節3是保留位,始終為0。

5,UGA I/O Protocol 支持I/O 請求模式,目的在于給 OS high performance driver 提供服務。這些I/O請求是經由 EFI_UGA_IO_PROTOCOL DispatchService() 成員函數來訪問的。I/O請求服務包含的能力由 EFI_UGA_DRAW_PROTOCOL 來支持。

6,EFI_UGA_DRAW_PROTOCOL 的三個成員函數:GetMode()、SetMode()、Blt();
EFI_UGA_IO_PROTOCOL 的成員函數:CreateDevice()、DeleteDevice()、DispatchService();

Simple Pointer
1,指定一個簡單的方法來進入指針設備。通常説來,主要是指鼠標。EFI_SIMPLE_POINTER_PROTOCOL 允許返回指針設備的有關信息。這包含了按鍵的狀態和最新訪問時鼠標的運動狀態。

2,每個EFI_SIMPLE_POINTER_PROTOCOL都必須安裝Handle 來給EFI Drivers和EFI App提供一些服務讓它們來利用。同時,EFI_DEVICE_PATH 也必須安裝同様的Handle。

相關的概念理解:
1,EBC:
對于不同的處理器和平台,Option ROMs要求有不同的可執行的映像。EFI定義了EFI 字節碼編譯器(EBC)虚擬機來處理這些不同。這個虚擬器的注釋器是firmware的一部分。C語言能够被編譯成EBC,然後和相關的驅動連接,在注釋器上運行。
C語言編譯成 EBC ,同時創建 EBC 映像,它可以被系統在 EFI1.10、UEFI2.0,或更後的Spec下執行。這些系統包含 EBC 注釋器,EBC 注釋器加載和解釋 EBC image,允許 image 能够在多種平台和機制上執行,包括那些基于英特爾? 安騰?處理器, 32位英特爾? 架構處理器,以及64位英特爾體系架構處理器。

2,OPROM:
(Option ROM) Firmware 在適配器卡上控制可啓動的外圍設備。系統 BIOS 會詢查 option ROMs,來確定有哪些設備可以被啓動導入。
(Option ROM) Firmware on adapter cards that control bootable peripherals. The system BIOS interrogates the option ROMs to determine which devices can be booted.

Option ROM 有固件組成,由系統 BIOS 來調用。舉例來説:適配器卡控制導入設備,設備可能包含固件,一旦 Option ROM 被加載,固件用來將設備連接到系統。
An Option ROM typically consists of firmware that is called by the system BIOS. For example, an adapter card that controls a boot device might contain firmware that is used to connect the device to the system once the Option ROM is loaded.

資料來源:
http://blog.sina.com.cn/s/blog_4b265789010008fy.html
EFI Image綜述

1 則留言:

阿山的家 提到...

Dear 史丹利 你好:

我是傳識資訊的Mountain, 很高興有機會和你聯繫, 很想和你交個朋友, 因為看到你的網站感覺你也是嵌入式領域相關經驗, 所以和你聯繫

我們公司--傳識資訊 ( www.fitpi.com ),是一家專業的教育訓練單位,也是ARM與MIPS在台所授權的 教育訓練中心,我們的定位是針對企業用戶提供所需的課程訓練,我們的專長在嵌入式產品,網路,及通信的教育訓練,所以會依據企業的課程需求,尋找適合的兼任講師。

下列是我們目前所提供的課程, 提供給你作參考:
http://www.fitpi.com.tw/products/emb_sys/index.html

我們目前主要的課程領域是嵌入式Win ce, Linux及多媒體相關的課程, 想看看是否有機會可以配合

謝謝你

期盼與你交朋友的Mountain
我的e-mail: mountain[at]fitpi.com