http://www.mem.com.tw/article_content.asp?sn=0701020591
L0 – All PCI Express transactions and other operations are enabled.
L0s – A low resume latency, energy saving “standby” state.
L1 – Higher latency, lower power “standby” state. (optional)
L2/L3 Ready – Staging point for L2 or L3
L2 – Auxiliary powered Link deep energy saving state.
L3 – Link Off state. Zero power state.
LDn – A transitional Link Down pseudo-state prior to L0
ASPM control register 是存在PCIE Link Control Register。至於如何找到Link Control Register。
1.先找到PCIE Capability List Pointer Register ,而此Register 存在PCI Congfiguration Registers Offset 0x34
2.檢查Capability ID ( (1st byte))是否為0x10,如果不是,讀取Next Capability Pointer Register (2nd byte ),讀取下一個Capability.
2.檢查Capability ID (1st byte)是否為0x10,如果不是,讀取Next Capability Pointer Register (2nd byte ,讀取下一個Capability.
[ 精選文章 ]
自行車 入門 Escape 3 , Snap 21 , Revel
最近周末想運動 , 平日想通勤 , 想買台自行車 , 把自己找的資料跟大家分享 , 如果你是玩家級的 就不用看了 這是給跟我一樣的新新新手 參考的 騎車半年後的補充: 如果你有把握你是真的有時間有興趣會一直騎,建議還是存點錢買好一點的彎把公路車, 或是可以考慮買2手的自...
2016年5月3日 星期二
2016年2月3日 星期三
UEFI SHELL Reboot counter
Startup.nsh
========================
echo -off
set StartupDelay 0
#if Counter is not exist , set to 0
if exist %Counter% then
set Counter 0
endif
#check Counter from 0-19999
#About 13 sec in each reboot , Can cover 72 HR long run test
#if match , set myFlag , Counter will +1 in next loop
for %a run (%Counter% 19999)
if %Counter% == %a then
set myFlag 1
else
if %myFlag% == 1 then
set myFlag 0
set Counter %a
goto Leave_For
endif
endif
endfor
:Leave_For
echo Loop Cycle = %Counter%
reset
echo -on
========================
echo -off
set StartupDelay 0
#if Counter is not exist , set to 0
if exist %Counter% then
set Counter 0
endif
#check Counter from 0-19999
#About 13 sec in each reboot , Can cover 72 HR long run test
#if match , set myFlag , Counter will +1 in next loop
for %a run (%Counter% 19999)
if %Counter% == %a then
set myFlag 1
else
if %myFlag% == 1 then
set myFlag 0
set Counter %a
goto Leave_For
endif
endif
endfor
:Leave_For
echo Loop Cycle = %Counter%
reset
echo -on
2015年11月12日 星期四
Windows 亮度調整 ACPI
==> BCL/BCM在WDDM1.2後就沒效了
如果 BCL 沒被跑到 , 先檢查 VBIOS Seting
-> Panel #x -> BackLight Control Parameters->Inverter Type 必須選為 None/External
WDDM 的架構上是 monitor.sys會去問 WDDM video driver, 如果不 support 的話就會走標準的 ACPI standard: _BCM, _BCL, _BQC.
在 XP或Linux等其他沒有 WDDM video driver 就會走 ACPI 標準 interface
Brightness Control in WDDM
https://msdn.microsoft.com/en-us/library/windows/hardware/Dn653987.aspx
如果 BCL 沒被跑到 , 先檢查 VBIOS Seting
-> Panel #x -> BackLight Control Parameters->Inverter Type 必須選為 None/External
WDDM 的架構上是 monitor.sys會去問 WDDM video driver, 如果不 support 的話就會走標準的 ACPI standard: _BCM, _BCL, _BQC.
在 XP或Linux等其他沒有 WDDM video driver 就會走 ACPI 標準 interface
Brightness Control in WDDM
https://msdn.microsoft.com/en-us/library/windows/hardware/Dn653987.aspx
![]() |
Figure 1. WDDM Brightness Control Architecture in Windows Vista
|
2015年6月8日 星期一
ACPI 隱藏 USB 裝置 , Win 10 WebCam 鏡像顯示 ( Webcam Mirror )
Win10 Webcam 若為前鏡頭 須為 鏡像顯示 (跟照鏡子一樣)
(1)
Camera的Position要設為Front,而不是Back,
Front代表Camera放在螢幕的前方(前置鏡頭),Back為放在螢幕的後面(後置鏡頭),
所以要Mirror的話需設為Front,如下ACPI Spec描述:
6.1.8 _PLD(Physical Location of Device) 欄位描述 bit 67~69:

也就是Code的位置:
若設為0x60:0110 0000
=>所以為Front (成像Mirror)
若設為0x68:0110 1000
=>所以為Back (不會Mirror)
(2)
Code的架構上需新增宣告一個WCam Device且需掛在USB
port(PRT3)底下才會有效,而不能讓Device(WCam)與Device(PRT3)平行
例如以下有效的描述:
Scope(\_SB.PCI0.EHC1)
{
Device (RHUB)
{
……
Device (PRT3) //EHCI1
Port3
{
……
Device(Wcam)
{
…… <=把上面的重點1修改在這邊
}
}
}
}
例如以下無效的描述:
Scope(\_SB.PCI0.EHC1)
{
Device (RHUB)
{
……
Device (PRT3) //EHCI1
Port3
{
……
}
Device(Wcam)
{
…… <=即使把重點1修改在這邊也不會有效,需將Wcam掛在PRT3底下,而不能與之平行
}
}
}
(3)
另外根據實驗,宣告_PLD欄位方式可以有下列2種,擇一宣告即可
(方式1)
Name(_PLD, Buffer(0x10) {
…….
})
(方式2)
Method(_PLD,0,Serialized)
{
Name(PLDP, Package(){
Buffer (0x10) {
……
}
})
Return
(PLDP)
}
另外Buffer大小,宣告Buffer(0x10)或Buffer(0x14)都可以,不會影響
(1)
隱藏USB device: (1)USB Camera (2) USB Bluetooth
如下圖已隱藏:
Win10 -> Control
Panel -> Hardware and Sound -> Devices and printers
EX,要把USB Optical Mouse在這裡hidden,則要滿足下面ACPI 2個條件
(1)
ACPI spec
_UPC->connectable要設0:
(2) ACPI spec _PLD->User Visible設為0:
Device (RHUB)
{
……
Device (PRT3) //EHCI1 Port3
{
Name(_UPC,Package(){
0x01,
0xFF,
0x00,
0x00})
Name(PLDP, Package(){
Buffer (0x10) {
0x81,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x69,
.....
}
}
}
只要把紅色部分 0x01改成0x00、0x69改成0x68即可hidden
詳細資料請參閱 ACPI SPEC
訂閱:
文章 (Atom)