diff options
author | kevlo <kevlo@FreeBSD.org> | 2008-06-09 05:50:42 +0000 |
---|---|---|
committer | kevlo <kevlo@FreeBSD.org> | 2008-06-09 05:50:42 +0000 |
commit | e6c6a0dbfe70676cc1e266c4ca3162c4a701b8b6 (patch) | |
tree | 4fa69321370977823e32e1d39c260e6c6c63dacf /sys/arm | |
parent | f4d6ff9c5e2c00dd44c3e39b44c0000351d91c6d (diff) | |
download | FreeBSD-src-e6c6a0dbfe70676cc1e266c4ca3162c4a701b8b6.zip FreeBSD-src-e6c6a0dbfe70676cc1e266c4ca3162c4a701b8b6.tar.gz |
Unify arminit() and clean up
Diffstat (limited to 'sys/arm')
-rw-r--r-- | sys/arm/xscale/pxa/pxa_machdep.c | 59 |
1 files changed, 1 insertions, 58 deletions
diff --git a/sys/arm/xscale/pxa/pxa_machdep.c b/sys/arm/xscale/pxa/pxa_machdep.c index fc9918d..b857c27 100644 --- a/sys/arm/xscale/pxa/pxa_machdep.c +++ b/sys/arm/xscale/pxa/pxa_machdep.c @@ -78,7 +78,6 @@ __FBSDID("$FreeBSD$"); #include <vm/vm.h> #include <vm/pmap.h> -#include <vm/vm.h> #include <vm/vm_object.h> #include <vm/vm_page.h> #include <vm/vm_pager.h> @@ -109,11 +108,7 @@ __FBSDID("$FreeBSD$"); /* Define various stack sizes in pages */ #define IRQ_STACK_SIZE 1 #define ABT_STACK_SIZE 1 -#ifdef IPKDB -#define UND_STACK_SIZE 2 -#else #define UND_STACK_SIZE 1 -#endif extern u_int data_abort_handler_address; extern u_int prefetch_abort_handler_address; @@ -123,8 +118,6 @@ struct pv_addr kernel_pt_table[NUM_KERNEL_PTS]; extern void *_end; -extern vm_offset_t sa1_cache_clean_addr; - extern int *end; struct pcpu __pcpu; @@ -145,7 +138,6 @@ struct pv_addr abtstack; struct pv_addr kernelstack; struct pv_addr minidataclean; -void enable_mmu(vm_offset_t); static struct trapframe proc0_tf; static void pxa_probe_sdram(bus_space_tag_t, bus_space_handle_t, @@ -169,14 +161,8 @@ static const struct pmap_devmap pxa_devmap[] = { #define SDRAM_START 0xa0000000 -#ifdef DDB -extern vm_offset_t ksym_start, ksym_end; -#endif - extern vm_offset_t xscale_cache_clean_addr; -extern void boot_putc(int); - void * initarm(void *arg, void *arg2) { @@ -188,58 +174,15 @@ initarm(void *arg, void *arg2) vm_offset_t afterkern; vm_offset_t freemem_after; vm_offset_t lastaddr; -#ifdef DDB - vm_offset_t zstart = 0, zend = 0; -#endif int i, j; - uint32_t fake_preload[35]; uint32_t memsize[PXA2X0_SDRAM_BANKS], memstart[PXA2X0_SDRAM_BANKS]; - i = 0; - j = 0; - boothowto |= RB_SERIAL | RB_SINGLE; - bootverbose = 1; - set_cpufuncs(); - fake_preload[i++] = MODINFO_NAME; - fake_preload[i++] = strlen("elf kernel") + 1; - strcpy((char*)&fake_preload[i++], "elf kernel"); - i += 2; - fake_preload[i++] = MODINFO_TYPE; - fake_preload[i++] = strlen("elf kernel") + 1; - strcpy((char*)&fake_preload[i++], "elf kernel"); - i += 2; - fake_preload[i++] = MODINFO_ADDR; - fake_preload[i++] = sizeof(vm_offset_t); - fake_preload[i++] = KERNBASE + 0x00200000; - fake_preload[i++] = MODINFO_SIZE; - fake_preload[i++] = sizeof(uint32_t); - fake_preload[i++] = (uint32_t)&end - KERNBASE - 0x00200000; -#ifdef DDB - if (*(uint32_t *)KERNVIRTADDR == MAGIC_TRAMP_NUMBER) { - fake_preload[i++] = MODINFO_METADATA|MODINFOMD_SSYM; - fake_preload[i++] = sizeof(vm_offset_t); - fake_preload[i++] = *(uint32_t *)(KERNVIRTADDR + 4); - fake_preload[i++] = MODINFO_METADATA|MODINFOMD_ESYM; - fake_preload[i++] = sizeof(vm_offset_t); - fake_preload[i++] = *(uint32_t *)(KERNVIRTADDR + 8); - lastaddr = *(uint32_t *)(KERNVIRTADDR + 8); - zend = lastaddr; - zstart = *(uint32_t *)(KERNVIRTADDR + 4); - ksym_start = zstart; - ksym_end = zend; - } else -#endif - lastaddr = (vm_offset_t)&end; - - fake_preload[i++] = 0; - fake_preload[i] = 0; - preload_metadata = (void *)fake_preload; + lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); -#define KERNEL_TEXT_BASE (KERNBASE + 0x00200000) freemempos = 0xa0200000; /* Define a macro to simplify memory allocation */ #define valloc_pages(var, np) \ |