HasWell CPU PCIE Error 屏蔽的两种办法

在做PCIE卡设备热插拔,或者需要强行断掉PCIE卡的供电且不导致系统重启的情况下,HaswellCPU提供了多种方式。

方式一是利用PCIEPCIE AER capability的相关,屏蔽这些位可以防止上述操作导致系统重启;清除这些位后并打开屏蔽位后,就可以继续向CPU传递PCI的各种错误。下面分别讲述如何屏幕和打开错误使能位然后执行相应PCIE卡槽的操作。

1.      Disable AER

                               I.           Disable PCIE capability Devctl中的ce/nfe/fereporting;

                             II.           设置AER capabilityue/ce mask.

                           III.           PCIE卡的掉电、拔出操作

2.      Enable AER:

                               I.           Clear AER capabilityue/ce status;

                             II.           Enable AER capabilityue/ce report;

                           III.           Enable PCIE capabilityDevctl中的ce/nfe/fe reporting.

                           IV.           PCIE卡的上电、插入操作

 

方式二是利用SMI异常使能位。在需要屏蔽操作PCIE卡导致的错误和重启时,屏蔽SMI异常;在操作完成之后,再次使能SMI。具体步骤如下:

1.      Disable SMI:

参考507849_Haswell_EDS_vol2Page 1589

设置 offset 19c/1A0/1A4/1C8,亦即gnerrmask/gferrmask/gcerrmask/gerrctl 全局寄存器相关mask为置1。 具体请参加手册, 以gnerrmask为例:

Intel CPU屏蔽PCIE错误的两种方法_ SMI

2.      Enable SMI:

把上面相应的mask bit 都清掉。