Module Name:    src
Committed By:   rmind
Date:           Sun Dec 20 04:11:37 UTC 2009

Modified Files:
        src/sys/arch/evbmips/rmixl: autoconf.c machdep.c

Log Message:
Fix few problems in evbmips/rmixl:
- mach_init: use mips_init_lwp0_uarea(), do not hardcode it.  Do not call
  ksyms_init(), it's called in MI.  Also, avoid struct user in few places.
- findroot: use deviter interface.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/evbmips/rmixl/autoconf.c \
    src/sys/arch/evbmips/rmixl/machdep.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/evbmips/rmixl/autoconf.c
diff -u src/sys/arch/evbmips/rmixl/autoconf.c:1.2 src/sys/arch/evbmips/rmixl/autoconf.c:1.3
--- src/sys/arch/evbmips/rmixl/autoconf.c:1.2	Mon Dec 14 00:46:02 2009
+++ src/sys/arch/evbmips/rmixl/autoconf.c	Sun Dec 20 04:11:37 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: autoconf.c,v 1.2 2009/12/14 00:46:02 matt Exp $	*/
+/*	$NetBSD: autoconf.c,v 1.3 2009/12/20 04:11:37 rmind Exp $	*/
 
 /*
  * Copyright 2002 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: autoconf.c,v 1.2 2009/12/14 00:46:02 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: autoconf.c,v 1.3 2009/12/20 04:11:37 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -83,31 +83,31 @@
 static void
 findroot(void)
 {
-	struct device *dv;
+	device_t dv;
+	deviter_t di;
 
 	if (booted_device)
 		return;
 
-	if ((booted_device == NULL) && netboot == 0)
-		for (dv = TAILQ_FIRST(&alldevs); dv != NULL;
-		     dv = TAILQ_NEXT(dv, dv_list))
+	if ((booted_device == NULL) && netboot == 0) {
+		for (dv = deviter_first(&di, DEVITER_F_ROOT_FIRST); dv != NULL;
+		    dv = deviter_next(&di)) {
 			if (device_class(dv) == DV_DISK &&
 			    device_is_a(dv, "wd"))
-				    booted_device = dv;
-
+				booted_device = dv;
+		}
+		deviter_release(&di);
+	}
 	/*
 	 * XXX Match up MBR boot specification with BSD disklabel for root?
 	 */
 	booted_partition = 0;
-
-	return;
 }
 
 void
-device_register(dev, aux)
-	struct device *dev;
-	void *aux;
+device_register(struct device *dev, void *aux)
 {
+
 	if ((booted_device == NULL) && (netboot == 1))
 		if (device_class(dev) == DV_IFNET)
 			booted_device = dev;
Index: src/sys/arch/evbmips/rmixl/machdep.c
diff -u src/sys/arch/evbmips/rmixl/machdep.c:1.2 src/sys/arch/evbmips/rmixl/machdep.c:1.3
--- src/sys/arch/evbmips/rmixl/machdep.c:1.2	Mon Dec 14 00:46:03 2009
+++ src/sys/arch/evbmips/rmixl/machdep.c	Sun Dec 20 04:11:37 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.2 2009/12/14 00:46:03 matt Exp $	*/
+/*	$NetBSD: machdep.c,v 1.3 2009/12/20 04:11:37 rmind Exp $	*/
 
 /*
  * Copyright 2001, 2002 Wasabi Systems, Inc.
@@ -112,7 +112,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.2 2009/12/14 00:46:03 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.3 2009/12/20 04:11:37 rmind Exp $");
 
 #include "opt_ddb.h"
 #include "opt_com.h"
@@ -124,7 +124,6 @@
 #include <sys/kernel.h>
 #include <sys/buf.h>
 #include <sys/reboot.h>
-#include <sys/user.h>
 #include <sys/mount.h>
 #include <sys/kcore.h>
 #include <sys/boot_flag.h>
@@ -268,7 +267,7 @@
 mach_init(int argc, int32_t *argv, void *envp, int64_t infop)
 {
 	struct rmixl_config *rcp = &rmixl_configuration;
-	void *kernend, *v;
+	void *kernend;
 	u_long memsize;
 	u_int vm_cluster_cnt;
 	uint32_t r;
@@ -402,27 +401,9 @@
 	pmap_bootstrap();
 
 	/*
-	 * Allocate space for proc0's USPACE.
+	 * Allocate uarea page for lwp0 and set it.
 	 */
-	v = (void *)uvm_pageboot_alloc(USPACE); 
-	lwp0.l_addr = proc0paddr = (struct user *)v;
-	lwp0.l_md.md_regs = (struct frame *)((char *)v + USPACE) - 1;
-#ifdef _LP64
-        lwp0.l_md.md_regs->f_regs[_R_SR] = MIPS_SR_KX;
-#endif
-        proc0paddr->u_pcb.pcb_context.val[_L_SR] =
-#ifdef _LP64
-            MIPS_SR_KX |
-#endif  
-            MIPS_INT_MASK | MIPS_SR_INT_IE; /* SR */
-
-
-	/*
-	 * Initialize debuggers, and break into them, if appropriate.
-	 */
-#if NKSYMS || defined(DDB) || defined(LKM)
-	ksyms_init(0, 0, 0);
-#endif
+	mips_init_lwp0_uarea();
 
 #if defined(DDB)
 	if (boothowto & RB_KDB)
@@ -844,14 +825,12 @@
 int	waittime = -1;
 
 void
-cpu_reboot(howto, bootstr)
-	int howto;
-	char *bootstr;
+cpu_reboot(int howto, char *bootstr)
 {
 
 	/* Take a snapshot before clobbering any registers. */
 	if (curproc)
-		savectx((struct user *)curpcb);
+		savectx(curpcb);
 
 	if (cold) {
 		howto |= RB_HALT;

Reply via email to