Z00Q Problem Tyan MB!

Gnu_Raiz gnu.raiz at gmail.com
Thu Jan 5 19:55:21 PST 2006


On 1/3/06, Bruno Ducrot <ducrot at 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.

Thanks;

Gnu_Raiz


More information about the freebsd-acpi mailing list