On Thu, 17 Mar 2011 23:31:02 +0000 Jordan Hargrave wrote:
> It looks like there is a bug in the AML on that particular system (the code is
> being called in from the atk0110 driver).
> bios0: vendor American Megatrends Inc. version "2105" date 07/23/2010
> bios0: ASUSTeK Computer INC. M4A785TD-V EVO
> 
> Eventually the AML code tries to execute the following:
>         Store (SMBU, Local5)
>         While (Not (LEqual (And (Local5, 0x02), Zero)))
>         {
>             Sleep (0x64)
>             Store (SMBU, Local5)
>         }
> 
> It should be:
>         While (LNot (LEqual (And (Local5, 0x02), Zero)))
> 
> 
> The first code, the while loop is always true since they are using a bitwise
> Not not a Logical Not.
> 
> So the issue is with that specific system/BIOS/AML.

Thanks for debugging the issue.

Is there a way to see human-readable dump of aml code?
I am wondering if it is safe for me to change Not opcode to equal LNot?

At least, that way the system seems to boot with acpi enabled.

Some other better work-around is also welcome.

dmesg and my acpi/aml modifications below:
OpenBSD 4.9 (GENERIC.MP) #8: Fri Mar 18 06:52:57 EET 2011
    tkoskine@toga.local:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 3487105024 (3325MB)
avail mem = 3380256768 (3223MB)
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.5 @ 0x9f400 (68 entries)
bios0: vendor American Megatrends Inc. version "2105" date 07/23/2010
bios0: ASUSTeK Computer INC. M4A785TD-V EVO
acpi0 at bios0: rev 2
acpi0: sleep states S0 S1 S3 S4 S5
acpi0: tables DSDT FACP APIC MCFG OEMB SRAT HPET SSDT
acpi0: wakeup devices PCE2(S4) PCE3(S4) PCE4(S4) PCE5(S4) PCE6(S4) PCE7(S4) 
PCE9(S4) PCEA(S4) PCEB(S4) PCEC(S4) SBAZ(S4) PS2M(S4) PS2K(S4) UAR1(S4) 
P0PC(S4) UHC1(S4) UHC2(S4) UHC3(S4) USB4(S4) UHC5(S4) UHC6(S4) UHC7(S4)
acpitimer0 at acpi0: 3579545 Hz, 32 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: AMD Phenom(tm) II X4 965 Processor, 3415.69 MHz
cpu0: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,MWAIT,CX16,POPCNT,NXE,MMXX,FFXSR,LONG,3DNOW2,3DNOW
cpu0: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 
16-way L2 cache
cpu0: ITLB 32 4KB entries fully associative, 16 4MB entries fully associative
cpu0: DTLB 48 4KB entries fully associative, 48 4MB entries fully associative
cpu0: apic clock running at 200MHz
cpu1 at mainbus0: apid 1 (application processor)
cpu1: AMD Phenom(tm) II X4 965 Processor, 3415.23 MHz
cpu1: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,MWAIT,CX16,POPCNT,NXE,MMXX,FFXSR,LONG,3DNOW2,3DNOW
cpu1: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 
16-way L2 cache
cpu1: ITLB 32 4KB entries fully associative, 16 4MB entries fully associative
cpu1: DTLB 48 4KB entries fully associative, 48 4MB entries fully associative
cpu2 at mainbus0: apid 2 (application processor)
cpu2: AMD Phenom(tm) II X4 965 Processor, 3415.23 MHz
cpu2: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,MWAIT,CX16,POPCNT,NXE,MMXX,FFXSR,LONG,3DNOW2,3DNOW
cpu2: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 
16-way L2 cache
cpu2: ITLB 32 4KB entries fully associative, 16 4MB entries fully associative
cpu2: DTLB 48 4KB entries fully associative, 48 4MB entries fully associative
cpu3 at mainbus0: apid 3 (application processor)
cpu3: AMD Phenom(tm) II X4 965 Processor, 3415.23 MHz
cpu3: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,MWAIT,CX16,POPCNT,NXE,MMXX,FFXSR,LONG,3DNOW2,3DNOW
cpu3: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 
16-way L2 cache
cpu3: ITLB 32 4KB entries fully associative, 16 4MB entries fully associative
cpu3: DTLB 48 4KB entries fully associative, 48 4MB entries fully associative
ioapic0 at mainbus0: apid 4 pa 0xfec00000, version 21, 24 pins
acpimcfg0 at acpi0 addr 0xe0000000, bus 0-255
acpihpet0 at acpi0: 14318180 Hz
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus -1 (P0P1)
acpiprt2 at acpi0: bus 1 (PCE2)
acpiprt3 at acpi0: bus -1 (PCE3)
acpiprt4 at acpi0: bus 2 (PCE4)
acpiprt5 at acpi0: bus -1 (PCE5)
acpiprt6 at acpi0: bus -1 (PCE6)
acpiprt7 at acpi0: bus -1 (PCE7)
acpiprt8 at acpi0: bus -1 (PCE9)
acpiprt9 at acpi0: bus 3 (PCEA)
acpiprt10 at acpi0: bus 4 (P0PC)
acpicpu0 at acpi0: PSS
acpicpu1 at acpi0: PSS
acpicpu2 at acpi0: PSS
acpicpu3 at acpi0: PSS
aibs0 at acpi0: RTMP RVLT RFAN GGRP GITM SITM
acpibtn0 at acpi0: PWRB
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "AMD RS780 Host" rev 0x00
ppb0 at pci0 dev 2 function 0 "AMD RS780 PCIE" rev 0x00: apic 4 int 18 (irq 10)
pci1 at ppb0 bus 1
vga1 at pci1 dev 0 function 0 "ATI Radeon HD 4890" rev 0x00
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
radeondrm0 at vga1: apic 4 int 18 (irq 10)
drm0 at radeondrm0
azalia0 at pci1 dev 0 function 1 "ATI Radeon HD 48xx HD Audio" rev 0x00: apic 4 
int 19 (irq 10)
azalia0: no supported codecs
azalia0: initialization failure, detaching
ppb1 at pci0 dev 4 function 0 "AMD RS780 PCIE" rev 0x00: apic 4 int 16 (irq 11)
pci2 at ppb1 bus 2
puc0 at pci2 dev 0 function 0 "Oxford OX16PCIE952" rev 0x00: ports: 2 com
com2 at puc0 port 0 apic 4 int 16 (irq 11): st16650, 32 byte fifo
com2: probed fifo depth: 16 bytes
com3 at puc0 port 1 apic 4 int 16 (irq 11): st16650, 32 byte fifo
com3: probed fifo depth: 16 bytes
ppb2 at pci0 dev 10 function 0 "AMD RS780 PCIE" rev 0x00: apic 4 int 18 (irq 10)
pci3 at ppb2 bus 3
re0 at pci3 dev 0 function 0 "Realtek 8168" rev 0x03: RTL8168D/8111D (0x2800), 
apic 4 int 18 (irq 10), address e0:cb:4e:ba:49:d2
rgephy0 at re0 phy 7: RTL8169S/8110S PHY, rev. 2
ahci0 at pci0 dev 17 function 0 "ATI SBx00 SATA" rev 0x00: apic 4 int 22 (irq 
10), AHCI 1.1
scsibus0 at ahci0: 32 targets
sd0 at scsibus0 targ 0 lun 0: <ATA, Kingston SSDNow, B090> SCSI3 0/direct fixed
sd0: 61057MB, 512 bytes/sec, 125045424 sec total
sd1 at scsibus0 targ 1 lun 0: <ATA, WDC WD1500HLFS-0, 04.0> SCSI3 0/direct fixed
sd1: 143089MB, 512 bytes/sec, 293046768 sec total
sd2 at scsibus0 targ 2 lun 0: <ATA, WDC WD1500HLFS-0, 04.0> SCSI3 0/direct fixed
sd2: 143089MB, 512 bytes/sec, 293046768 sec total
ohci0 at pci0 dev 18 function 0 "ATI SB700 USB" rev 0x00: apic 4 int 16 (irq 
11), version 1.0, legacy support
ohci1 at pci0 dev 18 function 1 "ATI SB700 USB" rev 0x00: apic 4 int 16 (irq 
11), version 1.0, legacy support
ehci0 at pci0 dev 18 function 2 "ATI SB700 USB2" rev 0x00: apic 4 int 17 (irq 
11)
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "ATI EHCI root hub" rev 2.00/1.00 addr 1
ohci2 at pci0 dev 19 function 0 "ATI SB700 USB" rev 0x00: apic 4 int 18 (irq 
10), version 1.0, legacy support
ohci3 at pci0 dev 19 function 1 "ATI SB700 USB" rev 0x00: apic 4 int 18 (irq 
10), version 1.0, legacy support
ehci1 at pci0 dev 19 function 2 "ATI SB700 USB2" rev 0x00: apic 4 int 19 (irq 
10)
usb1 at ehci1: USB revision 2.0
uhub1 at usb1 "ATI EHCI root hub" rev 2.00/1.00 addr 1
piixpm0 at pci0 dev 20 function 0 "ATI SBx00 SMBus" rev 0x3c: SMI
iic0 at piixpm0
iic0: addr 0x20 01=19 02=24 03=2e 04=00 05=00 06=00 07=00 08=00 09=00 0a=10 
0b=10 0c=10 0d=10 0e=28 0f=8c 10=3d 11=00 12=00 13=00 14=0a 15=0a 16=38 17=a4 
18=e0 1a=ae 1b=a4 1c=b3 1d=00 1e=0c 1f=01 20=01 21=01 22=01 23=bb 3e=03 b2=09 
b3=27 b5=09 words 00=ff19 01=1924 02=242e 03=2e00 04=0000 05=0000 06=0000 
07=0000
spdmem0 at iic0 addr 0x52: 2GB DDR3 SDRAM PC3-10600
spdmem1 at iic0 addr 0x53: 2GB DDR3 SDRAM PC3-10600
pciide0 at pci0 dev 20 function 1 "ATI SB700 IDE" rev 0x00: DMA, channel 0 
configured to compatibility, channel 1 configured to compatibility
atapiscsi0 at pciide0 channel 1 drive 0
scsibus1 at atapiscsi0: 2 targets
cd0 at scsibus1 targ 0 lun 0: <HL-DT-ST, DVDRAM GH22LS50, TL02> ATAPI 5/cdrom 
removable
wd0 at pciide0 channel 1 drive 1: <ST3500418AS>
wd0: 16-sector PIO, LBA48, 476940MB, 976773168 sectors
cd0(pciide0:1:0): using PIO mode 4, DMA mode 2, Ultra-DMA mode 5
wd0(pciide0:1:1): using PIO mode 4, DMA mode 2, Ultra-DMA mode 6
azalia1 at pci0 dev 20 function 2 "ATI SBx00 HD Audio" rev 0x00: apic 4 int 16 
(irq 11)
azalia1: codecs: VIA/0x0397
audio0 at azalia1
pcib0 at pci0 dev 20 function 3 "ATI SB700 ISA" rev 0x00
ppb3 at pci0 dev 20 function 4 "ATI SB600 PCI" rev 0x00
pci4 at ppb3 bus 4
em0 at pci4 dev 7 function 0 "Intel PRO/1000GT (82541GI)" rev 0x05: apic 4 int 
22 (irq 10), address 00:1b:21:54:4b:8d
"VIA VT6306 FireWire" rev 0xc0 at pci4 dev 8 function 0 not configured
ohci4 at pci0 dev 20 function 5 "ATI SB700 USB" rev 0x00: apic 4 int 18 (irq 
10), version 1.0, legacy support
pchb1 at pci0 dev 24 function 0 "AMD AMD64 10h HyperTransport" rev 0x00
pchb2 at pci0 dev 24 function 1 "AMD AMD64 10h Address Map" rev 0x00
pchb3 at pci0 dev 24 function 2 "AMD AMD64 10h DRAM Cfg" rev 0x00
km0 at pci0 dev 24 function 3 "AMD AMD64 10h Misc Cfg" rev 0x00
pchb4 at pci0 dev 24 function 4 "AMD AMD64 10h Link Cfg" rev 0x00
usb2 at ohci0: USB revision 1.0
uhub2 at usb2 "ATI OHCI root hub" rev 1.00/1.00 addr 1
usb3 at ohci1: USB revision 1.0
uhub3 at usb3 "ATI OHCI root hub" rev 1.00/1.00 addr 1
usb4 at ohci2: USB revision 1.0
uhub4 at usb4 "ATI OHCI root hub" rev 1.00/1.00 addr 1
usb5 at ohci3: USB revision 1.0
uhub5 at usb5 "ATI OHCI root hub" rev 1.00/1.00 addr 1
isa0 at pcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
it0 at isa0 port 0x2e/2: IT8712F rev 8, EC port 0x290
usb6 at ohci4: USB revision 1.0
uhub6 at usb6 "ATI OHCI root hub" rev 1.00/1.00 addr 1
mtrr: Pentium Pro MTRR support
rum0 at uhub0 port 1 "Ralink Technology RT2573" rev 2.00/0.01 addr 2
rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528, address 00:0e:2e:c4:a9:de
ulpt0 at uhub2 port 2 configuration 1 interface 0 "Brother HL-1450 series" rev 
1.00/1.00 addr 2
ulpt0: using bi-directional mode
uhidev0 at uhub3 port 2 configuration 1 interface 0 "Logitech USB Optical 
Mouse" rev 2.00/43.01 addr 2
uhidev0: iclass 3/1
ums0 at uhidev0: 3 buttons, Z dir
wsmouse0 at ums0 mux 0
uhidev1 at uhub3 port 3 configuration 1 interface 0 "BTC USB Multimedia 
Keyboard" rev 1.10/1.00 addr 3
uhidev1: iclass 3/1
ukbd0 at uhidev1: 8 modifier keys, 6 key codes
wskbd1 at ukbd0 mux 1
wskbd1: connecting to wsdisplay0
uhidev2 at uhub3 port 3 configuration 1 interface 1 "BTC USB Multimedia 
Keyboard" rev 1.10/1.00 addr 3
uhidev2: iclass 3/0, 3 report ids
uhid0 at uhidev2 reportid 1: input=1, output=0, feature=0
uhid1 at uhidev2 reportid 2: input=3, output=0, feature=0
uhid2 at uhidev2 reportid 3: input=3, output=0, feature=8
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 1 targets
sd3 at scsibus3 targ 0 lun 0: <OPENBSD, SR RAID 0, 004> SCSI2 0/direct fixed
sd3: 286172MB, 512 bytes/sec, 586082048 sec total
root on sd0a swap on sd0b dump on sd0b


Index: dsdt.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
retrieving revision 1.181
diff -u -p -r1.181 dsdt.c
--- dsdt.c      2 Jan 2011 04:56:57 -0000       1.181
+++ dsdt.c      18 Mar 2011 05:12:14 -0000
@@ -1145,7 +1145,8 @@ aml_evalexpr(int64_t lhs, int64_t rhs, i
                res = (lhs ^ rhs);
                break;
        case AMLOP_NOT:
-               res = ~(lhs);
+               /* res = ~(lhs); */
+               res = (!lhs);
                break;
 
                /* Conversion/misc */

-- 
Tero Koskinen <tero.koski...@iki.fi>

Reply via email to