2010年4月6日 星期二

筆記-2


System Shutdown


[轉貼]小華的部落格



像是某些BIOS中會使用到關機的地方就是在Setup Menu-->Exit-->Shutdown 選項,而這個地方的BIOS code 就可以利用EC Cmd或是PM Register來達到關機的目的。
另外在進入作業系統後我們也可以透過上面的方式來強制關閉系統,所使用的方式就是利用PM Control Register。



; V10  Intel Tigerpoint
.model tiny
.486
.code
.startup
mov ax,3c05h ;關機,參考下圖
mov dx,1004h ;PMBase+04h(ACPI的PM1a_CNT_BLK,在FADT裡)
out dx,ax
jmp $ ;好像是呼叫自已@@
end
;還不會寫ring 0程式,先在DOS跑 =.=





ref:
小華的部落格



透過 port CF9h 來shutdown/reset


[轉貼]南狼的個人空間
;Hard Reset
mov al, 6
mov dx, 0CF9h
out dx, al
jmp $

;關機。看你的機器的做法,針對SLP_S3#,SLP_S4#,SLP_S5#的處理:
;(自已try…只有reset,不會關機啊@@)
mov al, 0Eh
mov dx, 0CF9h
out dx, al
jmp $



圖.V10,Intel Tigerpoine


(spec裡提的full reset、Hard reset、soft reset目前還不知道其中的差異)
還有KBC Reset、PORT 92h、Ctrl+Alt+Del等方法。

更新~~
根據seanchang(H)大的說法:
Intel 的CF9h
06h 表示發 PCI reset + CPU only reset.
0Eh 表示要發 Pwrgood reset + PCI reset + CPU only reset.
ref:
1. 南狼的個人空間
2. 程式設計俱樂部

沒有留言:

張貼留言