Note: Reset Entry Phoenix Legacy BIOS

當 x86 的CPU被Reset的時後, 會設定PC(CS:IP, Code Segment:Instruction Pointer) 為 F000:FFF0h, 因此x86系統開機所執行的第一個指令由此而起

在Phoenix Legacy BIOS 這個位址被取名為 BIOS_RESET_ENTRY

F000:FFF0  BIOS_RESET_ENTRY

Phoenix在這里埋進一個Jump 指令跳轉到 F000:E05Bh,取名為 xtBiosReset(XT compatibile address), 這里又跳轉一次, 跳到 postBiosReset 這個 proc的位址, 才開始進行BIOS的POST(Power On System Test) 程序

更正.

Post 完這篇, 逛了幾個討論板有看到跟我老舊記憶不同的地方, 經過查證實際的ROM Files, 有Bootblock 的BIOS一開始並不是BIOS_RESET_ENTRY, 接 F000:E05Bh, 這段是Shadow BIOS 後才會出現在RAM的指令.

然後x86 在進入80386 (IA32)後, RESET後的實際PC 為 FFFF_FFF0H 就是2^32-Fh 的位址(Ref. Section 8.1.4,  IA32/IA64 Software Developer’s Manual Volume 3A), 在 Mobile Intel 945 Chipset 中 Figure 13. PCI Memory Address Range, 描繪了一個系統記憶體配置, 該Chipset 支援最大 2MB的Flash ROM空間, 從 FFE0_0000h – FFFF_FFFFh.

但是實際接上 BIOS的應該是South Bridge 例如 ICH7 系列, Boot BIOS 的接法有三種, 透過GNT5#/GPIO17 (bit 11) 與 GNT4#/GPIO48 (bit 10) 決定,有 SPI, PCI, LPC (Ref. Section 7.1.54, ICH7 Datasheet )

Ref. http://www.programmer-club.com/pc2020v5/forum/ShowSameTitleN.asp?URL=N&board_pc2020=assembly&id=5188

Mobile Intel® 945 Express Chipset Family Datasheet
廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: