[Bug 175702] The system shuts down because of critical thermal ACPI event (at bogus 0 C degree temperature)
https://bugzilla.novell.com/show_bug.cgi?id=175702 trenn@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |luming.yu@intel.com Status|NEEDINFO |ASSIGNED Info Provider|astylianou@earthlink.net | ------- Comment #32 from trenn@novell.com 2007-01-08 05:52 MST ------- This is an EC _REG problem. It seems Ubuntu does never invoke: \_SB_.PCI0.LPCB.EC0_._REG with a value of "3" passed as first and value "1" passed as second argument. As soon as _REG is invoked with a value of "3" passed as first and "1" passed as second argument, ECRY becomes "1". Method (_REG, 2, NotSerialized) { If (LEqual (Arg0, 0x03)) { Store (Arg1, ECRY) } } This is the only place where ECRY is written to, so for this BIOS this must never happen. Because as soon as ECRY is "1" all EC access is avoided by checking for ECOK method or directly LEqual (\_SB.PCI0.LPCB.EC0.ECRY, One). If this happens battery, thermal and other info normally accessed via EC variables are not accessed and bogus values are returned. E.g. for thermal (temperature and critical trip point): If (LEqual (\_SB.PCI0.LPCB.EC0.ECRY, One)) { Multiply (\_SB.PCI0.LPCB.EC0.VTSD, 0x0A, Local0) Add (Local0, 0x0AAC, Local0) Return (Local0) } This is even reproducable in userspace by adding some Store (xy, debug), recompiling the DSDT and invoke it via acpiexec: I did that for the suspicious _REG func: Method (_REG, 2, NotSerialized) { Store ("_REG invoked", debug) Store (Arg0, debug) Store (Arg1, debug) If (LEqual (Arg0, 0x03)) { Store (Arg1, ECRY) } } and outcome with acpiexec already at initialisation time is: [ACPI Debug] String: [0x0C] "_REG invoked" [ACPI Debug] Integer: 0x00000001 [ACPI Debug] Integer: 0x00000001 [ACPI Debug] String: [0x0C] "_REG invoked" [ACPI Debug] Integer: 0x00000003 [ACPI Debug] Integer: 0x00000001 [ACPI Debug] String: [0x0C] "_REG invoked" [ACPI Debug] Integer: 0x00000003 [ACPI Debug] Integer: 0x00000001 Therefore ECRY is "1" and a lot (all?) methods trying to access EC later are checked for this not being "1" or returning static, bogus info. I call this a BIOS bug, is there a new BIOS available? I doubt Ubuntu is going to work (can you confirm that you see this Temperature: 0 C shutdown problem with SUSE and it does work with Ubuntu?) or they might have added the BIOS blacklisted. I just found this in an Ubuntu forum, one claims a BIOS update helped, so this is the first thing you should try: https://launchpad.net/ubuntu/+source/linux-source-2.6.17/+bug/58696 -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
participants (1)
-
bugzilla_noreply@novell.com