Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Mar 2010 04:30:48 +0100
From:      Dan Lukes <dan@obluda.cz>
To:        Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
Cc:        freebsd-acpi@freebsd.org
Subject:   Re: Funny battery values (nx6325)
Message-ID:  <4BA2EFE8.60004@obluda.cz>
In-Reply-To: <20100318195312.GQ52442@uriah.heep.sax.de>
References:  <20100315062028.GC52442@uriah.heep.sax.de>	<20100317070428.GA2924@server.vk2pj.dyndns.org>	<20100317074549.GC52442@uriah.heep.sax.de>	<1268829363.6171.13.camel@RabbitsDen> <20100318195312.GQ52442@uriah.heep.sax.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On 03/18/10 20:53, Joerg Wunsch:
> Is anybody able to hint me where the _BIF and _BST methods get their
> actual data from?

Method (_BIF, 0, NotSerialized)
{
      Return (C1AC (0x00))
}

where 0x00 seems to be battery number.

The structure that will be returned is here:
         Name (C1AF, Package (0x02)
         {
             Package (0x0D)
             {
                 0x01,
                 0xFFFFFFFF,
                 0xFFFFFFFF,
                 0x01,
                 0xFFFFFFFF,
                 0x00,
                 0x00,
                 0x64,
                 0x64,
                 "Primary",
                 "100000",
                 "LIon",
                 "Hewlett-Packard"
             },

And it's filled in C1AC() method. The Design/Last Full Capacity is 
filled here:

  Store (C164, Local0)
  Store (Local0, Index (DerefOf (Index (C1AF, Arg0)), 0x01))
  Store (Local0, Index (DerefOf (Index (C1AF, Arg0)), 0x02))

It mean that both numbers are same and come from C164 variable.

C164 variable is defined as 16bit variable on offset 0x8D of 
EmbeddedController (_HID=PNP0C09) memory region.

So, now you know from where the Design/Last Full Capacity come from.

Unless you have improper BIOS (BIOS for other computer type/version) 
then there seems not to be problem between ACPI and OS. You should ask 
why independent embedded controller store such value to memory where the 
OS is reading it. As far as I know, you can't debug the operations of 
embedded controller, so you can imagine only why it store such values 
here ...

						Dan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BA2EFE8.60004>