Module Name:    src
Committed By:   tsutsui
Date:           Thu Jan  6 13:25:32 UTC 2011

Modified Files:
        src/sys/arch/hp300/hp300: leds.c pmap_bootstrap.c

Log Message:
Move VA allocation of ledbase to leds.c just before pmap_enter(9)
to reduce MD quirk in pmap_bootstrap.c.


To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.19 src/sys/arch/hp300/hp300/leds.c
cvs rdiff -u -r1.52 -r1.53 src/sys/arch/hp300/hp300/pmap_bootstrap.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/hp300/hp300/leds.c
diff -u src/sys/arch/hp300/hp300/leds.c:1.18 src/sys/arch/hp300/hp300/leds.c:1.19
--- src/sys/arch/hp300/hp300/leds.c:1.18	Sun Mar  4 05:59:49 2007
+++ src/sys/arch/hp300/hp300/leds.c	Thu Jan  6 13:25:32 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: leds.c,v 1.18 2007/03/04 05:59:49 christos Exp $	*/
+/*	$NetBSD: leds.c,v 1.19 2011/01/06 13:25:32 tsutsui Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1990, 1993
@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: leds.c,v 1.18 2007/03/04 05:59:49 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: leds.c,v 1.19 2011/01/06 13:25:32 tsutsui Exp $");
 
 #include <sys/param.h>
 
@@ -85,7 +85,7 @@
 
 #include <hp300/hp300/leds.h>
 
-extern void *	ledbase;	/* kva of LED page */
+static vaddr_t	ledbase;	/* kva of LED page */
 uint8_t		*ledaddr;	/* actual address of LEDs */
 static volatile uint8_t currentleds; /* current LED status */
 
@@ -96,10 +96,11 @@
 ledinit(void)
 {
 
-	pmap_enter(pmap_kernel(), (vaddr_t)ledbase, (paddr_t)LED_ADDR,
+	ledbase = uvm_km_alloc(kernel_map, PAGE_SIZE, 0, UVM_KMF_VAONLY);
+	pmap_enter(pmap_kernel(), ledbase, (paddr_t)LED_ADDR,
 	    VM_PROT_READ|VM_PROT_WRITE, VM_PROT_READ|VM_PROT_WRITE|PMAP_WIRED);
 	pmap_update(pmap_kernel());
-	ledaddr = (uint8_t *) ((long)ledbase | (LED_ADDR & PGOFSET));
+	ledaddr = (uint8_t *)(ledbase | (LED_ADDR & PGOFSET));
 }
 
 /*

Index: src/sys/arch/hp300/hp300/pmap_bootstrap.c
diff -u src/sys/arch/hp300/hp300/pmap_bootstrap.c:1.52 src/sys/arch/hp300/hp300/pmap_bootstrap.c:1.53
--- src/sys/arch/hp300/hp300/pmap_bootstrap.c:1.52	Thu Jan  6 13:03:47 2011
+++ src/sys/arch/hp300/hp300/pmap_bootstrap.c	Thu Jan  6 13:25:32 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap_bootstrap.c,v 1.52 2011/01/06 13:03:47 tsutsui Exp $	*/
+/*	$NetBSD: pmap_bootstrap.c,v 1.53 2011/01/06 13:25:32 tsutsui Exp $	*/
 
 /*
  * Copyright (c) 1991, 1993
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap_bootstrap.c,v 1.52 2011/01/06 13:03:47 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap_bootstrap.c,v 1.53 2011/01/06 13:25:32 tsutsui Exp $");
 
 #include <sys/param.h>
 #include <uvm/uvm_extern.h>
@@ -63,12 +63,10 @@
  *	CADDR1, CADDR2:	pmap zero/copy operations
  *	vmmap:		/dev/mem, crash dumps, parity error checking
  *	msgbufaddr:	kernel message buffer
- *	ledbase:	SPU LEDs
  */
 void *CADDR1, *CADDR2;
 char *vmmap;
 void *msgbufaddr;
-void *ledbase;
 
 void pmap_bootstrap(paddr_t, paddr_t);
 
@@ -483,8 +481,6 @@
 		va += PAGE_SIZE;
 		RELOC(vmmap, void *) = (void *)va;
 		va += PAGE_SIZE;
-		RELOC(ledbase, void *) = (void *)va;
-		va += PAGE_SIZE;
 		RELOC(msgbufaddr, void *) = (void *)va;
 		va += m68k_round_page(MSGBUFSIZE);
 		RELOC(virtual_avail, vaddr_t) = va;

Reply via email to