Difference between revisions of "Embedded Controller Chips"

From ThinkWiki
Jump to: navigation, search
(Bug: Fan control loop pulses the fan in an annoying pattern: links to related articles)
(Add new fw bug: tach readings not invalidated in disengaged mode)
Line 59: Line 59:
 
The fan control loop will vary the fan speed quite a lot, in a very annoying pattern.  The broken fix on
 
The fan control loop will vary the fan speed quite a lot, in a very annoying pattern.  The broken fix on
 
the T43 firmware causes annoying pulses every 30s.
 
the T43 firmware causes annoying pulses every 30s.
 +
 +
=== Bug: Tachometer registers not invalidated in disengaged mode ===
 +
* Severity: low
 +
* Fix: none available
 +
 +
* Models affected:
 +
** Nearly all ThinkPad models
 +
 +
When the fan control loop is placed in disengaged mode (bit 6 of EC register 0x2f is set) where no tachometer readings take place, the EC does not set the tachometer registers (0x84, 0x85) to 0xFF to signal an invalid reading.  Instead, the registers are simply not updated anymore and retain the last tachometer reading that took place.
  
 
== See also ==
 
== See also ==

Revision as of 23:08, 3 October 2006

This page is a stub

You can help ThinkWiki by expanding it.

The ThinkPad Embedded Controller

This page contains information about Embedded Controller chips found in ThinkPads.

Apparently used on all ThinkPads since the A30, T23, R40, X20.
  • Unknown chips without field-upgradeable firmware
Used on older ThinkPads, including the model 570, and maybe even earlier models.

Firmware issues

Various bugs have been observed in the various ThinkPad EC firmwares. Most of them were fixed in later revisions, but a few are either very dangerous and driver writers need to always work around them, or have never been fixed. One must keep in mind that many of the bugs fixed by IBM or Lenovo could cause serious problems, but might never be noticed by driver developers, because they usually keep their ThinkPads up-to-date. People that don't keep their ThinkPad firmware up-to-date are excellent guinea pigs...

ATTENTION!
As a rule, if you are not using the latest available firmware for your ThinkPad, you are likely to be the unlucky chap that will find out some new code hits a firmware bug that was fixed by IBM or Lenovo. Do yourself a favour and always keep your ThinkPad's firmware up-to-date.

Bug: Advanced battery query causes EC hang

  • Models affected:
    • T40, T40p, T41, T41p, T42, T42p: all models affected, no fix available
    • T43 26xx, T43p: fixed on firmware 1YHT28WW (1.05) and newer
    • T43 18xx, R52: likely buggy, unknown status (might be fixed in latest firmwares)
    • other ThinkPads featuring advanced battery queries: unknown status; every model supported by tp_smapi advanced battery information is a candidate for this bug

The EC LPC3B advanced battery query function 0x0B (only used by tp_smapi) has a hideous bug that causes the EC to misbehave and crash (usually hanging the entire ThinkPad). This function must never be called on a buggy firmware.

Bug: Fan control loop status is not initialized

  • Models affected:
    • T43, T43p, R52
    • no information about other models, please report on linux-thinkpad ML, see link above

The EC does not correctly initializes its 0x2f (fan control) register, so ibm-acpi cannot determine the correct status of the fan control until something writes to the fan control register for the first time.

Bug: Fan control loop pulses the fan in an annoying pattern

  • Models affected:
    • T40, T40p, T41, T41p, T42, T42p: fixed by firmware 1RHT70WW (3.03) and later
    • T43, T43p, R52: IBM provided a broken firmware fix, so they are all affected
    • other newer models: unknown status

The fan control loop will vary the fan speed quite a lot, in a very annoying pattern. The broken fix on the T43 firmware causes annoying pulses every 30s.

Bug: Tachometer registers not invalidated in disengaged mode

  • Severity: low
  • Fix: none available
  • Models affected:
    • Nearly all ThinkPad models

When the fan control loop is placed in disengaged mode (bit 6 of EC register 0x2f is set) where no tachometer readings take place, the EC does not set the tachometer registers (0x84, 0x85) to 0xFF to signal an invalid reading. Instead, the registers are simply not updated anymore and retain the last tachometer reading that took place.

See also