我們在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.
Hi 法蘭克大師,
回覆刪除可以請教您如何對0xCF9 port 下 0x06、0x0E 來完成port 0xCF9 Reset的動作嗎?
謝謝您!