今天看MCH Spec看到一個有趣的暫存器叫做 SKPD--Scratchpad Data Register ,因為實在是很有趣的一個東西所以自己就寫下筆記來紀錄一下。
這個暫存器的屬性是R/W,而他的說明是可以用來儲存資料的一個暫存器,長度要看Chipset,有些是16 bits 也有些是32 bits。
那這個東西是幹麻的呢? 嗯...Spec上沒說明清楚,不過我自己查了一些資料以及比較了一些用法,發現這個暫存器可以給 【任何人使用】,且"Platform reset"後"可能"不會被清除資料。
簡單的說就是任何人任何程式碼都可以把一些想要紀錄的資訊往這個暫存器去紀錄,至於寫進去的值是代表什麼意思就只有寫的人知道。
目前看到應用的時機有3個:
1. Memory init 後可以利用他儲存一些狀態值,然後給下一次開機時檢查
2. 紀錄是否是Warm boot ,例如你可以在某個點去設定這個暫存器,然後在FFFF_FFF0一進去的點去判斷,假如此暫存器不為0 則在做一次CF9h 的Full reset,以避免一些問題。
3. ME Driver
以上都是自己猜測的,所以實際的用法還是要請教懂的人啦~~呵呵!
Reference
www.google.com
www.Intel.com