Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Jun 2011 22:37:08 +0300
From:      Vitaly Magerya <vmagerya@gmail.com>
To:        Andriy Gapon <avg@freebsd.org>
Cc:        freebsd-acpi@freebsd.org
Subject:   Re: (Missing) power states of an Atom N455-based netbook
Message-ID:  <BANLkTin_%2BZH%2Bo7rdR9ijHMtrXcSdH9ZSdQ@mail.gmail.com>
In-Reply-To: <4E09BADF.7050702@FreeBSD.org>
References:  <BANLkTim%2B1UwquMJ32WP8wZBGkYxPv78MLA@mail.gmail.com> <4E05EB91.9090509@FreeBSD.org> <BANLkTi=dyNx=TjyEqYMhSkRtddjVA4nAtw@mail.gmail.com> <4E0862A0.7060405@FreeBSD.org> <BANLkTikmVUtLyANBSqYb%2BL-xkwQ4Zo51Eg@mail.gmail.com> <4E09BADF.7050702@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> 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?

> 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.

If I now plug the power cord in, PWRS changes from 0 to 1 and P80D
changes from 06:08:00:00 to 30:08:00:00. If I unplug it once again,
P80D becomes 31:08:00:00.

When I boot with power cord in, everything is the same, except for
PWRS and P80D (the latter is 06:... initially, and then cycles
between 31:... and 30:...).

> I see that PWRS value is being manipulated in a few of EC (embedded controller
> device) methods.  So maybe we do not call something related as early as
> Linux does.

PWRS appears to reflect power cord status correctly.

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).

[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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTin_%2BZH%2Bo7rdR9ijHMtrXcSdH9ZSdQ>