powerd on Gericom Webgine XL not running quite well
Ales
ales.rom at kabelnet.net
Wed May 3 14:56:54 UTC 2006
>>
>> The file is here: http://www.p-rom.si/Gericom_Webgine_XL.asl
>>
>
> Thanks. As I supposed, there are duplicate entries for the max p-state:
>
> Scope (\_PR)
> {
> Processor (CPU1, 0x01, 0x00000810, 0x06)
> {
> ...
> Name (_PSS, Package (0x0A)
> {
> Package (0x06)
> {
> 0x000004B0,
> 0x000088BC,
> 0x0000007D,
> 0x0000007D,
> 0x009C416C,
> 0x0000016C
> },
>
> Package (0x06)
> {
> 0x000004B0,
> 0x000088BC,
> 0x0000007D,
> 0x0000007D,
> 0x009C416C,
> 0x0000016C
> },
>
> Package (0x06)
> {
> 0x000004B0,
> 0x000088BC,
> 0x0000007D,
> 0x0000007D,
> 0x009C416C,
> 0x0000016C
> },
>
> This package is duplicated 5 times and correspond to
> the max one.
>
> ...
> ...
> }
>
> our acpi_perf driver does not handle this situation. I think
> this patch (can not compile test, I don't have a FreeBSD
> handy ATM) should fix your issue (minus stupid mistake I may
> introduce).
>
>
>> As I said in one of my previus messages:
>> If I change POWERNOW_MAX_STATES in powernow.c from 16 to 7 (I belive it
>> is the number of states on my proc) everything works fine!!! I know it
>> is stupid solution, but I do not know anything about C/C++ programming.
>> Sorry.
>>
>
> The method CPUFREQ_DRV_SETTINGS() from acpi_perf give
> 10 p-states, not 7, therefore it failed, and pn_decode_acpi()
> fail. Legacy bios tables are used instead of those
> given by ACPI via pn_decode_pst() which return only 6
> p-states.
>
> You can see the power consuption for each states is "-1"
> in that case because I dont know how to compute them.
>
>
>> dev.powernow.0.freq_settings: 1197/-1 1064/-1 997/-1 931/-1 864/-1 798/-1
>>
>> Another thing. I belive that 1 frequency here is missing.
>> (8,5x133MHz=1133MHz) It should be there because we have FSB=133, multi=6
>> to 9 in 0.5 step.
>>
>
> Aparently the bios writer tell you 8.5 multiplier is not supported.
> You should always trust the bios writer (ahem) :)
>
>
> --- src/sys/dev/acpica/acpi_perf.c~ 2006-05-03 14:49:35.000000000 +0200
> +++ src/sys/dev/acpica/acpi_perf.c 2006-05-03 14:50:37.000000000 +0200
> @@ -299,6 +299,12 @@ acpi_perf_evaluate(device_t dev)
> sc->px_states[count].core_freq >= 0xffff)
> continue;
>
> + /* Check for duplicate entries */
> + if (count > 0 &&
> + sc->px_states[count - 1].core_freq ==
> + sc->px_states[count].core_freq)
> + continue;
> +
> count++;
> }
> sc->px_count = count;
>
>
It compiles and runs like you said.
dev.powernow.0.%desc: PowerNow! K7
dev.powernow.0.%driver: powernow
dev.powernow.0.%parent: cpu0
dev.powernow.0.freq_settings: 1197/35004 1064/29004 997/25291 931/23595 864/21910 798/20224
We have freq an power consuption for every state now.
Thank you. Great, great support.
Ales Rom
More information about the freebsd-acpi
mailing list