Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Sep 2010 09:12:48 +0900
From:      Norikatsu Shigemura <nork@FreeBSD.org>
To:        freebsd-current@FreeBSD.org, freebsd-acpi@FreeBSD.org
Cc:        Norikatsu Shigemura <nork@FreeBSD.org>
Subject:   Re: CPU C-state storange on Panasonic TOUGH BOOK CF-R9
Message-ID:  <20100912091248.5c95bf2c.nork@FreeBSD.org>
In-Reply-To: <20100912081409.9f4d74d0.nork@FreeBSD.org>
References:  <20100912014855.984a89ed.nork@FreeBSD.org> <4C8BCAC5.5050008@root.org> <20100912081409.9f4d74d0.nork@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 12 Sep 2010 08:14:09 +0900
Norikatsu Shigemura <nork@FreeBSD.org> wrote:
> 	According to acpidump -dt, I could find CPU0CST table, but
> 	not found _CST.
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>     Scope (\)
>     {
>         Name (SSDT, Package (0x0C)
>         {
> 		:
>             "CPU0CST ", 
>             0xDA9AB618, 
>             0x000005CD, 
> 		:
>         })
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> 	Hum... ACPI CA 20100806 has a bug?

	Humm... I wonder if CF-R9 required another initialization?

	I don't know what is HI0 and HC0.  But default values of HI0 and
	HC0 is 0, and HI0 and HC0 are set CST related values by GCAP,
	I think..
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Scope (\_PR.CPU0)
    {
        Name (HI0, Zero)
        Name (HC0, Zero)
	:
        Method (GCAP, 1, NotSerialized)
        {
            CreateDWordField (Arg0, Zero, STS0)
            CreateDWordField (Arg0, 0x04, CAP0)
            If (LOr (LEqual (STS0, 0x06), LEqual (STS0, 0x0A)))
            {
                Return (Zero)
            }

            If (And (STS0, One))
            {
                And (CAP0, 0x0BFF, CAP0)
                Return (Zero)
            }

            Or (And (PDC0, 0x7FFFFFFF), CAP0, PDC0)
            If (And (CFGD, One))
            {
                If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (PDC0, 
                    0x09), 0x09)), LNot (And (SDTL, One))))
                {
                    Or (SDTL, One, SDTL)
                    OperationRegion (IST0, SystemMemory, DerefOf (Index (SSDT, One)), DerefOf (Index (SSDT, 0x02
                        )))
                    Load (IST0, HI0)
                }
            }

            If (And (CFGD, 0xF0))
            {
                If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC0, 0x18
                    )), LNot (And (SDTL, 0x02))))
                {
                    Or (SDTL, 0x02, SDTL)
                    OperationRegion (CST0, SystemMemory, DerefOf (Index (SSDT, 0x07)), DerefOf (Index (SSDT, 0x08
                        )))
                    Load (CST0, HC0)
                }
            }

            Return (Zero)
        }

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

	Thank you.

-- 
Norikatsu Shigemura <nork@FreeBSD.org>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100912091248.5c95bf2c.nork>