小華的部落格: [我所知道的BIOS]->[Remaining POST Tasks] 11

搜尋此網誌

網頁

星期二, 10月 16, 2007

[我所知道的BIOS]->[Remaining POST Tasks] 11

除了之前所提的 tasks外,還有下列 main tasks是 BIOS POST會執行的:

[USB init]
=> initialize USB的部份.這方面的code幾乎是 kernel code,再加上少許的 chipset code(因為,chipset's USB controller是哪一種需要 customize, Ex. OHCI or UHCI...etc).

主要在 implement USB spec的部份(USB 1.1/2.0 and USB legacy). (天書也...沒看過...)

[KB init]
=> init KBC的部份

[HDD init]
=> 這是 locate IPL(Initial Program Load)的code.因為最終系統需要 load OS,而OS是存在 storage device中,因此需要讓storage....動起來 !

主要的工作有:
- 設定 chipset端的 storage controller(PATA or SATA)'s settings
- identify HDD
- config HDD by set-feature(<-設定 device端的 settings)

這樣一來,controller端與 device端有了 "相同的認知" 後,就可以 access HDD了 !

[ACPI]
=> 主要是將所有的 ACPI tables建至 memory中;讓ACPI OS可以 parse & config.

[Boot-to-OS]
=> 最後 BIOS's 工作是: invoke int19h(for Boot-strap) !此中斷服務程式會嘗試去找 boot device,並從中(storage)將 boot-loader 載入至 memory中;然後跳到 boot loader處,開始執行載入OS的工作 !


* 一但進入OS後,與BIOS會有關的....幾乎只剩 ACPI 了 !

BIOS不是雞肋 ^_^

4 則留言:

匿名 提到...

上班時間只能大概看了一下您的大作.
說真的..看了實在是很感動..
弟剛誇進來這個領域一個月..
很多東西都不甚了解..有機會..
真的希望可以好好請教一下..
嗯..晚上再上來看囉..
謝謝您的大力分享心得..

小華的部落格 提到...

歡迎你加入這個行業,有問題大家在互相討論吧^^

恰吉 提到...

想問你你在程式俱樂部問過的問題說~
有關IO TRAP中Phoenix services的方法
還有到底啥叫Phoenix services?
有TOPIC可以看嗎,跟INTEL的方式有什麼差別呢~CODE跟PATH都TRACE過了,想知道理論一點的東西說~
MNS:chagigi@msn.com

Joe 提到...

大大,請問您對USB部份的了解有多深?
想要在DOS 下去驅動USB Device,但對Host端的Program 沒什麼Idea..
可否給些建議?