最近很少更新部落格,都被一些網友說"小華已經很久沒更新了"...所以就先上來更新些文章QQ..
先說說Cx State 在BIOS端是怎麼跟CPU還有ASL code甚至是SetupMenu串再一起的.
首先,一般BIOS會在SetupMenu中建立出一些item來控制Cx State的Enable/Disable,這部分會因為各家BIOS在SetupMenu上的做法不同而有所不同,但是你只要知道一個東西! 就是一定會有一個地方儲存好SetupMenu上選項內的設定值. (Ex: CMOS/EFI Variable...)
接著,在PPM 的相關 Reference code那邊 (一般都是Ixxel的CPU的PPM reference code)會去參考SetupMenu內的設定值來組態CPU內部的MSR暫存器,至於他是如何得到SetupMenu的設定值又會因為不同的BIOS而有所不同,像是EFI就可能透過Policy來得到,所以要有人把SetupMenu的值放進去Policy內,這樣子Reference code才能參考SetupMenu的選項來組態MSR!
當這邊在一般組態MSR時,他會一邊修改Acpi Table! 例如你想關閉C2/C3,大家都知道去ACPI Table把值改成>100 或是 > 1001就可以了,所以這邊的Reference code會去參考你的SetupMenu的設定值來決定要不要修改ACPI Table內那個回報給OS的值!
其他的部分有牽扯到ASL code的部分我可能就不明說了,請大家搜尋CFGD這個值,看看他在哪邊被放進,然後ASL code為什麼要判斷他! 追個一遍就清楚了^^Y