【正文】
try Vector is a pointer that points to code inside an option ROM that will directly load an O/S. The BEV resides in a PnP option ROM Expansion Header. An example of an option ROM with a BEV is a PnP ISA ether controller. ? PnP Plug and Play is a term used to identify anything defined by the Plug and Play BIOS specification or the Plug and Play ISA specification. The term will typically be used to reference some device or behavior that is specific to PnP technology. BIOS Boot Specification Terms ? BAIDs 包括第一個軟驅(qū)、第一個硬盤以及 BIOS內(nèi)置所支持的設(shè)備, BIOS通過 int19來啟勱 OS ? Devices with PnP Expansion Header 需要有一個 Option ROM,并且有 55AA的簽名; OpROM將會被加載在內(nèi)存的C0000h~EFFFFh并且 2K對齊; ROM中帶有 PnP擴展頭,內(nèi)部含有重要的配置信息 ? Legacy IPL Devices 標(biāo)準(zhǔn) ISA卡,具有一個 Option ROM, 有 55AA的簽名; OpROM將會被加載在內(nèi)存的 C0000h~EFFFFh并且 2K對齊;有可能會 Hook INT19 BIOS Boot Specification IPL ? 當(dāng)系統(tǒng) BIOS識別或枚丼了所有的 BAIDs和 BEV設(shè)備后,需要確定的是選擇哪一個設(shè)備來啟勱,這就需要由 IPL Priority來決定; BBS – IPL Priority ? BIOS會將 IPL Priority存儲在 NV Memory中,當(dāng) BIOS調(diào)用 INT19時,會把優(yōu)先級讀取出來,按照順序迚行啟勱,當(dāng)一個設(shè)備啟勱失敗后會通過調(diào)用 INT18將控制權(quán)還給系統(tǒng)BIOS,然后嘗試啟勱下一個設(shè)備 ; ? Example ? 為了完全控制 IPL設(shè)備啟勱的順序,就需要控制 INT13的安裝順序,首先被安裝 INT13的設(shè)備,將會被分配到更小的硬盤號( 80,81…) ? An INT 13h Device Controller installs one or more drives into the BIOS’ INT 13h services by hooking the INT 13h software interrupt and chaining to the old vector. ? Each controller may install INT 13h support for one or more drives. ? When INT 13h is hooked, the old vector will be saved. ? A controller will only respond to requests which specify the drive number for which it has control, and will pass on requests to other drive numbers to the old vector. ? A controller may not know if it has any drives attached until it is called to install. If no drives are attached, then the controller should not hook INT 13h. ? The number of hard drives currently installed is stored in the BDA at address 0040:0075. When a controller installs support for additional drives, this location must be incremented by the number of drives that are to be added. ? A controller must install INT 13h support by using sequentially increasing drive numbers starting after the drives previously installed. For example, if two drives are already installed when the controller gets called, they will occupy drive numbers 80h and 81h. The next available numbers for the controller to occupy would be 82h, 83h, etc. ? A controller