| | 130 | |
| | 131 | [=#pcie] |
| | 132 | === PCIe Switch Temperature |
| | 133 | The PI7C9X3G606GP PCIe Gen3 switch used on the VeniceFLEX family (GW8xxx) has a fairly large power draw which varies based on active lanes, link speed, and internal die temperature. The power draw can range from about 2W up to 6W and the maximum operating die temperature is rated at 125C. |
| | 134 | |
| | 135 | Additionally the switch has the ability to determine unused links and put the ports into a lower power mode however this is not enabled by default. Enabling this can save approximately 800mW of power for example on a GW82xx baseboard regardless of what sockets are populated simply due to unused ports that are not routed to sockets. This can be enabled manually via 'setpci -s <bdf> 0x3cc.l=0x1' for bdfs of 2:01.0 through 02:07.0 but is done in the more recent Gateworks 6.12 and 6.18 kernels with a pcie fixup in the kernel: [https://github.com/Gateworks/linux-venice/commit/13911e036445a4a91ca6916f8b925e03e2856164 pci: PI7C9X2G608GP enable PCI power savings for empty ports] |
| | 136 | |
| | 137 | |
| | 138 | You can obtain the temperature of the die via a PCI register on the upstream port: |
| | 139 | {{{#!bash |
| | 140 | setpci -s 01:00.0 0x5d8.l=1 # request temperature |
| | 141 | sleep .1 # allow some time for the reading |
| | 142 | raw=0x$(setpci -s 01:00.0 0x5d8.l) # obtain the raw value |
| | 143 | raw=$(($((raw >> 8)) & 0xfff)) # shift off the bits |
| | 144 | pciet=$(( $((raw * 237700 / 4094)) - 79925)) # convert to millidegree C |
| | 145 | }}} |
| | 146 | |
| | 147 | |