追踨法蘭克

2012年5月8日 星期二

系統RESET的方法和差異性

我們在BIOS知道的RESET有三種:KBC RESET、PORT92、0xCF9 方法如下

1. KBC Reset: 對KBC(0x60/0x64 port) 下0xFE指令。

2. port 0xCF9 Reset: 對0xCF9 port 下 0x06、0x0E (在chipset spec會定義其Bit 設起時,Reset不同之處).
Bit 1決定是否作Reset.

Bit 2決定software reset or hardware reset而傳至CPU.
Bit 3決定是否Reset S3、S4、S5 state.
所以0x06和0x0E都是hardware reset.

3. port 0x92 Reset: 對0x92 port 的Bit 0 設1,會發出INIT# 16 PCI clocks的時間,來讓CPU做Initialization.

以上(1)和(3)都是做Software Reset,(2)可以做Software Reset、Hardware Reset、Global Reset. Global Reset是針對power loss 的情況下做的完整的chipset Reset (發生情況: A global reset will occur after 4 seconds if an acknowledge from the processor is not received.)


*補充: software reset、hardware reset、warm boot、cold boot的動作和定義

Software Reset: activating INIT# for 16 PCI clocks.(只對CPU做Reset)

Hardware Reset: hardware reset by activating PLTRST# and SUS_STAT# active for a minimum of about 1 milliseconds. (對CPU和大部分的Chipset做Reset)

Warm Boot: 在UEFI BIOS中是下 Software Reset的動作。在DOS按Ctrl+ALT+DEL就是warm boot.

Cold Boot: 在ACPI spec可以查到cold boot定義為從G3(mechanical off)、S5(G2)、S4開機都算是cold boot.

1 則留言:

  1. Hi 法蘭克大師,
    可以請教您如何對0xCF9 port 下 0x06、0x0E 來完成port 0xCF9 Reset的動作嗎?
    謝謝您!

    回覆刪除