平台環境控制介面(Platform Environmental Control Interface;PECI)
Platform Environment Control Interface, abbreviated as PECI, is a thermal management standard introduced in 2006 with the Intel Core 2 Duo microprocessors.
PECI以單線序列式匯流排來支援DTS(Digital Thermal Sensor),相對於溫度二極體(Thermal Diodes;TD)來說,這是一個很重要的進步,而且它以與CPU Vtt相同的電壓來操作。CPU中的DTS會透過PECI介面來報告晶片的溫度,或對內部的風扇控制系統提供溫度數值。
The PECI bus, allowing access to this data from chipset components, is a proprietary single-wire interface with a variable data transfer speed (from 2 kbit/s to 2 Mbit/s).
但在實際應用上,外部晶片都是由 SMB 讀資料,因此,都需要外掛一顆PECI 轉 SMB 的Chip, 後來的 CPU都改以SMB 來讀資料。
一般常見的應用,像是:
BMC acts as a PECI over SMBus master and the SoC SMBus-for-PECI controller acts as a slave PECI proxy controller.
The PECI commands are encapsulated in SMBus packets sent to the CPU.
在CPU設計上, 會將讀跟寫,做在兩個位置上,BMC 透過這兩個位置,進行讀寫動作
The SMBus PECI device is assigned two SMBus Slave Addresses.
• 4Bh = Default SMBus Slave Address for all SMBus Read transactions
• 4Ch = Default SMBus Slave Address for all SMBus Write transactions
------------------------------------------------------------------------------------------------------
範例: RdPkgConfig() PECI Proxy Block Write
0x98/2= 0x4c (device slave address)
------------------------------------------------------------------------------------------------------
範例: RdPkgConfig() PECI Proxy Block Read
範例: CPU Microcode Update Revision
CmdData[9] = 0x05; // byte #9 - parameter LSB
CmdData[10] = 0x00; // byte #10 - parameter MSB (coreID 0-15)
ret = i2c_master_write( i2cDev, (0x98 >> 1), Cmd, cmdSize);
範例: MCA Error Source Log
CmdData[9] = 0x05; // byte #9 - parameter LSB
CmdData[10] = 0x00; // byte #10 - parameter MSB (coreID 0-15)
ret = i2c_master_write( i2cDev, (0x98 >> 1), Cmd, cmdSize);
------------------------------------------------------------------------------------------------------