bloggerads

2014年3月23日 星期日

Bios Boot Spec

以下的內容僅適用在Legacy Bios, 早期的Bios (Legacy Bios)都是在軟體中斷下作文章。在UEFI的架構下很多都已不適用了。但因為CSM模組一直都還在,也就是還有人在使用所以是值得學習和了解的。

IPL:
  •  IPL 指的是可以啟動載入並執行作業系統的裝置。他包含了像是 Floppy, Hard drives, CD-ROM, PCMCIA conrtollers/cards, PnP Cards, Legacy cards 甚至像是 Network, Serial port, Parallel port 等等可開機的實體或虛擬裝置。
  •  所有的 IPL 可以被歸類成下列三種
  •  1. BAID
  •  2. PnP Card (可再細分為 BCV 和 BEV 兩種裝置)
  •  3. Legacy IPL Device
int 19h: 選擇用哪種裝置開機 (如光碟機, 硬碟, 網卡等等)
  •  是 80x86 的 BIOS 中斷之一(又稱冷開機中斷),  
  •  This vector is taken after the POST in order to attempt to load and
  •  execute any bootstrap code on diskette or hard disk.
  • 在呼叫之後,它會根據 IPL Priority 中的裝置,呼叫其 Boot handler
BAIDs:
  •  A BIOS Aware IPL Device is any device that can boot an O/S, but requires the BIOS to have specific code to support it.
  •  (No Option ROM, 通常啟動的程式碼內建於 INT 19h (BIOS Bootstrap loader) 的服務之中)
BEV:
  •  A Bootstrap Entry 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. (for LAN )
BCV:
  •  A Boot Connection Vector is a pointer that points to code inside the option ROM that will perform device initialization, detect if a peripheral (such as a SCSI hard drive) is attached, and optionally hook INT 13h. 
IPL table (boot type): (int 19h)
  •  Floppy
  •  HDD → BCV table inside
  •  CD-ROM
  •  BEV #1
  •  BEV #2
BCV table (enumerate storage): (int 13h)
  •  SATA/PATA 
  •  Cards/EMMC
  •  USB
  •  BCV #1
  •  BCV #2

沒有留言:

張貼留言