(Missing) power states of an Atom N455-based netbook
Andriy Gapon
avg at FreeBSD.org
Tue Jun 28 21:04:14 UTC 2011
on 28/06/2011 22:37 Vitaly Magerya said the following:
>> I think that part (but not all) of the differences between FreeBSD and Linux
>> can be explained by the fact that FreeBSD currently doesn't advertise itself as
>> featuring ACPI_CAP_SMP_C1_NATIVE and ACPI_CAP_SMP_C3_NATIVE. I am not sure
>> what it would take to actually support these features. I think that Linux does
>> support (or at least advertise support) for these features.
>
> Is there some simple way of sending fake advertisement? Or will
> that lead to disaster?
It doesn't make sense without actual support.
And maybe (just maybe) it won't change much anyway.
>> I would be interested to see memory dumps of the above region both early
>> after boot and later when you get additional C states.
>> This can be done with:
>> dd if=/dev/mem size=1 iseek=0x3F5C0C7D count=0x000000FF
>>
>> [...]
>>
>> Then, PWRS is declared in GNVS region ("Global Non-Volatile Storage"?):
>> OperationRegion (GNVS, SystemMemory, 0x3F5C0D7C, 0x0100)
>> I would like to get two dumps for this region too.
>
> When I boot without power, I get these dumps [1,2]. For your
> convenience, the same dumps decoded are at [3,4]. After C2 and C3
> become available, I get mostly the same dumps [5,6]: only C1ON
> changes from 0 to 1.
Yep. Now the biggest question is what that C1ON is and what changes its value.
And how do we (and Linux) trigger that change.
[snip]
> If someone will tell me how the hell do you dump memory in Linux,
> I'll submit the dumps for it too. Currently dd fails there with
> this error:
>
> $ sudo dd if=/dev/mem of=... bs=1 skip=0x3F5C0C7D count=0x000000FF
> dd: read /dev/mem: Bad address
>
> (Reproduced by memory).
No idea here.
Maybe they don't allow to access memory reserved by kernel from userland, even
to root.
> [1] http://tx97.net/~magv/n143-acpi/mem-3f5c0c7d-before.bin
> [2] http://tx97.net/~magv/n143-acpi/mem-3f5c0d7c-before.bin
> [3] http://tx97.net/~magv/n143-acpi/mem-3f5c0c7d-before.txt
> [4] http://tx97.net/~magv/n143-acpi/mem-3f5c0d7c-before.txt
> [5] http://tx97.net/~magv/n143-acpi/mem-3f5c0c7d-after.bin
> [6] http://tx97.net/~magv/n143-acpi/mem-3f5c0d7c-after.bin
Since we are now dealing with black box/magic behind ACPI, may I try to suggest
doing some DSDT hacks and seeing what changes? One thing to try would be
replacing "\_SB.VDRV" with "VDRV" in _Q51 and _Q52 methods.
That at least should rid you of those annoying ACPI errors, at best it could
improve something. At the very worst it may fry your machine, though...
--
Andriy Gapon
More information about the freebsd-acpi
mailing list