NetBSD Problem Report #40471

From khorben@defora.org  Sun Jan 25 02:03:39 2009
Return-Path: <khorben@defora.org>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by narn.NetBSD.org (Postfix) with ESMTP id 6425063BAB8
	for <gnats-bugs@gnats.NetBSD.org>; Sun, 25 Jan 2009 02:03:39 +0000 (UTC)
Message-Id: <20090125020355.6E26EFC74@beast.defora.lan>
Date: Sun, 25 Jan 2009 03:03:55 +0100 (CET)
From: Pierre Pronchery <khorben@defora.org>
Reply-To:
To: gnats-bugs@gnats.NetBSD.org
Subject: ACPI quirk for ASUS CUR-DLS
X-Send-Pr-Version: 3.95

>Number:         40471
>Category:       port-i386
>Synopsis:       ACPI quirk for ASUS CUR-DLS
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-i386-maintainer
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Jan 25 02:05:00 +0000 2009
>Closed-Date:    Mon Mar 16 05:19:14 +0000 2009
>Last-Modified:  Mon Mar 16 05:19:14 +0000 2009
>Originator:     Pierre Pronchery <khorben@defora.org>
>Release:        NetBSD 5.0_BETA
>Organization:
>Environment:
System: NetBSD beast.defora.lan 5.0_BETA NetBSD 5.0_BETA (GENERIC) #8: Sun Jan 25 02:34:22 CET 2009 khorben@beast.defora.lan:/usr/obj/sys/arch/i386/compile/GENERIC i386
Architecture: i386
Machine: i386
>Description:

As already mentioned here:
http://mail-index.netbsd.org/port-i386/2008/05/18/msg000532.html
http://mail-index.netbsd.org/port-i386/2008/02/14/msg000199.html

from 4.0 on my ASUS CUR-DLS board was not willing to boot NetBSD kernels
anymore, due to an apparently broken ACPI BIOS. This board was found in
an HP NetServer E800 box, and runs the latest BIOS update I could find.

I was still able to run this machine by manually disabling ACPI, either
in the kernel config or with "boot -c". Moreover, it would only run
reliably with only one CPU enabled back then. A better solution, solving
this regression by default, is to place an additional ACPI quirk in the
kernel. With the patch found below, the dmesg from 5.0_BETA reads:

=== BEGIN PASTE ===
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 5.0_BETA (GENERIC) #8: Sun Jan 25 02:34:22 CET 2009
	khorben@beast.defora.lan:/usr/obj/sys/arch/i386/compile/GENERIC
total memory = 2047 MB
avail memory = 2000 MB
timecounter: Timecounters tick every 10.000 msec
timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
Hewlett-Packard HP NetServer (E 800)
mainbus0 (root)
ACPI: BIOS implementation in listed as broken:
ACPI: X/RSDT: OemId <HP    ,HWPC20F ,06040012>, AslId < PTL,00000000>
ACPI: not used. set acpi_force_load to use anyway.
mainbus0: Intel MP Specification (Version 1.4) (HP       E 800       )
cpu0 at mainbus0 apid 3: Intel 686-class, 1000MHz, id 0x686
cpu1 at mainbus0 apid 0: Intel 686-class, 1000MHz, id 0x686
mpbios: bus 0 is type PCI   
mpbios: bus 1 is type PCI   
mpbios: bus 2 is type PCI   
mpbios: bus 3 is type PCI   
mpbios: bus 4 is type PCI   
mpbios: bus 5 is type PCI   
mpbios: bus 6 is type PCI   
mpbios: bus 7 is type PCI   
mpbios: bus 8 is type ISA   
ioapic0 at mainbus0 apid 1: pa 0xfec00000, version 11, 16 pins
ioapic1 at mainbus0 apid 2: pa 0xfec01000, version 11, 16 pins
mpbios: WARNING: pin 17 for apic 2 too high; assuming ACPI global int value
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: vendor 0x1166 product 0x0009 (rev. 0x06)
pchb1 at pci0 dev 0 function 1
pchb1: vendor 0x1166 product 0x0009 (rev. 0x06)
pci1 at pchb1 bus 5
pci1: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
esiop0 at pci1 dev 5 function 0: Symbios Logic 53c896 (ultra2-wide scsi)
esiop0: using on-board RAM
esiop0: interrupting at ioapic1 pin 8
scsibus0 at esiop0: 16 targets, 8 luns per target
esiop1 at pci1 dev 5 function 1: Symbios Logic 53c896 (ultra2-wide scsi)
esiop1: using on-board RAM
esiop1: interrupting at ioapic1 pin 9
scsibus1 at esiop1: 16 targets, 8 luns per target
fxp0 at pci0 dev 2 function 0: i82559 Ethernet, rev 8
fxp0: interrupting at ioapic1 pin 4
fxp0: May need receiver lock-up workaround
fxp0: Ethernet address 00:e0:18:1e:52:8a
inphy0 at fxp0 phy 1: i82555 10/100 media interface, rev. 4
inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
sip0 at pci0 dev 4 function 0: NatSemi DP83815 10/100 Ethernet, rev 00
sip0: interrupting at ioapic1 pin 1
sip0: Ethernet address 00:40:f4:5c:54:31
nsphyter0 at sip0 phy 0: DP83815 10/100 media interface, rev. 1
nsphyter0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
vga1 at pci0 dev 7 function 0: vendor 0x1002 product 0x4752 (rev. 0x27)
wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
drm at vga1 not configured
piixpm0 at pci0 dev 15 function 0
piixpm0: vendor 0x1166 product 0x0200 (rev. 0x50)
piixpm0: interrupting at SMIpiixpm0: polling
iic0 at piixpm0: I2C bus
rccide0 at pci0 dev 15 function 1
rccide0: ServerWorks OSB4 IDE Controller (rev. 0x00)
rccide0: bus-master DMA support present
rccide0: primary channel configured to compatibility mode
rccide0: primary channel interrupting at ioapic0 pin 14
atabus0 at rccide0 channel 0
rccide0: secondary channel configured to compatibility mode
rccide0: secondary channel interrupting at ioapic0 pin 15
atabus1 at rccide0 channel 1
ohci0 at pci0 dev 15 function 2: vendor 0x1166 product 0x0220 (rev. 0x04)
ohci0: interrupting at ioapic1 pin 17
ohci0: OHCI version 1.0, legacy support
usb0 at ohci0: USB revision 1.0
isa0 at mainbus0
lpt0 at isa0 port 0x378-0x37b irq 7
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
attimer0 at isa0 port 0x40-0x43: AT Timer
pcppi0 at isa0 port 0x61
midi0 at pcppi0: PC speaker (CPU-intensive output)
sysbeep0 at pcppi0
npx0 at isa0 port 0xf0-0xff
npx0: reported by CPUID; using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
attimer0: attached to pcppi0
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
scsibus0: waiting 2 seconds for devices to settle...
scsibus1: waiting 2 seconds for devices to settle...
uhub0 at usb0: vendor 0x1166 OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
wd0 at atabus0 drive 0: <WDC WD800BB-00JHC0>
wd0: drive supports 16-sector PIO transfers, LBA addressing
wd0: 76319 MB, 155061 cyl, 16 head, 63 sec, 512 bytes/sect x 156301488 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd1 at atabus0 drive 1: <SAMSUNG SP2514N>
wd1: drive supports 16-sector PIO transfers, LBA48 addressing
wd1: 232 GB, 484521 cyl, 16 head, 63 sec, 512 bytes/sect x 488397168 sectors
wd1: 32-bit data port
wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd0(rccide0:0:0): using PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33) (using DMA)
wd1(rccide0:0:1): using PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33) (using DMA)
wd2 at atabus1 drive 0: <HDS722516VLAT80>
wd2: drive supports 16-sector PIO transfers, LBA48 addressing
wd2: 153 GB, 319120 cyl, 16 head, 63 sec, 512 bytes/sect x 321672960 sectors
wd2: 32-bit data port
wd2: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd3 at atabus1 drive 1: <SAMSUNG SP2514N>
wd3: drive supports 16-sector PIO transfers, LBA48 addressing
wd3: 232 GB, 484521 cyl, 16 head, 63 sec, 512 bytes/sect x 488397168 sectors
wd3: 32-bit data port
wd3: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd2(rccide0:1:0): using PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33) (using DMA)
wd3(rccide0:1:1): using PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33) (using DMA)
Kernelized RAIDframe activated
pad0: outputs: 44100Hz, 16-bit, stereo
audio0 at pad0: half duplex
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
Accounting started
=== END PASTE ===

The machine is currently running solid with both CPUs attached (passed
"./build.sh -j 4 sets"). The clock no longer drifts like observed
earlier with ~4.99.60.

On the other hand, with ACPI enabled on NetBSD 5.0, the breakpoint is
still triggered, and then the cpu1 fails to start. These messages found
online, from the dmesg of a Linux kernel, may help diagnose it:
(http://linux.derkeiler.com/Mailing-Lists/Kernel/2006-09/msg06826.html)

=== BEGIN PASTE ===
ENABLING IO-APIC IRQs
BIOS bug, IO-APIC#1 ID 3 is already used!...
... fixing up to 1. (tell your hw vendor)
..TIMER: vector=0x31 apic1=0 pin1=2 apic2=0 pin2=0
..MP-BIOS bug: 8254 timer not connected to IO-APIC
...trying to set up timer (IRQ0) through the 8259A ...
..... (found pin 0) ...works.
=== END PASTE ===

>How-To-Repeat:

Boot NetBSD 4.0 GENERIC (or subsequent versions) on an ASUS CUR-DLS board.

>Fix:

Apply this simple patch:

Index: sys/dev/acpi/acpi_quirks.c
===================================================================
RCS file: /cvsroot/src/sys/dev/acpi/acpi_quirks.c,v
retrieving revision 1.9
diff -p -u -r1.9 acpi_quirks.c
--- sys/dev/acpi/acpi_quirks.c	9 Dec 2007 20:27:53 -0000	1.9
+++ sys/dev/acpi/acpi_quirks.c	25 Jan 2009 01:50:32 -0000
@@ -62,6 +62,8 @@ static struct acpi_quirk acpi_quirks[] =
 	  ACPI_QUIRK_BROKEN },
 	{ ACPI_SIG_FADT, "NVIDIA", 0x06040000, AQ_EQ, "CK8     ",
 	  ACPI_QUIRK_IRQ0 },
+	{ ACPI_SIG_FADT, "HP    ", 0x06040012, AQ_LTE, "HWPC20F ",
+	  ACPI_QUIRK_BROKEN },
 };

 static int

>Release-Note:

>Audit-Trail:
From: Christos Zoulas <christos@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/40471 CVS commit: src/sys/dev/acpi
Date: Sun, 25 Jan 2009 02:26:30 +0000 (UTC)

 Module Name:	src
 Committed By:	christos
 Date:		Sun Jan 25 02:26:30 UTC 2009

 Modified Files:
 	src/sys/dev/acpi: acpi_quirks.c

 Log Message:
 PR/40471: Pierre Pronchery: ASUS CUR-DLS board found on HP NetServer E800 box
 has broken ACPI BIOS. Disable it.


 To generate a diff of this commit:
 cvs rdiff -r1.9 -r1.10 src/sys/dev/acpi/acpi_quirks.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: Soren Jacobsen <snj@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/40471 CVS commit: [netbsd-5] src/sys/dev/acpi
Date: Tue, 24 Feb 2009 02:53:25 +0000 (UTC)

 Module Name:	src
 Committed By:	snj
 Date:		Tue Feb 24 02:53:25 UTC 2009

 Modified Files:
 	src/sys/dev/acpi [netbsd-5]: acpi_quirks.c

 Log Message:
 Pull up following revision(s) (requested by christos in ticket #476):
 	sys/dev/acpi/acpi_quirks.c: revision 1.10
 PR/40471: Pierre Pronchery: ASUS CUR-DLS board found on HP NetServer E800 box
 has broken ACPI BIOS. Disable it.


 To generate a diff of this commit:
 cvs rdiff -r1.9 -r1.9.24.1 src/sys/dev/acpi/acpi_quirks.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->feedback
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Mon, 16 Mar 2009 04:26:45 +0000
State-Changed-Why:
Is this fixed?


From: Pierre Pronchery <khorben@defora.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: port-i386/40471 (ACPI quirk for ASUS CUR-DLS)
Date: Mon, 16 Mar 2009 05:43:58 +0100

 dholland@NetBSD.org wrote:
 > Synopsis: ACPI quirk for ASUS CUR-DLS
 > 
 > State-Changed-From-To: open->feedback
 > State-Changed-By: dholland@NetBSD.org
 > State-Changed-When: Mon, 16 Mar 2009 04:26:45 +0000
 > State-Changed-Why:
 > Is this fixed?

 Yes, and it was pulled-up to NetBSD 5.

 Thanks again!
 -- 
 khorben

State-Changed-From-To: feedback->closed
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Mon, 16 Mar 2009 05:19:14 +0000
State-Changed-Why:
Fixed; thanks for the rapid response :-)


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.