cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
calc
Token Ring
Posts: 94
Registered: ‎12-01-2016
Location: US
Views: 3,279
Message 11 of 91

Re: M900 Tiny: UEFI Bug - M.2 NVMe SSD & 8260 WiFi - ASPM disabled - Much hotter temperatures (t


@BiggAl wrote:

Over in the Gaming forum, a Y900 desktop (Sky Lake) with a Samsung 960 M.2 512GB in a built-in slot, is running between 26 and 29C.   It does have a dual front fans, but temps are lower than I expected, if ASPM is disabled. 


Does the Y900 use the same UEFI as the m900 Tiny? As far as I can tell it doesn't appear to do so. That temperature range sounds about right for ASPM being enabled as well.

 

The ThinkPad Yoga 260 is also Skylake and as shown in my previous post runs at proper temperatures and has ASPM enabled.

Red Hat - SSME
ThinkStation P320 - ThinkCentre m900 Tiny - ThinkPad P50 - ThinkPad Yoga 260
calc
Token Ring
Posts: 94
Registered: ‎12-01-2016
Location: US
Views: 1,760
Message 12 of 91

Re: M900 Tiny: UEFI Bug - M.2 NVMe SSD & 8260 WiFi - ASPM disabled - Much hotter temperatures (t

The engineering support contact told me that he had the engineering team give him a modified bios that allowed him to adjust ASPM settings and that changing the setting which I believe he was changing 'ASPM Support', as pictured below, did not actually work. If true then I suspect the problem is broken ASPM init code in UEFI itself instead of just being disabled as previously thought. In any case it appears its supposed to be in 'auto' mode instead of 'disabled' by default, which does not work. I'm going to try taking a look at the IdeaCentre Y900 UEFI, which is also skylake, and see how it differs, since there are reports that sound like it works fine. Maybe I'll get lucky and spot the problem easily.

 

Update: The Y900 setup configuration looks roughly the same as the m900 Tiny which also points more in the direction of broken PCIe ASPM init code instead of just a hidden config option being the problem.

 

aspm-e.png

Red Hat - SSME
ThinkStation P320 - ThinkCentre m900 Tiny - ThinkPad P50 - ThinkPad Yoga 260
calc
Token Ring
Posts: 94
Registered: ‎12-01-2016
Location: US
Views: 1,745
Message 13 of 91

Re: UEFI Bug - m900 Tiny - 8260 WiFi - NVMe SSD - ASPM disabled - Much hotter temperatures


@calc wrote:

I ran Firmware Test Suite and noticed that there is a table in ACPI called 'LUFT' which appears to be an executable of some sort that has a way to enable ASPM but I don't know how to actually run the program or how it is exposed to the system itself.

 

Anyone happen to know?

 

For anyone interested in this previous comment it appears LUFT may be related to the setup configuration as mentioned in my more recent post. It can be viewed and modified in AMIBCP but to actually do anything useful with the resulting bios you would need to do some tricks as the protected range registers block flashing an unsigned bios. If you aren't very familar with hardware you probably don't even want to try. The following explains in fairly gory detail about how it all works.

 

Advanced x86: BIOS and System Management Mode Internals SPI Flash Protection Mechanisms

 

If the m900 Tiny hadn't already killed one of my 1TB NVMe drives, which cost nearly as much as the whole system, I probably wouldn't even bother with it either. Where there's a will there's always a way. Smiley Mad

Red Hat - SSME
ThinkStation P320 - ThinkCentre m900 Tiny - ThinkPad P50 - ThinkPad Yoga 260
calc
Token Ring
Posts: 94
Registered: ‎12-01-2016
Location: US
Views: 1,728
Message 14 of 91

Re: UEFI Bug - m900 Tiny - 8260 WiFi - NVMe SSD - ASPM disabled - Much hotter temperatures

I noticed that I did not clearly document the fact that the UEFI engineering team intentionally disabled the ASPM support. This can be seen via lspci under Linux, there is probably a similar utility to view the PCI registers under Windows as well.

 

Notice under LnkCap (Link Capability) 'ASPM not supported' this is due to turning off the bits in the register that allow ASPM to work at all. ASPM has been supported by the underlying hardware from the beginning of PCIe as I understand it, this is NOT A NEW FEATURE. It can not be turned back on after UEFI turns control of the system over to the operating system either. On a system with ASPM support properly enabled in LnkCap you can turn off/on ASPM in the operating system via LnkCtl (Link Control) register if you want. So in simplified terms the engineering team made the hardware say it does not support ASPM at all (capability) instead of just turning it off the proper way (control). I think this may be a bug in the UEFI init code as the Setup Configuration page shows that it should be enabled "auto" as noted in earlier comment picture. The support contact also tried changing it from "auto" to "L0s" and "L1" which didn't have any effect either, leading further to the premise that there is a bug in the init code. However the engineering team refuses to fix it.

 

It also does not lead to much confidence that they won't intentionally break the m710/m910 Tiny in the exact same way.

 

They never told me why they intentionally disabled ASPM (or won't fix it) over the past 3 months that I have been talking to them. I suspect the support person really had no idea how any of it works and that the engineering team itself just has no clue what they are doing at all.Smiley Mad

 

Another point I recently realized is that the m900 Tiny uses an AMI UEFI and the ThinkPad Yoga 260 uses a Phoenix UEFI. So even though they look nearly identical from the UI standpoint, they do not share any UEFI code at all even though they are on the same chipset.

 

m900 Tiny

00:1b.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Root Port #17 [8086:a167] (rev f1) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 122
	Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
	Memory behind bridge: df100000-df1fffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 256 bytes, PhantFunc 0
			ExtTag- RBE+
		DevCtl:	Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
		LnkCap:	Port #17, Speed 8GT/s, Width x4, ASPM not supported, Exit Latency L0s <1us, L1 <16us
			ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 8GT/s, Width x4, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #0, PowerLimit 25.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet- LinkState+
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR+, OBFF Not Supported ARIFwd+
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled ARIFwd-
		LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+, EqualizationPhase1+
			 EqualizationPhase2+, EqualizationPhase3+, LinkEqualizationRequest-
	Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
		Address: fee00218  Data: 0000
	Capabilities: [90] Subsystem: Lenovo Sunrise Point-H PCI Root Port [17aa:30d0]
	Capabilities: [a0] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt+ RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
	Capabilities: [140 v1] Access Control Services
		ACSCap:	SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans-
		ACSCtl:	SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
	Capabilities: [220 v1] #19
	Kernel driver in use: pcieport
	Kernel modules: shpchp

00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #7 [8086:a116] (rev f1) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin C routed to IRQ 123
	Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
	Memory behind bridge: df000000-df0fffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 256 bytes, PhantFunc 0
			ExtTag- RBE+
		DevCtl:	Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
		LnkCap:	Port #7, Speed 8GT/s, Width x1, ASPM not supported, Exit Latency L0s <1us, L1 <16us
			ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #0, PowerLimit 10.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet- LinkState+
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR-, OBFF Not Supported ARIFwd+
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd-
		LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
	Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
		Address: fee00258  Data: 0000
	Capabilities: [90] Subsystem: Lenovo Sunrise Point-H PCI Express Root Port [17aa:30d0]
	Capabilities: [a0] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt+ RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
	Capabilities: [140 v1] Access Control Services
		ACSCap:	SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans-
		ACSCtl:	SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
	Capabilities: [220 v1] #19
	Kernel driver in use: pcieport
	Kernel modules: shpchp

 

Red Hat - SSME
ThinkStation P320 - ThinkCentre m900 Tiny - ThinkPad P50 - ThinkPad Yoga 260
calc
Token Ring
Posts: 94
Registered: ‎12-01-2016
Location: US
Views: 1,738
Message 15 of 91

Re: UEFI Bug - m900 Tiny - 8260 WiFi - NVMe SSD - ASPM disabled - Much hotter temperatures

Continued from previous post (exceeded maximum character limit)

 

What it should like (roughly):

 

ThinkPad Yoga 260

00:1c.0 PCI bridge: Intel Corporation Device 9d10 (rev f1) (prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 16
        Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
        I/O behind bridge: 0000f000-00000fff
        Memory behind bridge: e1200000-e12fffff
        Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
        Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
        BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
                PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
                DevCap: MaxPayload 256 bytes, PhantFunc 0
                        ExtTag- RBE+
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 128 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
                LnkCap: Port #1, Speed 8GT/s, Width x1, ASPM L1, Exit Latency L0s <1us, L1 <16us
                        ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+
                LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
                SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
                        Slot #0, PowerLimit 10.000W; Interlock- NoCompl+
                SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
                        Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
                SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
                        Changed: MRL- PresDet- LinkState+
                RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
                RootCap: CRSVisible-
                RootSta: PME ReqID 0000, PMEStatus- PMEPending-
                DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR+, OBFF Not Supported ARIFwd+
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled ARIFwd-
                LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
                         EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
        Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
                Address: 00000000  Data: 0000
        Capabilities: [90] Subsystem: Lenovo Device 2237
        Capabilities: [a0] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [100 v1] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt+ RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
        Capabilities: [140 v1] Access Control Services
                ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans-
                ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
        Capabilities: [200 v1] L1 PM Substates
                L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
                          PortCommonModeRestoreTime=40us PortTPowerOnTime=44us
        Capabilities: [220 v1] #19
        Kernel driver in use: pcieport
        Kernel modules: shpchp

00:1c.2 PCI bridge: Intel Corporation Device 9d12 (rev f1) (prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin C routed to IRQ 18
        Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
        I/O behind bridge: 0000f000-00000fff
        Memory behind bridge: e1100000-e11fffff
        Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
        Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
        BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
                PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
                DevCap: MaxPayload 256 bytes, PhantFunc 0
                        ExtTag- RBE+
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 128 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
                LnkCap: Port #3, Speed 8GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <16us
                        ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+
                LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
                SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
                        Slot #2, PowerLimit 10.000W; Interlock- NoCompl+
                SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
                        Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
                SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
                        Changed: MRL- PresDet- LinkState+
                RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
                RootCap: CRSVisible-
                RootSta: PME ReqID 0000, PMEStatus- PMEPending-
                DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR+, OBFF Not Supported ARIFwd+
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled ARIFwd-
                LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
                         EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
        Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
                Address: 00000000  Data: 0000
        Capabilities: [90] Subsystem: Lenovo Device 2237
        Capabilities: [a0] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [100 v1] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt+ RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
        Capabilities: [140 v1] Access Control Services
                ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans-
                ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
        Capabilities: [200 v1] L1 PM Substates
                L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
                          PortCommonModeRestoreTime=40us PortTPowerOnTime=44us
        Capabilities: [220 v1] #19
        Kernel driver in use: pcieport
        Kernel modules: shpchp

00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1) (prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 16
        Bus: primary=00, secondary=05, subordinate=05, sec-latency=0
        I/O behind bridge: 0000f000-00000fff
        Memory behind bridge: e1000000-e10fffff
        Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
        Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
        BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
                PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
                DevCap: MaxPayload 256 bytes, PhantFunc 0
                        ExtTag- RBE+
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 128 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
                LnkCap: Port #5, Speed 8GT/s, Width x4, ASPM L1, Exit Latency L0s <1us, L1 <16us
                        ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+
                LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 8GT/s, Width x4, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
                SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
                        Slot #4, PowerLimit 25.000W; Interlock- NoCompl+
                SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
                        Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
                SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
                        Changed: MRL- PresDet+ LinkState+
                RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
                RootCap: CRSVisible-
                RootSta: PME ReqID 0000, PMEStatus- PMEPending-
                DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR+, OBFF Not Supported ARIFwd+
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled ARIFwd-
                LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+, EqualizationPhase1+
                         EqualizationPhase2+, EqualizationPhase3+, LinkEqualizationRequest-
        Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
                Address: 00000000  Data: 0000
        Capabilities: [90] Subsystem: Lenovo Sunrise Point-LP PCI Express Root Port
        Capabilities: [a0] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [100 v1] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt+ RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
        Capabilities: [140 v1] Access Control Services
                ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans-
                ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
        Capabilities: [200 v1] L1 PM Substates
                L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
                          PortCommonModeRestoreTime=40us PortTPowerOnTime=44us
        Capabilities: [220 v1] #19
        Kernel driver in use: pcieport
        Kernel modules: shpchp

 

Red Hat - SSME
ThinkStation P320 - ThinkCentre m900 Tiny - ThinkPad P50 - ThinkPad Yoga 260
calc
Token Ring
Posts: 94
Registered: ‎12-01-2016
Location: US
Views: 1,730
Message 16 of 91

Re: UEFI Bug - m900 Tiny - 8260 WiFi - NVMe SSD - ASPM disabled - Much hotter temperatures

I somehow overlooked the 'Submit a Service Request' option on the Lenovo website until tonight. I previously had tried phone support which didn't know anything about UEFI issues. I submitted an official ticket and will see what comes of it. At least it will be leverage to get a full refund if they continue to refuse to fix the bug.Smiley Frustrated

Red Hat - SSME
ThinkStation P320 - ThinkCentre m900 Tiny - ThinkPad P50 - ThinkPad Yoga 260
calc
Token Ring
Posts: 94
Registered: ‎12-01-2016
Location: US
Views: 1,720
Message 17 of 91

Re: UEFI Bug - m900 Tiny - 8260 WiFi - NVMe SSD - ASPM disabled - Much hotter temperatures

I dug around some more and found and read the PCI Express specification itself and ports are not actually allowed to disable ASPM support (ie via Link Capability Register). There is even a separate bit field that is required to be enabled in PCIe 3.0 saying that ASPM is always available. Also the timings for the ASPM Exit Latency for L0s and L1 are both set to sane values which would likely not be the case if this wasn't just a bug in the PCIe init code in UEFI.

 

ASPM is allowed to be disabled on the Link Capabilities Register for a device, but not the port itself. 

 

==

PCI Express Base Specification Revision 3.0

==

 

Section 5.4.1. Active State Power Management (ASPM)

 

"All Ports not associated with an Internal Root Complex Link or system Egress Port are required to support the minimum requirements defined herein for Active State Link PM. This feature must be treated as being orthogonal to the PCI-PM software compatible features from a minimum requirements perspective. For example, the Root Complex is exempt from the PCI-PM software compatible features requirements; however, it must implement the minimum requirements of ASPM."

==

 

Section: 7.8.6. - Link Capabilities Register (Offset 0Ch)

 

Bit Location 11:10

 

"Active State Power Management (ASPM) Support – This field indicates the level of ASPM supported on the given PCI Express Link. See Section 5.4.1 for ASPM support requirements.

Defined encodings are:
00b No ASPM Support
01b L0s Supported
10b L1 Supported
11b L0s and L1 Supported

Multi-Function devices associated with an Upstream Port must report the same value in this field for all Functions."

 

Bit Location 22

 

"ASPM Optionality Compliance – This bit must be set to 1b in all Functions. Components implemented against certain earlier versions of this specification will have this bit set to 0b. Software is permitted to use the value of this bit to help determine whether to enable ASPM or whether to run
ASPM compliance tests."

 

===

 

I manually decoded the values in the Link Control Register below for both the m900 Tiny (broken) and ThinkPad Yoga 260 (working).

 

ThinkCentre m900 Tiny
====

Bus 00, Device 1B, Function 00 - Intel Corporation PCI-to-PCI Bridge (PCIE)

0Ch - 43 40 72 11

Port Number                                                            : 00010001 - Port 17
RsvdP                                                                         : 0            -
ASPM Optionality Compliance                              : 1            -
Link Bandwidth Notification Capability               : 1            -
Data Link Layer Link Active Reporting Capable : 1             -
Surprise Down Error Reporting Capable             : 0            -
Clock Power Management                                    : 0             -
L1 Exit Latency                                                         : 100         - 8 μs to less than 16 μs
L0s Exit Latency                                                       : 100         - 512 ns to less than 1 μs
ASPM Support                                                          : 00           - No ASPM Support
Maximum Link Width                                              : 000100 - x4
Max Link Speed                                                        : 0011      - Supported Link Speeds Vector field bit 2

====

Bus 00, Device 1C, Function 00 - Intel Corporation PCI-to-PCI Bridge (PCIE)

0Ch - 13 40 72 07

Port Number                                                           : 00000111
RsvdP                                                                        : 0
ASPM Optionality Compliance                             : 1
Link Bandwidth Notification Capability               : 1
Data Link Layer Link Active Reporting Capable : 1
Surprise Down Error Reporting Capable             : 0
Clock Power Management                                    : 0
L1 Exit Latency                                                         : 100      - 8 μs to less than 16 μs
L0s Exit Latency                                                       : 100      - 512 ns to less than 1 μs
ASPM Support                                                          : 00       - No ASPM Support
Maximum Link Width                                              : 000001   - x1
Max Link Speed                                                        : 0011     - Supported Link Speeds Vector field bit 2

========

ThinkPad Yoga 260
====

Bus 00, Device 1C, Function 00 - Intel Corporation PCI-to-PCI Bridge (PCIE)

0Ch - 13 48 72 01

Port Number                                                            : 00000001 - Port 1
RsvdP                                                                        : 0        -
ASPM Optionality Compliance                             : 1        -
Link Bandwidth Notification Capability              : 1        -
Data Link Layer Link Active Reporting Capable : 1        -
Surprise Down Error Reporting Capable             : 0        -
Clock Power Management                                    : 0        -
L1 Exit Latency                                                         : 100      - 8 μs to less than 16 μs
L0s Exit Latency                                                       : 100      - 512 ns to less than 1 μs
ASPM Support                                                          : 10       - L1 Supported
Maximum Link Width                                              : 000001   - x1
Max Link Speed                                                        : 0011     - Supported Link Speeds Vector field bit 2

====

Bus 00, Device 1C, Function 02 - Intel Corporation PCI-to-PCI Bridge (PCIE)

0Ch - 13 4c 72 03

Port Number                                                            : 00000011 - Port 3
RsvdP                                                                         : 0        -
ASPM Optionality Compliance                              : 1        -
Link Bandwidth Notification Capability               : 1        -
Data Link Layer Link Active Reporting Capable : 1        -
Surprise Down Error Reporting Capable             : 0        -
Clock Power Management                                    : 0        -
L1 Exit Latency                                                         : 100      - 8 μs to less than 16 μs
L0s Exit Latency                                                       : 100      - 512 ns to less than 1 μs
ASPM Support                                                          : 11       - L0s and L1 Supported
Maximum Link Width                                              : 000001   - x1
Max Link Speed                                                        : 0011     - Supported Link Speeds Vector field bit 2

====

Bus 00, Device 1C, Function 04 - Intel Corporation PCI-to-PCI Bridge (PCIE)

0Ch - 43 48 72 05

Port Number                                                            : 00000101 - Port 5
RsvdP                                                                         : 0        -
ASPM Optionality Compliance                              : 1        -
Link Bandwidth Notification Capability               : 1        -
Data Link Layer Link Active Reporting Capable : 1        -
Surprise Down Error Reporting Capable             : 0        -
Clock Power Management                                    : 0        -
L1 Exit Latency                                                         : 100      - 8 μs to less than 16 μs
L0s Exit Latency                                                       : 100      - 512 ns to less than 1 μs
ASPM Support                                                          : 10       - L1 Supported
Maximum Link Width                                              : 000100   - x4
Max Link Speed                                                        : 0011     - Supported Link Speeds Vector field bit 2

===

 

Red Hat - SSME
ThinkStation P320 - ThinkCentre m900 Tiny - ThinkPad P50 - ThinkPad Yoga 260
Highlighted
ThinkErEr
Punch Card
Posts: 9
Registered: ‎02-25-2017
Location: SE
Views: 1,710
Message 18 of 91

Re: M900 Tiny: UEFI Bug - M.2 NVMe SSD & 8260 WiFi - ASPM disabled - Much hotter temperatures (t

Just a quick follow up to my earlier post, about a finding which reduced the temperature on idle with 3-4 degrees, and cut the peaks even more. This was achived by just rotating the vertically orientated M900 Tiny 180 degrees, that is power button down and ThinkCentre label up. Conditions unchanged otherwise. This tiny action seems to improve the heat dissipation somewhat.

 

For the sake of completeness I have to mention that this specific M900 Tiny also has a Samsung 850 PRO installed, although it is disabled in the BIOS. Removing it might improve the air flow, and thus help bringing temperatures down even more.

ThinkCentre M900 Tiny, i7, 16GB, Samsung 950 PRO M.2 NVMe 512GB
calc
Token Ring
Posts: 94
Registered: ‎12-01-2016
Location: US
Views: 1,669
Message 19 of 91

Re: M900 Tiny: UEFI Bug - M.2 NVMe SSD & 8260 WiFi - ASPM disabled - Much hotter temperatures (t

My system board is being replaced tomorrow, which will do nothing to fix this issue, but perhaps it will tick the right boxes internally at Lenovo to get UEFI team to actually fix this 'bug'. Also I got confirmation from support that this bug supposedly affects both of the new systems m710/m910 Tiny as well.

Red Hat - SSME
ThinkStation P320 - ThinkCentre m900 Tiny - ThinkPad P50 - ThinkPad Yoga 260
yetirider
Fanfold Paper
Posts: 8
Registered: ‎02-26-2017
Location: GB
Views: 1,582
Message 20 of 91

Re: M900 Tiny: UEFI Bug - M.2 NVMe SSD & 8260 WiFi - ASPM disabled - Much hotter temperatures (t

I'm not technical to this level, is the suggestion not to fit an M2 drive?
I was thinking of a boot M2 and larger storage SSD.

Check out current deals!


Shop current deals

Top Kudoed Authors