version 1.56.38.2, 2008/03/23 02:03:59 |
version 1.57, 2008/01/19 13:11:15 |
|
|
/* integrator_machdep.c,v 1.56.38.1 2007/11/09 05:37:57 matt Exp */ |
/* $NetBSD$ */ |
|
|
/* |
/* |
* Copyright (c) 2001,2002 ARM Ltd |
* Copyright (c) 2001,2002 ARM Ltd |
|
|
*/ |
*/ |
|
|
#include <sys/cdefs.h> |
#include <sys/cdefs.h> |
__KERNEL_RCSID(0, "integrator_machdep.c,v 1.56.38.1 2007/11/09 05:37:57 matt Exp"); |
__KERNEL_RCSID(0, "$NetBSD$"); |
|
|
#include "opt_ddb.h" |
#include "opt_ddb.h" |
#include "opt_pmap_debug.h" |
#include "opt_pmap_debug.h" |
Line 146 int max_processes = 64; /* Default num |
|
Line 146 int max_processes = 64; /* Default num |
|
#endif /* !PMAP_STATIC_L1S */ |
#endif /* !PMAP_STATIC_L1S */ |
|
|
/* Physical and virtual addresses for some global pages */ |
/* Physical and virtual addresses for some global pages */ |
|
pv_addr_t systempage; |
pv_addr_t irqstack; |
pv_addr_t irqstack; |
pv_addr_t undstack; |
pv_addr_t undstack; |
pv_addr_t abtstack; |
pv_addr_t abtstack; |
Line 380 initarm(void *arg) |
|
Line 381 initarm(void *arg) |
|
u_int l1pagetable; |
u_int l1pagetable; |
extern char etext __asm ("_etext"); |
extern char etext __asm ("_etext"); |
extern char end __asm ("_end"); |
extern char end __asm ("_end"); |
|
pv_addr_t kernel_l1pt; |
paddr_t memstart; |
paddr_t memstart; |
psize_t memsize; |
psize_t memsize; |
vm_offset_t physical_freestart; |
vm_offset_t physical_freestart; |
Line 518 initarm(void *arg) |
|
Line 520 initarm(void *arg) |
|
memset((char *)(var), 0, ((np) * PAGE_SIZE)); |
memset((char *)(var), 0, ((np) * PAGE_SIZE)); |
|
|
loop1 = 0; |
loop1 = 0; |
|
kernel_l1pt.pv_pa = 0; |
|
kernel_l1pt.pv_va = 0; |
for (loop = 0; loop <= NUM_KERNEL_PTS; ++loop) { |
for (loop = 0; loop <= NUM_KERNEL_PTS; ++loop) { |
/* Are we 16KB aligned for an L1 ? */ |
/* Are we 16KB aligned for an L1 ? */ |
if ((physical_freestart & (L1_TABLE_SIZE - 1)) == 0 |
if ((physical_freestart & (L1_TABLE_SIZE - 1)) == 0 |
Line 764 initarm(void *arg) |
|
Line 768 initarm(void *arg) |
|
#ifdef VERBOSE_INIT_ARM |
#ifdef VERBOSE_INIT_ARM |
printf("pmap "); |
printf("pmap "); |
#endif |
#endif |
pmap_bootstrap(KERNEL_VM_BASE, KERNEL_VM_BASE + KERNEL_VM_SIZE); |
pmap_bootstrap((pd_entry_t *)kernel_l1pt.pv_va, KERNEL_VM_BASE, |
|
KERNEL_VM_BASE + KERNEL_VM_SIZE); |
|
|
/* Setup the IRQ system */ |
/* Setup the IRQ system */ |
#ifdef VERBOSE_INIT_ARM |
#ifdef VERBOSE_INIT_ARM |