| Summary: | acpitz-virtual-0 thermal device always returns 26.8 deg C | ||
|---|---|---|---|
| Product: | [Hardware Platforms] MinnowBoard MAX Firmware | Reporter: | Darren Hart <dvhart> |
| Component: | minnowmax-edk2 | Assignee: | Unassigned <unassigned> |
| Status: | RESOLVED MOVED | QA Contact: | |
| Severity: | normal | ||
| Priority: | Medium | CC: | david.wei, dvhart, gerard.b, shifeix.a.lu, sjolley.yp.pm |
| Version: | unspecified | ||
| Target Milestone: | Production Release | ||
| Hardware: | MinnowBoard Max | ||
| OS: | x86_64 | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | Don't know | |
|
Description
Darren Hart
2015-04-30 15:16:39 UTC
Scanning through the edk2 sources, I see the following defaults for VLV2 devices, which explicitly returns this value (26.8 deg C) if "both EC and DTS are unavailable".
If this always returns the same value, should we be removing this from the table? Or at least disabling it via _STA?
// _TMP (Temperature)
//
// Return the highest of the CPU temperatures to the OS.
//
// Arguments: (0)
// None
// Return Value:
// An Integer containing the current temperature of the thermal zone (in tenths of degrees Kelvin)
//
Method(_TMP,0,Serialized)
{
If(DTSE)
{
If(LGreater(DTS2, DTS1))
{
Store(DTS2,Local0)
} else
{
Store(DTS1,Local0)
}
Return(Add(2732,Multiply(Local0,10)))
//
// Else return a static value if both EC and DTS are unavailable.
//
} Else
{
Return(3000) // (3000-2732)/10 = 26.8 degree C
}
}
Problem reported when using firmware: MNW2MAX1.X64.0079.R01.1504081555 - Gerard Bucas (gerard.b@tekmagic.net) We are trying to enable Digital Thermal Sensor to detect the temperature. Firware team is optimizing Digital Thermal Sensor driver to make it able to detect smaller changes of processor temperature. Shifei has finished adding back Digital Thermal Sensor and tested its function. V0.81 release will include this feature. This issue has been fixed by V0.81 release. Please review it. Ok - tested it on a minnowboard MAX with latest 0.81 firmware. It now behaves differently and after Linux starts in root shell it returns 60000 (= 60.0C). At that point the sensors command returns around 65C However, then I run some heavy CPU/GPU content and the value returned by temp only rises to 70000 (70.0C) and then stats there, even though 'sensors' now reports 92C. So the 'virtual device' seems to get stuck at a max of 70000, even though CPU (die) temp has gone up to 92C (stabilises around 92C with the content I am running). So my conclusion is that the behavior has changed (no longer returns a fixed/constant value like before) but it still does not report correct temp and always returns a value between 60000 and 70000. A good 'check' is to compare the results of the Linux 'sensors' command - which I did. Hope this helps. Regards Gerard Bucas Gerard.b@tekmagic.net Assign to Shifei to check the ACPI thermal zone. Please double check with V0.82 Firmware Binary.Thanks a lot! OK - I checked it out with 0.82 firmware and linux 3.19 kernel (ubuntu & yocto) running on a minnowboard MAX. Seems to work and reports similar results now to "sensors" command. Thanks for fixing this - much appreciated. - Gerard Hi Dareen, Gerard has confirmed this fix. Could you help change this bug status to "resolved"? We are no longer tracking in Yocto Project Bugzilla MinnowBoard and MinnowBoard-MAX HW and firmware bugs. |