2011年5月25日 星期三

PCIE ASPM

最近常在找PCIE ASPM register,所以寫下來避免自己忘記。
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.


3. 當Capability ID 為0x10時,Link Control Register就是在目前Capability的Offset+0x10為Link Control Register
     

4. Check Link Control Register bit[0:1]
   Bits              Definition
   00                Disabled
   01                L0s Entry Enabled
   10                L1  Entry Enabled
   11                L0s and L1 Entry Enabled

下面就舉個例子來看,比較容易清楚。
1.先找Capability List Pointer Register (offset 0x34), 此register 的值是0x60,表示Capability List 是從Offset 0x60開始。
   
2. 我們要檢查Capability ID是否為0x10,可以看到0ffset 0x60的值是0x01,代表不是PCIE Capability,所以我們要找Next Capability,而Next Capability在Offset 0x61 是0x68,
    同樣的Capaiblity ID 為0x05也不是PCIE Capability,所以要找下一個Capability為0x78.
    在Offset 0x78的值為0x10,代表是PCIE Capability ID,所以我們可以找到Link Control Register在Offset 0x88~0x89
    Check Link Control Register bit[0:1]為0,所以此PCIE Device ASPM 設定為 L0s and L1均為Disable




 
References:
  PCI Express System Architecture
  PCI Express 3.0 Spec

1 則留言: