Subject: PPC 7450 and openfirmware.c
To: None <port-macppc@netbsd.org>
From: Makoto Fujiwara <makoto@ki.nu>
List: port-macppc
Date: 06/11/2002 16:35:20
MW> PowerMacintosh G4 (Quicksilver) 800MP fails with GENERIC
MW> makoto@ki.nu
MW> panic: lockmgr: pid 0, not exclusive lock holder 1008730187 unlocking
MW> Stopped in pid () at   0x30f214:	lwz r0,r1, 0x14

CPU: 7450

Unbelievably enough, if I apply change attached, it runs upto
multi-user mode. But it is very unstable, hungs shortly.
Also, the beginning of dmesg corrupted.

More importantly, the original panic message appears at the timing of
somewhere in following code.
 sys/arch/macppc/macppc/machdep.c
    978 #if NUKBD > 0
    979         if (OF_call_method("`usb-kbd-ihandles", stdin, 0, 1, &ukbds) != -1 &&
    980             ukbds != NULL && ukbds->ihandle != 0 &&
    981             OF_instance_to_package(ukbds->ihandle) != -1) {
    982                 printf("console keyboard type: USB\n");
    983                 ukbd_cnattach();
    984                 goto kbd_found;
    985         }


--- sys/arch/powerpc/powerpc/openfirm.c-1.11	Mon Sep 24 22:22:33 2001
+++ sys/arch/powerpc/powerpc/openfirm.c	Tue Jun 11 16:19:08 2002
@@ -127,7 +127,7 @@
 		1,
 		1,
 	};
-
+	printf("  ** OF_instance_to_package\n");
 	ofw_stack();
 	args.ihandle = ihandle;
 	if (openfirmware(&args) == -1)
@@ -347,7 +347,7 @@
 		1,
 	};
 	int *ip, n;
-
+	printf(" ** OF_call_method\n");
 	if (nargs > 6)
 		return -1;
 	args.nargs = nargs + 2;

---
Makoto Fujiwara,