转自: http://biosengineer.blogspot.com/2007/10/bios-remaining-post-tasks-11.html
除了之前所提的 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:[email protected]
大大,請問您對USB部份的了解有多深?
想要在DOS 下去驅動USB Device,但對Host端的Program 沒什麼Idea..
可否給些建議?