From owner-acpi-jp@jp.freebsd.org  Wed Oct 11 01:18:18 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id BAA63976;
	Wed, 11 Oct 2000 01:18:18 +0900 (JST)
	(envelope-from owner-acpi-jp@jp.FreeBSD.org)
Received: from tasogare.imasy.or.jp (daemon@tasogare.imasy.or.jp [202.227.24.5])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id BAA63970
	for <acpi-jp@jp.FreeBSD.org>; Wed, 11 Oct 2000 01:18:16 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
Received: from localhost (iwasaki.imasy.or.jp [202.227.24.92])
	by tasogare.imasy.or.jp (8.10.2+3.3W/3.7W-tasogare/smtpfeed 1.07) with ESMTP id e9AGI9r23537;
	Wed, 11 Oct 2000 01:18:09 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
To: andrew.grover@intel.com
Cc: acpi-jp@jp.FreeBSD.org
X-Mailer: Mew version 1.94.1 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20001011011808S.iwasaki@jp.FreeBSD.org>
Date: Wed, 11 Oct 2000 01:18:08 +0900
From: Mitsuru IWASAKI <iwasaki@jp.freebsd.org>
X-Dispatcher: imput version 20000228(IM140)
Lines: 166
Reply-To: acpi-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: acpi-jp 846
Subject: [acpi-jp 846] ACPICA: PkgLength was miscalculated after ElseOp?
Errors-To: owner-acpi-jp@jp.freebsd.org
Sender: owner-acpi-jp@jp.freebsd.org
X-Originator: iwasaki@jp.freebsd.org

Hi, Andrew.  I got a lot of `NsSearchAndEnter: *** Bad character in
name: 2f5c0542 *** ' messages, it is likely parser problem on scope push/pop.
I have no idea to fix it yet, I'll check psparse.c anyway...

Here is the ASL code which have the problem.  I'm marking statements
to be executed as '*'.
*           If(\_SB.MEM.GP52) {
*               Store(0x0, \_SB.MEM.GP52)
*               If(LEqual(\_SB.MEM.BES1, \_SB.MEM.BT1F)) {
*                   Notify(\_SB.BAT1, 0x80)
*               }
                Else {
                    Store(\_SB.MEM.BES1, \_SB.MEM.BT1F)
                    If(\_SB.MEM.BES1) {
                        Notify(\_SB.BAT1, 0x0)
                    }
                    Else {
                        Notify(\_SB.BAT1, 0x1)
                    }
                }
            }
*           If(\_SB.MEM.GP53) {

Here, we suppose to have `IfOp PkgLength Predicate TermList ...', but
it seems that the parser is searching namestring with 4bytes (starting from
Pkglength after IfOp).  Please refer debug trace below too.

[AmlDebug] Next AML Opcode to execute:
  15d #  a0 [ 0]  If
            [ 0]  (
  17e #  86 [ 1]  ....Notify
            [ 1]  ....(
  17f #  2d [ 2]  ........\\_SB_.BAT1,  (Path 
  189 #   a [ 2]  ........(UINT8)  0x80
            [ 2]  ....}
            [ 1]  }

 amnames-0302: AmlExecNameSegment: Appended to - \\._SB_ 
 amnames-0302: AmlExecNameSegment: Appended to - \\._SB_BAT1 
nsaccess-0480: NsLookup: Searching from root [0xc045dccc]
nsaccess-0542: NsLookup: Dual Pathname (2 segments, Flags=3)
nsaccess-0576: NsLookup: [_SB_/BAT1/]
nssearch-0171: NsSearchNode: Searching \\   / [0xc045dccc]
nssearch-0174: NsSearchNode: For _SB_ (type 0x0)
nssearch-0227: NsSearchNode: Name _SB_ (actual type 0x0) found at 0xc06fb420
nssearch-0171: NsSearchNode: Searching \\   /_SB_ [0xc06fb420]
nssearch-0174: NsSearchNode: For BAT1 (type 0x0)
nssearch-0227: NsSearchNode: Name BAT1 (actual type 0x6) found at 0xc0ac90c0
 psscope-0331: PsPopScope:  Popped Op 0xc0ac8980 Args -2
 psparse-1141: ParseLoop:  Popped scope, Op=0xc0ac8980

[AmlDebug] Next AML Opcode to execute:
  139 #  a0 [ 0]  If
            [ 0]  (
  13c #  2d [ 1]  ....\\_SB_.MEM_.GP52,  (Path 
  15d #  a0 [ 1]  ....If
            [ 1]  }
Predicate was TRUE, executed block

 psutils-0246: PsAllocOp: Op 0xc0ac8980 from Parse Cache
 psscope-0331: PsPopScope:  Popped Op 0xc0ac8d00 Args -4
 psparse-1141: ParseLoop:  Popped scope, Op=0xc0ac8d00

[AmlDebug] Next AML Opcode to execute:
   24 #  a2 [ 0]  While
            [ 0]  (
  139 #  a0 [ 1]  ....If
            [ 1]  ....(
  13c #  2d [ 2]  ........\\_SB_.MEM_.GP52  (Path 
            [ 2]  ....}
            [ 1]  }
Predicate was TRUE, executed block

 psutils-0246: PsAllocOp: Op 0xc0ac8d00 from Parse Cache
 psparse-0912: ParseLoop:  Op=0xc0ac8d00 Opcode=  2d Aml 0xc5a72363 Oft=  1db
nsaccess-0499: NsLookup: Searching relative to pfx scope [0xc0accbc0]
nsaccess-0567: NsLookup: Simple Pathname (1 segment, Flags=3)
nsaccess-0576: NsLookup: [B\^E\\//]
nssearch-0428: NsSearchAndEnter:  *** Bad character in name: 2f5c0542 *** 
nssearch-0430: *** Error: NsSearchAndEnter: Bad character in ACPI Name
 psparse-0774: ParseLoop: Found unknown opcode 0x3 at offset 0xc5a72367, ignoring

And here is full dump of the method (_GPE._L0B) in DSDT.

03090    42 5f 0a 02 14 4f 47 5f 4c 30 42 08 70 0a af 5c B_...OG_L0B.p..\\
030a0    2f 03 5f 53 42 5f 4d 45 4d 5f 49 45 44 49 53 4d .._SB_MEM_IEDISM
030b0    42 52 0b 00 ff 0c 0b b1 18 00 0a 00 0a 00 0a b2 BR..............
030c0    a2 43 45 91 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 .CE.\\.._SB_MEM_G
030d0    50 35 30 91 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 P50.\\.._SB_MEM_G
030e0    50 35 31 91 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 P51.\\.._SB_MEM_G
030f0    50 35 32 91 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 P52.\\.._SB_MEM_G
03100    50 35 33 91 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 P53.\\.._SB_MEM_G
03110    50 36 30 91 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 P60.\\.._SB_MEM_G
03120    50 36 31 91 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 P61.\\.._SB_MEM_G
03130    50 36 32 91 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 P62.\\.._SB_MEM_G
03140    50 36 33 91 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 P63.\\.._SB_MEM_G
03150    50 36 34 91 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 P64.\\.._SB_MEM_G
03160    50 36 35 91 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 P65.\\.._SB_MEM_G
03170    50 37 30 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 P70\\.._SB_MEM_GP
03180    37 31 a0 2f 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 71..\\.._SB_MEM_G
03190    50 35 30 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d P50p..\\.._SB_MEM
031a0    5f 47 50 35 30 86 5c 2e 5f 53 42 5f 41 44 50 31 _GP50.\\._SB_ADP1
031b0    0a 80 a0 22 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 ..."\\.._SB_MEM_G
031c0    50 35 31 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d P51p..\\.._SB_MEM
031d0    5f 47 50 35 31 a0 40 0a 5c 2f 03 5f 53 42 5f 4d _GP51.@.\\.._SB_M
                        ^If(\_SB.MEM.GP52)
031e0    45 4d 5f 47 50 35 32 70 0a 00 5c 2f 03 5f 53 42 EM_GP52p..\\.._SB
                              ^Store(0x0, \_SB.MEM.GP52)
031f0    5f 4d 45 4d 5f 47 50 35 32 a0 2d 93 5c 2f 03 5f _MEM_GP52.-.\\.._
                                    ^If(LEqual(\_SB.MEM.BES1, \_SB.MEM.BT1F))
03200    53 42 5f 4d 45 4d 5f 42 45 53 31 5c 2f 03 5f 53 SB_MEM_BES1\\.._S
03210    42 5f 4d 45 4d 5f 42 54 31 46 86 5c 2e 5f 53 42 B_MEM_BT1F.\\._SB
                                       ^Notify(\_SB.BAT1, 0x80)
03220    5f 42 41 54 31 0a 80 a1 4e 04 70 5c 2f 03 5f 53 _BAT1...N.p\\.._S
                              ^ElseOp
03230    42 5f 4d 45 4d 5f 42 45 53 31 5c 2f 03 5f 53 42 B_MEM_BES1\\.._SB
03240    5f 4d 45 4d 5f 42 54 31 46 a0 1d 5c 2f 03 5f 53 _MEM_BT1F..\\.._S
03250    42 5f 4d 45 4d 5f 42 45 53 31 86 5c 2e 5f 53 42 B_MEM_BES1.\\._SB
03260    5f 42 41 54 31 0a 00 a1 0e 86 5c 2e 5f 53 42 5f _BAT1.....\\._SB_
03270    42 41 54 31 0a 01 a0 42 05 5c 2f 03 5f 53 42 5f BAT1...B.\\.._SB_
                       IfOp^  ^PkgLength, but parser confused it's a namestring...
03280    4d 45 4d 5f 47 50 35 33 70 0a 00 5c 2f 03 5f 53 MEM_GP53p..\\.._S
03290    42 5f 4d 45 4d 5f 47 50 35 33 a0 2e 92 93 5c 2f B_MEM_GP53....\\.
032a0    03 5f 53 42 5f 4d 45 4d 5f 54 4d 50 31 5c 2f 03 ._SB_MEM_TMP1\\..
032b0    5f 53 42 5f 4d 45 4d 5f 41 53 54 31 86 5c 2e 5f _SB_MEM_AST1.\\._
032c0    54 5a 5f 54 48 52 4d 0a 80 a0 34 5c 2f 03 5f 53 TZ_THRM...4\\.._S
032d0    42 5f 4d 45 4d 5f 47 50 36 30 70 0a 00 5c 2f 03 B_MEM_GP60p..\\..
032e0    5f 53 42 5f 4d 45 4d 5f 47 50 36 30 86 5c 2f 03 _SB_MEM_GP60.\\..
032f0    5f 53 42 5f 50 43 49 30 44 4f 43 4b 0a 00 a0 46 _SB_PCI0DOCK...F
03300    04 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 36 31 .\\.._SB_MEM_GP61
03310    5b 24 5c 2f 03 5f 53 42 5f 50 43 49 30 44 4b 53 [$\\.._SB_PCI0DKS
03320    51 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 Qp..\\.._SB_MEM_G
03330    50 36 31 86 5c 2f 03 5f 53 42 5f 50 43 49 30 44 P61.\\.._SB_PCI0D
03340    4f 43 4b 0a 00 a0 34 5c 2f 03 5f 53 42 5f 4d 45 OCK...4\\.._SB_ME
03350    4d 5f 47 50 36 32 70 0a 00 5c 2f 03 5f 53 42 5f M_GP62p..\\.._SB_
03360    4d 45 4d 5f 47 50 36 32 86 5c 2f 03 5f 53 42 5f MEM_GP62.\\.._SB_
03370    50 43 49 30 44 4f 43 4b 0a 01 a0 40 08 5c 2f 03 PCI0DOCK...@.\\..
03380    5f 53 42 5f 4d 45 4d 5f 47 50 36 33 70 0a 00 5c _SB_MEM_GP63p..\\
03390    2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 36 33 a0 37 .._SB_MEM_GP63.7
033a0    93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 44 43 4b 46 .\\.._SB_MEM_DCKF
033b0    0a 00 70 0a 01 5c 2f 03 5f 53 42 5f 4d 45 4d 5f ..p..\\.._SB_MEM_
033c0    44 43 4b 46 86 5c 2f 03 5f 53 42 5f 50 43 49 30 DCKF.\\.._SB_PCI0
033d0    44 4f 43 4b 0a 00 a1 24 5b 24 5c 2f 03 5f 53 42 DOCK...$[$\\.._SB
033e0    5f 50 43 49 30 44 4b 53 51 70 0a 00 5c 2f 03 5f _PCI0DKSQp..\\.._
033f0    53 42 5f 4d 45 4d 5f 44 43 4b 46 a0 22 5c 2f 03 SB_MEM_DCKF."\\..
03400    5f 53 42 5f 4d 45 4d 5f 47 50 36 34 70 0a 00 5c _SB_MEM_GP64p..\\
03410    2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 36 34 a0 22 .._SB_MEM_GP64."
03420    5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 36 35 70 \\.._SB_MEM_GP65p
03430    0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 36 ..\\.._SB_MEM_GP6
03440    35 a0 2f 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 5..\\.._SB_MEM_GP
03450    37 31 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 71p..\\.._SB_MEM_
03460    47 50 37 31 86 5c 2e 5f 53 42 5f 4c 49 44 5f 0a GP71.\\._SB_LID_.
03470    80 a0 42 0a 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 ..B.\\.._SB_MEM_G
03480    50 37 30 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d P70p..\\.._SB_MEM
03490    5f 47 50 37 30 a0 1d 5c 2f 03 5f 53 42 5f 4d 45 _GP70..\\.._SB_ME
034a0    4d 5f 56 41 4c 46 86 5c 2e 5f 53 42 5f 56 41 4c M_VALF.\\._SB_VAL
034b0    44 0a 80 a0 26 93 5c 2f 03 5f 53 42 5f 4d 45 4d D...&.\\.._SB_MEM
034c0    5f 48 4b 43 44 0a 3d 54 52 41 50 5c 2f 03 5f 53 _HKCD.=TRAP\\.._S
034d0    42 5f 4d 45 4d 5f 48 4b 43 44 a0 39 93 5c 2f 03 B_MEM_HKCD.9.\\..
034e0    5f 53 42 5f 4d 45 4d 5f 44 4f 53 32 0a 00 a0 25 _SB_MEM_DOS2...%
034f0    93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 48 4b 43 44 .\\.._SB_MEM_HKCD
03500    0a 3f 86 5c 2f 03 5f 53 42 5f 50 43 49 30 56 47 .?.\\.._SB_PCI0VG
03510    41 5f 0a 80 14 42 05 5f 4c 30 43 08 a2 4a 04 5c A_...B._L0C..J.\\


Regards,
