AMD64 CPU and ACPI (was Re: Configuration of Compaq R3000)

Nate Lawson nate at root.org
Thu Jan 27 12:43:01 PST 2005


Michael W. Oliver wrote:
> On 2005-01-27T13:59:29-0500, Jung-uk Kim wrote:
>>Did you use 'acpi_ppc' driver?
>>http://www.spa.is.uec.ac.jp/~nfukuda/software/
> 
>>You need this driver to run your laptop at full speed.  CPU speed will 
>>be automatically adjusted by CPU load.  However, it may take few 
>>seconds to get to the speed.  You can set the speed manually by:
> 
> Whoo-hoo!!!  This works on my machine (Sager 4750V) so far, and gives
> wonderful information:
> 
> hw.acpi.cpu.px_control: -1
> hw.acpi.cpu.px_highest: 0
> hw.acpi.cpu.px_lowest: 2
> hw.acpi.cpu.px_current: 1
> hw.acpi.cpu.px_supported: 2200 1800 800
> hw.acpi.cpu.px_usage: 4.62% 25.70% 69.66%
> 
> (running `make clean' in /usr/ports just to push it a little)
> 
> This is great!  Thanks so much for posting this!  This completely makes
> sense now that I would see the CPU speed reported as ~801MHz when the
> machine would boot up.  I can't thank you enough.
> 
> What are the chances that this could be imported into current?  I am
> running...

I've been working on a cpufreq driver for about 6 months now.  Work 
unfortunately has made progress too slow.  I have taken a vacation day 
to work on FreeBSD and plan to import a stripped down version (no 
throttling support) very soon.

The driver is a general cpufreq framework and two hardware drivers, one 
for SpeedStep ICH and one for ACPI Px states (like acpi_ppc but a 
separate implementation).  Other drivers, like SpeedStep Centrino and 
Powernow, can easily be hooked into the framework by their maintainers 
and imported into the general tree.  I've wanted to keep them as ports 
for now so that I could prototype the framework before importing it. 
That way we wouldn't have to restructure millions of cpu hardware 
drivers after the fact.

The short answer is that a similar capability should be imported soon.

>>Unfortunately if you run this laptop under heavy CPU load, CPU will 
>>heat up pretty fast and 'acpi_ec' will adjust delay to prevent 
>>excessive heat.  You can ignore this behavior by hacking acpi_ec.c, I 
>>believe but it's really bad idea.
> 
> 
> I do see some ACPI errors on my laptop when I boot it up, such as:
> 
> (dmesg -a | grep -i acpi):
> acpi_cmbat0: battery initialization start
> acpi_acad0: acline initialization start
> acpi_tz0: _CRT value is absurd, ignored (154.8C)
> acpi_acad0: On Line
> acpi_acad0: acline initialization done, tried 1 times
> acpi_ec0: info: new max delay is 70 us
> acpi_ec0: info: new max delay is 100 us
> acpi_cmbat0: battery initialization failed, giving up   <-- ugh!
> acpi_ec0: info: new max delay is 130 us
> acpi_ec0: info: new max delay is 170 us
> acpi_tz0: _CRT value is absurd, ignored (154.8C)
> acpi_tz0: _CRT value is absurd, ignored (154.8C)
> acpi_ec0: info: new max delay is 900 us
> acpi_ec0: info: new max delay is 11000 us
> acpi_tz0: _CRT value is absurd, ignored (154.8C)
> acpi_tz0: _CRT value is absurd, ignored (154.8C)

This all indicates your embedded controller is not responding.  It's 
important to figure out why.  Can you post a link to your full dmesg too?

> acpidump stuff is here:
> http://michael.gargantuan.com/sager_4750v/acpidump.asl
> http://michael.gargantuan.com/sager_4750v/dsdt.out
> http://michael.gargantuan.com/sager_4750v/sysctl_hw.acpi

Thanks, I'll eventually take a look at this but hopefully you understand 
that I've set aside bugfixing for a short while to complete longer term 
projects.

-- 
Nate


More information about the freebsd-amd64 mailing list