最近遇到一些有關SCI的問題,也順便釐清SMI & SCI的一些觀念,故再此做一個筆記.
SMM is entered via the SMI (system management interrupt).
SMI - System Managment interrupt
SCI - System Control interrupt

1.SMI 觸發會使CPU進入SMM mode,而BIOS會把SMI handle放在SMM位置(SMRAM),

進入SMM mode之後會去確認是要執行那一段handle程式,當全部都處理完了會有一個指令

"RSM"叫CPU離開SMM mode或是使用reset離開.

SMI-->SMM mode-->BIOS SMI handle-->RSM or reset

 

2.SCI 觸發是讓OS去處理interrupt,所以SCI觸發後CPU會去找IDT(附註1),通常是指向驅動程式

   (ACPI.SYS)(附註2),然後ACPI.SYS再去挖出相關ASL去執行.

SCI-->OS Acpi driver-->ASL-->?(看是需要做那些事)

 

當初懷疑SCI的由來所以有去確認一些細節,在ICH Spec會有一個register(ACPI Control register)

會去選擇map那一個IRQ!!如果沒有APIC 就是IRQ 9,10,11選擇(參考ICH9),如果有APIC就從

IRQ 20,21去選擇.

至於什麼時間發SMI或SCI要看是否進入ACPI模式(OS)!!只要進入ACPI就是發SCI,在DOS(APM)就是發

SMI,但是在OS底下也是可以發SMI讓CPU進入SMM mode執行SMI handle......(未完待續)

(2010.05.06)補充

要在ACPI底下發SMI有下列二種方式:

1. 使用南橋(SB) B2H

    B2H是SB預設的一個Port可以用來觸發SMI.

2. 使用IO Trap

     IO Trap是在ACPI必須要存取的Port設定到這個暫存器,只要被指定的Port有被存取的動作就會去

     觸發SMI,就類似做一個陷阱讓CPU去處發SMI.

至於觸發SMI後要做些什麼事,就在寫SMI Handle去處理囉!!

 

http://tw.myblog.yahoo.com/jw!0riGYLKeGRjo1.6L_8j.6k6g0g--/article?mid=21&sc=1#30 

 

文章標籤
全站熱搜
創作者介紹
創作者 cj6m3 的頭像
cj6m3

勇ㄅㄟㄅㄟ胡言亂語堂

cj6m3 發表在 痞客邦 留言(0) 人氣(8,193)