相关寄存器

Power Management Capabilities(PMC)寄存器

该可以识别电源管理能力:

PCI Express 电源管理关闭 如何关闭pcie供电_PCIe

寄存器域

描述

Cap_ID

01h将链表项标识为PCI Power Management寄存器

Next Capability Pointer

提供Function的 PCI 配置空间的偏移量,指向Function能力列表中下一项的位置。 如果 Capabilities List 中没有其他项目,则该寄存器设置为 00h。

Version

011b表示支持1.2版本PCI Power Management Interface Specification

PME_Clock

0:不需要时钟产生PME#;

1:需要PCI时钟产生PME#;

RsvdP

保留

Device Specific Initialization(DSI)

1:function转换到D0-uninit状态需要特定初始化流程。

AUX Current

3.3Vaux辅助电源电流要求;

3‘b000:0;     3‘b001:55mA; 3‘b010:100mA;3‘b011:160mA;

3‘b100:220mA;3‘b101:270mA;3‘b110:320mA;3‘b111:375mA;

D1 Support

0:不支持D1;

1:支持D1;

D2 Support

0:不支持D2;

1:支持D2;

PME_Support

bit(27):PME#能够在D0状态内发起;

bit(28):PME#能够在D1状态内发起;

bit(29):PME#能够在D2状态内发起;

bit(30):PME#能够在D3-hot状态内发起;

bit(31):PME#能够在D3-cold状态内发起;

Power Management Control/Status(PMCSR)寄存器

该寄存器控制Function进入特定的工作状态。PMCSR寄存器如下:

PCI Express 电源管理关闭 如何关闭pcie供电_Data_02

寄存器域

描述

Power State

决定function当前的功耗状态和设置function要进入的状态。

RsvdP

保留域

No_Soft_Reset

1:指示设备从D3hot转换为D0;配置信息保留;

0:软件控制Power State以完成D3hot到D0转换,配置信息丢失;

PME Enable

1:使能PME#;

0:关闭PME#

Data Select

指示Data Register和Date Scale上报那个数据;

Data Scale

指示解释Date寄存器时的比例因子;

PME Status

1:发起PME#;

0:不发起PME#;

RsvdP

保留域

B2/B3 Support

1:当bridge被设置为D3hot,将关闭其第二级总线时钟;

0:当bridge被设置为D3hot,将移除其第二级总线时钟;

Bus Power/Clock Control Enable

1:使能总线功耗/时钟控制机制;

0:关闭总线功耗/时钟控制机制;

Data

上报状态数据,如功耗和散热。

 功耗管理控制流程

进入L1流程

    配置power state为D1,D2,D3,数据链路会进入L1低功耗状态,进入过程如下图所示:

PCI Express 电源管理关闭 如何关闭pcie供电_Data_03

    都是进入L1,但是他们的功耗应该有所不同。D1>D2>D3;实际可以通过不同程度的关闭serdes来实现不同的功耗。比如:D1时不关闭Serdes;D2时关闭Serdes的rx_path;D3时关闭Serdes的PLL。

    对于RC而言,进入L1不需要累计足够的credit来发送TLP;而EP则需要等到credit能够发送最长的TLP。

退出L1流程

    EP和RC都可以发起退出L1。当任意一端需要发送TLP,则需要发起退出L1.

进入L2/L3 Ready流程

   在任意D状态,PME_Trun_Off和PME_To_Ack握手完成后,Downstream必须利用PM_Enter_L23 DLLP申请进入L2/L3 Ready。

    PME_Trun_Off和PME_To_Ack握手参考PME机制。