BIOS Boot Specification(一)

來源:互聯網
上載者:User

1.0 Introduction
1.1略
1.2 相關文檔
      plug and paly bios spec
      Hardware Design Guide for microsoft windows 95
      Enhanced disk drive specification
       "EI Torito" Bootable CD-ROM Format specofocation
        pci local bus specification
1.3 目的
        這個規範的目的是描述一個方法,通過這個方法BIOS可以識別所有在系統中的IPL(initial program load)裝置,按照user選擇的順序給他們排序,然後遍曆裝置允許啟動。因為PNP bios spec增加了BIOS在啟動過程中的要求(比如更多的可啟動裝置:

CD-ROM,network,remote boot,PCMCIA等),所以BIOS必須變得更加”智能化“。這個規範最重要的是定義了一個啟動方案,這個方案是很靈活的,它允許機會所有存在的IPL裝置去啟動,而且包括了許多將來的IPL Devices。

1.4 Terms
為了避免混淆和能夠與PNP SPEC保持一致,一些術語定義被列在下面:
ATA(Advanced Technology Attachment) -先進技術串連裝置,也被認為是一個IDE Drive,是一個有內建介面的HW。

ASCIIZ-一個ASCIIZ字串是一個由ASCII字元組成並以NULL結尾的字串。

BAID(BIOS Aware IPL Device)-可是任何可以啟動OS的device,不過要求BIOS有詳細的CODE來支援它。比如:the first floppy drive,the first hard drive,ATAPI CD-ROM,PCMCIA,embedded network adapter等。

BCV(Boot connection vector)-一個option rom裡擴充頭裡的指標,指向option rom裡的初始化裝置的代碼。並且可以被INT 13H hook。(具體可以看PCI option ROM部分詳解),是一個3byte的指標。帶有BCV的option ROM比如PNP ISA SCSI

Controller。

BDA(BIOS Data Area)-在RAM裡的一塊資料區段,主要用於BIOS 管理外設和資源的,開始地址:0040H.

BEA (Bootstrap Entry vecdor) -一個指向option rom的指標,它是直接載入OS,比如PNP ISA ETHERNET CONTROLLER

BIOS-略

Boot device-在載入OS前必須初始化的裝置:輸入裝置(keyboard)、輸出裝置(display),IPL device。一個初始化程式載入裝置是a boot device中的一員。

CDR(Conflict Detection and Resolution)- 這是一個方法,pnp bios通過這方法首先檢測pnp cards的資源要求,然後用一種無衝突的方式分配資源給他們。

DDIM(Device Driver Initialization Model)-是一種option rom初始化方法,擴充rom首先拷貝到與之相應的映射ram,然後它的初始化向量被調用,同時映射RAM置於可寫狀態。當擴充rom(拷貝到RAM中的code)完成初始化,它將會丟掉在RUN-Time時

不需要的code(也就是初始化code)。最後返回,BIOS重新獲得control,這個ROm是防寫保護的。

DV(Disconnect Vector)-是一個指標,也是指向擴充rom裡的一段code,這段code主要是BCV指標指向的code完成調用後執行clean-up工作的。這個指標也在PNP option rom擴充頭裡。

IPL Device-任何可啟動OS的device,在standard ATmachines中,指的是floppy drive 或者是hard drive。

Legacy Caed-指一個標準的ISA Card,沒有pnp 相容配置,也沒有擴充頭(expansion header)

NV(Non-Volatile)-非易失性MEM,是一種斷電後仍然可以保持內容不丟失的MEM,在pc機上最常見的類型NV memeory是CMOS(儲存system configuration information)

O/S-這個好理解塞,被一個選擇啟動的IPL Device載入的作業系統。

PFA(PCI Function address)-是非配給一個pci function的唯一地址,由function number、device number、bus bumber組成。

PnP(plug and paly)-標示被PNP BIOS和PNP ISA SPEC定義的東西。比如:PNP DEVICE,做PNP 行為啊。

PNP Card-這類卡的option ROM 裡含有一個PNP expansion Header的結構。

POST(Power-on self test)-這是屬於bios的部分,是指pc一上電BIOS做初始化pc's hw 和載入os的動作。

SETUP-這也是BIOS裡的東西,嚴格來說是一個program,當bios初始化時,你可以按快速鍵或者說是熱鍵進入的畫面。setup允許你去設定、配置system,也可以選擇IPL 的優先權。

<以上就是一些術語的解釋>

2.0 Overview
2.1 介紹
BIOS BOOT SPEC主要定義了一些bios裡的特點:bios可以create和maintain 所有在系統裡找到的IPL device並且把他們以鏈表的形式儲存在NV memory裡面。IPL device 主要是這三種類型:BAID,PnP Card和Legacy。但是只有前兩種可以被

枚舉,Legacy device因為一些原因不被支援:第一,這類device總是控制啟動過程使他們看起來不友善(有就是說它拿到控制權就不容易交出去)。第二,這類裝置作為IPL Device卻沒有提供一種方法去識別他們自己。第三,BIOS不能對存在幾個Legacy

IPL Device去選擇其中一個來啟動。

BIOS BOOT SPEC對於啟動順序提供了一個IPL Priority的方式,這個IPL Priority 是一個使用者在setup裡自訂的順序。啟動命令是很簡單的:boot C Then c or 反過來也行(當然這些device必須支援)。當然這些IPL device的數量可能每次開

機都是變化的,每次開機系統都會枚舉在系統中的all IPL Devices。

BIOS BOOT SPEC 還定義了BCV(Boot connection vector,擴充記憶體裡的一個指標)優先權。使用者在setup裡設定INT 13H device controller相關的一個鏈表。這些controller可以被調用去安裝int 13h drive。

假如一個IPL device載入os失敗,bios將會收回控制權並且去從另外一個IPL Device啟動載入,直到所有IPL Device被試完為止。然後BIOS顯示一條資訊表面OS沒有找到,等待使用者按鍵,然後再調用int 19h。這個方式讓BIOS更加智能化。

bios boot spec主要圍繞PNP 和non-pnp系統的啟動為主的。在legacy system中這個過程是相對簡單的多,因為它只支援BAIDS,它不需要有支援動態 IPL DEVICE配置和枚舉的能力,也不需要支援PNP CARD。這是因為它的IPL DEVICES數目是

不會改變。

3.0 IPL Device
an IPL device 可能是任何可以去載入和執行一個OS的裝置。包括floppy drives,CD-ROM,PCMCIA,controller/card,pnp cards, legacy card,將來可能還會包括serial poarts,parallel ports等等。ipl device被分為三種類型:BAID , Legacy device, PnP

card。PnP card又分為兩種:BCV Device和BEV device(兩種指標類型的裝置)。

一個IPL device的關鍵特點是,當它載入OS失敗的時候,它會返回到BIOS(同時帶上這個錯誤)。BBS裡規定INT 18H作為一個啟動失敗的恢複vector。比如,一個PnP ISA network card 被配置使它從網路啟動。D但是網線卻沒有接入,網卡

的option rom就會發一個訊號給BIOS,通過invoking int18h,它不能啟動。

一個Legacy card的option rom 在初始化階段被int19h調用,它是可以控制啟動過程的,但是如果被INT 18H hook,啟動失敗的時候它不能把控制權給BIOS。所以將來帶有PNP expansion header 並且他們的option rom支援INT 18H的Legacy

boot devices是被推薦的。

3.1.1 IPL TABLE
每一個BAID 或者BEV 裝置在IPL TABLE中必須要有相應的進入點。一個典型的PC機的IPL TABLE應該有兩個BAID 進入點:一個是給磁碟片A: 一個是給硬碟 C:,並且有一個給BEV device,IPL TABLE的例子可以參考4.1節。

儲存在IPL table裡的資訊有:識別資訊、指向描述字串的指標、指向一個handler(一個程式初始化用來載入O/S)。(IPL Table and BCV Table詳見附錄A)

3.12 product name string
PnP bios spec中定義:在PnP Expansion Header中有一個識別字串。這個字串對識別產品名稱和廠商名稱是有意義的。這個product name string的顯示對使用者去是被這個device來說是很重要的。雖然說規定這個字串以NULL結尾,但是一

般來說只有前32個字元(byte)是有意義的,超過32byte的字元是不會顯示的。

3.2 BAIDs
BAID就是說這類裝置首先是可啟動裝置,而且在BIOS code中有詳細的對應code支援他們啟動(first floppy drive,first hard drive。。)。a BAID 是可以綁定唯一的bootstrap的,因為在BIOS 的INT 19H 服務程式裡已經包含了對它的支

持(具體可以查閱關於HD/Floppy boot相關資料)。BAID裝置比如說有:ATAPI相容的CD-ROM DRIVE, PCMCIA card/controller、BAIDS 沒有option ROM ,沒有詳細的code嵌入bios的話它們是不能工作的。

每一個BAID都將獲得一個entry在IPL Table中,this entry 包含: device type ,device sub-type,一個指向一條描述字串的指標,一個指向BIOS中的一個程式碼片段code(the code will attempt to boot from the device)。INT 19H

handler
將會讀取這個表來擷取資訊,使任何其不用知道device type 而從其啟動。這個表由已連續的資料結構型的數組組成,而每一個數組剛好和一個具體的IPL Device對應。
(也就是說IPL table中由許多數組構成,這些數組又是由各種資料結構體構成,而每一個數組對應一個IPL device)

補充上一段-NOTE: 只有the first floppy drive和the first hard drive才會被認為IPLDevice。system不能從其他的drives啟動的原因是the boot sector code詳細地址只有:00h for floppy and 80h for hard driver(這個你可以去收集關於從

hd/floppy 啟動的資料)。附錄D介紹了推薦改變O/S boot sector應該解決這個問題。

3.3 Device with PnP Expansion Header
所有的帶有option ROM 的IPL device必須含有一個有限的option rom header,這個option rom header的位址範圍:c0000h-EFFFFH之間,並且以2kb為單位(不知是否這樣理解?原文:resides between system memory addresses C0000h

and EFFFFh on a 2k boundary)且以55AAh開頭。一個device只有帶有PnP option rom header才能被控制。而它的地址可以在option header的offset 1AH出查到,對於配置device是很重要的。還含有指標(BCV/BEV)。

BEV裝置:network card,BIOS從它啟動直接做一個far call到它的bev。假如啟動失敗,就執行INT 18H恢複控制到BIOS。這種行為像BAID。

BCV device:SCSI controller。他不是位元組引導啟動的。恰恰相反,它僅僅是把它的driver加到system中去,並把drive number計入。

3.4 Legacy IPL device
它也有option rom,他與PnP device的區別是沒有一個PnP expansion header在它的option rom裡。

閱讀全文

類別:Bios 查看評論

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.