2009年2月24日 星期二

X86 Reset concept

[Reset Control Register]
在IO port CF9h,當RST_CPU bit被設為1時,會有SYS_RST bit來判斷是要做hard or soft reset。

Soft reset: SYS_RST bit = 0, 南橋會下拉CPU INIT# 大約16個PCI Clock讓系統重啟。

Hard reset: SYS_RST bit = 1, 南橋會下拉PLTRST# and SUS_STAT#去reset platform上的devoce e.g., SIO, FWH, LAN, Processor, etc. 然後會視FULL_RST bit來判斷是否驅動SLP_S3#, SLP_S4# and SLP_S5#,然後soft off,就是關機。

[KBC reset/port 92h bit0]
結果是與soft reset一樣,南橋會下拉CPU INIT# 大約16個PCI Clock讓系統重啟。

[Ctrl+Alt+Del]
這種方法「基本」是在「DOS」下有效,教課書上常稱為"熱啟"。鍵盤中斷會hook住你的按鍵,Hook就是BIOS的INT 09h軟中斷,當你按下這三個鍵時,就相當於Far jmp到 F000:FFF0處。

沒有留言: