Module Name: src
Committed By: matt
Date: Mon Feb 6 17:51:48 UTC 2012
Modified Files:
src/sys/arch/cats/cats: cats_machdep.c
Log Message:
Make this compile with VERBOSE_ARM_INIT.
If the AOUT magic is not ZMAGIC, assume kernel is ELF.
To generate a diff of this commit:
cvs rdiff -u -r1.71 -r1.72 src/sys/arch/cats/cats/cats_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/cats/cats/cats_machdep.c
diff -u src/sys/arch/cats/cats/cats_machdep.c:1.71 src/sys/arch/cats/cats/cats_machdep.c:1.72
--- src/sys/arch/cats/cats/cats_machdep.c:1.71 Fri Jul 1 20:35:31 2011
+++ src/sys/arch/cats/cats/cats_machdep.c Mon Feb 6 17:51:47 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: cats_machdep.c,v 1.71 2011/07/01 20:35:31 dyoung Exp $ */
+/* $NetBSD: cats_machdep.c,v 1.72 2012/02/06 17:51:47 matt Exp $ */
/*
* Copyright (c) 1997,1998 Mark Brinicombe.
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cats_machdep.c,v 1.71 2011/07/01 20:35:31 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cats_machdep.c,v 1.72 2012/02/06 17:51:47 matt Exp $");
#include "opt_ddb.h"
#include "opt_modular.h"
@@ -385,7 +385,8 @@ initarm(void *arm_bootargs)
if (ebsabootinfo.bt_magic != BT_MAGIC_NUMBER_EBSA
&& ebsabootinfo.bt_magic != BT_MAGIC_NUMBER_CATS)
- panic("Incompatible magic number passed in boot args");
+ panic("Incompatible magic number %#x passed in boot args",
+ ebsabootinfo.bt_magic);
#ifdef VERBOSE_INIT_ARM
/* output the incoming bootinfo */
@@ -581,8 +582,11 @@ initarm(void *arm_bootargs)
#endif
/* Now we fill in the L2 pagetable for the kernel static code/data */
-#ifdef ABLEELF
- {
+ struct exec *kernexec = (struct exec *)KERNEL_TEXT_BASE;
+ if (N_GETMAGIC(kernexec[0]) != ZMAGIC) {
+ /*
+ * If it's not a.out, assume ELF.
+ */
extern char etext[], _end[];
size_t textsize = (uintptr_t) etext - KERNEL_BASE;
size_t totalsize = (uintptr_t) _end - KERNEL_BASE;
@@ -598,35 +602,27 @@ initarm(void *arm_bootargs)
(void) pmap_map_chunk(l1pagetable, KERNEL_BASE + logical,
physical_start + logical, totalsize - textsize,
VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
- }
-#else
- {
- struct exec *kernexec = (struct exec *)KERNEL_TEXT_BASE;
- if (N_GETMAGIC(kernexec[0]) != ZMAGIC)
- panic("Illegal kernel format");
- else {
- extern int end;
- u_int logical;
+ } else {
+ extern int end;
+ u_int logical;
- logical = pmap_map_chunk(l1pagetable, KERNEL_TEXT_BASE,
- physical_start, kernexec->a_text,
- VM_PROT_READ, PTE_CACHE);
- logical += pmap_map_chunk(l1pagetable,
- KERNEL_TEXT_BASE + logical,
- physical_start + logical, kernexec->a_data,
- VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
- logical += pmap_map_chunk(l1pagetable,
- KERNEL_TEXT_BASE + logical,
- physical_start + logical, kernexec->a_bss,
- VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
- logical += pmap_map_chunk(l1pagetable,
- KERNEL_TEXT_BASE + logical,
- physical_start + logical, kernexec->a_syms + sizeof(int)
- + *(u_int *)((int)&end + kernexec->a_syms + sizeof(int)),
- VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
- }
+ logical = pmap_map_chunk(l1pagetable, KERNEL_TEXT_BASE,
+ physical_start, kernexec->a_text,
+ VM_PROT_READ, PTE_CACHE);
+ logical += pmap_map_chunk(l1pagetable,
+ KERNEL_TEXT_BASE + logical,
+ physical_start + logical, kernexec->a_data,
+ VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
+ logical += pmap_map_chunk(l1pagetable,
+ KERNEL_TEXT_BASE + logical,
+ physical_start + logical, kernexec->a_bss,
+ VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
+ logical += pmap_map_chunk(l1pagetable,
+ KERNEL_TEXT_BASE + logical,
+ physical_start + logical, kernexec->a_syms + sizeof(int)
+ + *(u_int *)((int)&end + kernexec->a_syms + sizeof(int)),
+ VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
}
-#endif
/*
* PATCH PATCH ...
@@ -695,7 +691,7 @@ initarm(void *arm_bootargs)
*/
#ifdef VERBOSE_INIT_ARM
/* checking sttb address */
- printf("cpu_setttb address = %p\n", cpu_setttb);
+ printf("cpu_setttb address = %p\n", cpufuncs.cf_setttb);
printf("kernel_l1pt=0x%08x old = 0x%08x, phys = 0x%08x\n",
((uint*)kernel_l1pt.pv_va)[0xf00],