Module Name: src
Committed By: cliff
Date: Fri Jan 29 00:22:53 UTC 2010
Modified Files:
src/sys/arch/mips/rmi [matt-nb5-mips64]: rmixl_cpu.c
Log Message:
- avoid cpu_wakeup callback if running on PSB_TYPE_DELL firmware
To generate a diff of this commit:
cvs rdiff -u -r1.1.2.3 -r1.1.2.4 src/sys/arch/mips/rmi/rmixl_cpu.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/mips/rmi/rmixl_cpu.c
diff -u src/sys/arch/mips/rmi/rmixl_cpu.c:1.1.2.3 src/sys/arch/mips/rmi/rmixl_cpu.c:1.1.2.4
--- src/sys/arch/mips/rmi/rmixl_cpu.c:1.1.2.3 Sun Jan 24 05:39:57 2010
+++ src/sys/arch/mips/rmi/rmixl_cpu.c Fri Jan 29 00:22:53 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: rmixl_cpu.c,v 1.1.2.3 2010/01/24 05:39:57 cliff Exp $ */
+/* $NetBSD: rmixl_cpu.c,v 1.1.2.4 2010/01/29 00:22:53 cliff Exp $ */
/*
* Copyright 2002 Wasabi Systems, Inc.
@@ -38,7 +38,7 @@
#include "locators.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rmixl_cpu.c,v 1.1.2.3 2010/01/24 05:39:57 cliff Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rmixl_cpu.c,v 1.1.2.4 2010/01/29 00:22:53 cliff Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -92,8 +92,20 @@
#ifdef MULTIPROCESSOR
} else {
struct pglist pglist;
+ rmixlfw_psb_type_t psb_type = rmixl_configuration.rc_psb_type;
int error;
+ switch (psb_type) {
+ case PSB_TYPE_RMI:
+ break;
+ case PSB_TYPE_DELL:
+ /* FALLTHROUGH */
+ default:
+ aprint_error(": psb type=%s cpu_wakeup unsupported\n",
+ rmixlfw_psb_type_name(psb_type));
+ return;
+ }
+
/*
* Grab a page from the first 256MB to use to store
* exception vectors and cpu_info for this cpu.
@@ -156,7 +168,7 @@
printf("%s: wip %p\n", __func__, wip);
llk = (__cpu_simple_lock_t *)(intptr_t)wip->loader_lock;
-printf("%s: llk %p\n", __func__, llk);
+printf("%s: llk %p: %#x\n", __func__, llk, *llk);
/* XXX WTF */
xflag = (volatile uint32_t *)(intptr_t)(wip->loader_lock + 0x2c);
@@ -183,6 +195,7 @@
printf("%s: maskp %p\n", __func__, maskp);
__cpu_simple_lock(llk);
+printf("%s: llk %p: %#x\n", __func__, llk, *llk);
wip->entry.addr = addr;
wip->entry.args = 0;
@@ -202,6 +215,7 @@
RMIXL_IOREG_WRITE(RMIXL_PIC_IPIBASE, ipi);
__cpu_simple_unlock(llk);
+printf("%s: llk %p: %#x\n", __func__, llk, *llk);
Debugger();
}