From owner-acpi-jp@jp.freebsd.org  Sun Sep 30 19:38:23 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id TAA75032;
	Sun, 30 Sep 2001 19:38:23 +0900 (JST)
	(envelope-from owner-acpi-jp@jp.FreeBSD.org)
Received: from tasogare.imasy.or.jp (root@tasogare.imasy.or.jp [202.227.24.5])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id TAA75024
	for <acpi-jp@jp.freebsd.org>; Sun, 30 Sep 2001 19:38:22 +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.11.6+3.4W/8.11.6/tasogare) with ESMTP/inet id f8UAcJm38190;
	Sun, 30 Sep 2001 19:38:20 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
Date: Sun, 30 Sep 2001 19:38:18 +0900 (JST)
Message-Id: <20010930.193818.74757024.iwasaki@jp.FreeBSD.org>
To: acpi-jp@jp.freebsd.org, kabaev@bellatlantic.net
From: Mitsuru IWASAKI <iwasaki@jp.freebsd.org>
In-Reply-To: <3BB538AD.3090501@bellatlantic.net>
References: <3BB538AD.3090501@bellatlantic.net>
X-Mailer: Mew version 2.0 on Emacs 20.7 / Mule 4.0 (HANANOEN)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Reply-To: acpi-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+010328
X-Sequence: acpi-jp 1312
Subject: [acpi-jp 1312] Re: CURRENT crashes in acpi on IBM ThnkPad 77ED
Errors-To: owner-acpi-jp@jp.freebsd.org
Sender: owner-acpi-jp@jp.freebsd.org
X-Originator: iwasaki@jp.freebsd.org

Hi, thanks for reporting.  I think this is a problem with IBM BIOS.

> Hi,
> I tried to install -CURRENT on the IBM ThinkPad 77ED today. I started 
> with tle latest -CURRENT snapshot
> and then procceeded with the usual buildworld procedure. Unfortunately, 
> newest kernel panics
> almost immediately on boot. The following is an output of boot -v  with  
> a crash
> backtrace from ddb. Also, the acpidump info is attached. I could poke 
> around with gdb over serial line if
> additional information is needed. Any help with getting this laptop up 
> and running will be highly appreciated. 
> 
> --------- BEGIN DMESG & TRACE ------------
> /boot/kernel/acpi.ko text=0x32594 data=0xf9c+0x1028 
[snip]
> acpi0: <IBM    TP770E  > on motherboard
> acpi0: power button is handled as a fixed feature programming model.
> Timecounter "ACPI"  frequency 3579545 Hz
> panic: ACPI fatal signal, type 0x2  code 0x90000002  argument 0x0
> Debugger("panic")
> Stopped at      Debugger+0x44:  pushl   %ebx

Yes, this happened when evaluating _CRS (current resources) of the devices,
and your DSDT has many of Fatal op.

% grep 'Fatal(0x2, 0x90000002, 0x0)' tp770ed.asl | wc
      15      45     924

_SB_.PCI0.ISA0.CS00._CRS and SB_.PCI0.ISA0.CS03._CRS has Fatal op.
Typical ASL code like this;
                    If(LEqual(ESI2, 0x3)) {
                        Store(0x0330, MDMN)
                        Store(0x0330, MDMX)
                    }
                    Else {
                        If(LEqual(ESI2, 0x2)) {
                            Store(0x0320, MDMN)
                            Store(0x0320, MDMX)
                        }
                        Else {
                            If(LEqual(ESI2, 0x1)) {
                                Store(0x0310, MDMN)
                                Store(0x0310, MDMX)
                            }
                            Else {
                                If(LEqual(ESI2, 0x0)) {
                                    Store(0x0300, MDMN)
                                    Store(0x0300, MDMX)
                                }
                                Else {
                                    Fatal(0x2, 0x90000002, 0x0)


I'm not sure how should we solve this... Could you apply the patch
so that we just ignore the Fatal panic and see what's going to happen next?

Index: OsdDebug.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/acpica/Osd/OsdDebug.c,v
retrieving revision 1.2
diff -u -r1.2 OsdDebug.c
--- OsdDebug.c	21 Jul 2001 04:10:01 -0000	1.2
+++ OsdDebug.c	30 Sep 2001 10:16:26 -0000
@@ -84,7 +84,7 @@
     switch(Function) {
     case ACPI_SIGNAL_FATAL:
 	fatal = (ACPI_SIGNAL_FATAL_INFO *)Info;
-	panic("ACPI fatal signal, type 0x%x  code 0x%x  argument 0x%x",
+	printf("ACPI fatal signal, type 0x%x  code 0x%x  argument 0x%x",
 	      fatal->Type, fatal->Code, fatal->Argument);
 	break;
 	

