Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Jan 2006 20:44:31 +0100
From:      Bruno Ducrot <ducrot@poupinou.org>
To:        Gnu_Raiz <gnu.raiz@gmail.com>
Cc:        freebsd-acpi@freebsd.org
Subject:   Re: Z00Q Problem Tyan MB!
Message-ID:  <20060106194431.GA24124@poupinou.org>
In-Reply-To: <c740cf110601051955ma2fb5e1m109a6af6d151e65b@mail.gmail.com>
References:  <c740cf110512211223s4b7d7c59n387b1dfedd62567b@mail.gmail.com> <20051222020349.GA16607@poupinou.org> <43AC2E52.8000304@root.org> <20060103151938.GD13887@poupinou.org> <c740cf110601051955ma2fb5e1m109a6af6d151e65b@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jan 05, 2006 at 09:55:19PM -0600, Gnu_Raiz wrote:
> On 1/3/06, Bruno Ducrot <ducrot@poupinou.org> wrote:
> >
> > On Fri, Dec 23, 2005 at 09:05:22AM -0800, Nate Lawson wrote:
> > > You can work around this problem with info from PR kern/89879
> > >
> > > http://people.freebsd.org/~ariff/acer_ferrari/
> > >
> > > A future acpica import may address this problem.  The aml is accessing a
> > > field before it's defined.  The newest acpica adds support for lazy
> > > evaluation (even though this is out of spec).
> >
> > No, it won't.  There are the following devices:
> >
> >
> >         Device (SIO)
> >         {
> >                 ...
> >                 ...
> >
> >                 Method (STA, 1, NotSerialized)
> >                 {
> >                 ...
> >                 ...
> >                 }
> >
> >                 Device (COM1)
> >                 {
> >                         ...
> >                         Method (_STA, 0, NotSerialized)
> >                         {
> >                                 Store (Z00Q, Local0)
> >                                 And (Local0, 0x01, Local0)
> >                                 If (LEqual (Local0, 0x01))
> >                                 {
> >                                         Return (0x00)
> >                                 }
> >                                 Else
> >                                 {
> >                                         Return (STA(0x02))
> >                         }
> >                 }
> >
> >                 Device (COM2)
> >                 {
> >                         ...
> >                         Method (_STA, 0, NotSerialized)
> >                         {
> >                                 /* same _STA, but
> >                                  * And (Local0, 0x02, Local0)
> >                                  */
> >                         ...
> >                 }
> >
> >
> >                 Device (LPT)
> >                 {
> >
> >                         ...
> >                         Method (_STA, ...)
> >                         {
> >                                 /* same _STA, but different bits checked
> >                                  */
> >
> >                         }
> >                 }
> >
> > Since all of those _STA methods call SIO.STA() (and since this method
> > is used to touch a part of a SuperIO chip (io port 0x2E, etc) in order
> > to initialize some devices), it's very likely that the 3 devices will not
> > function even if acpica does lazy evaluations for
> > non-existing object.  If I were the acpi maintainer of the intel acpica,
> > package, I would add a flag turned off per default.
> >
> > For the OP.  I would suggest trying to add a Z00Q manually.
> >
> > --- rcall-TyanMP2460.asl        2006/01/03 14:47:05     1.1
> > +++ rcall-TyanMP2460.asl        2006/01/03 15:10:58
> > @@ -1256,6 +1256,7 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1,
> >                  Device (SIO)
> >                  {
> >                      Name (_HID, EisaId ("PNP0A05"))
> > +                    Name (Z00Q, 1)    // bit 1: COM1, bit 2: COM2, bit 3:
> > LPT
> >                      OperationRegion (Z00M, SystemIO, 0x80, 0x01)
> >                      Field (Z00M, ByteAcc, NoLock, Preserve)
> >                      {
> > @@ -2394,6 +2395,8 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1,
> >          }
> >
> >          Notify (\_SB.PWRB, 0x02)
> > +
> > +        Return(Package(2){0,0})
> >      }
> > }
> >
> >
> >
> >
> >
> > and to change the value for Z00Q according to your needs (if you need
> > both serial ports, then it should be 3, etc).
> >
> > Cheers,
> >
> > --
> > Bruno Ducrot
> >
> > --  Which is worse:  ignorance or apathy?
> > --  Don't know.  Don't care.
> 
> 
> 
> Ok I am now confused, so I should not use Z00C to fix  Z00Q, Where should I
> add this proper code. I am willing to learn, but I am not an expert when it
> comes to this type of thing, after looking at asl file their seems to be
> many sections that relates to Z00Q.
> 
> I would hate to put it into the wrong section, and not know after I compile
> it because the syntax was correct. So maybe someone can give me some
> pointers, as to what the proper way is to fix the file.
> 

I think replacing Z00Q by any other Z00? is totally wrong in your case.

-- 
Bruno Ducrot

--  Which is worse:  ignorance or apathy?
--  Don't know.  Don't care.



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