diff options
author | marcel <marcel@FreeBSD.org> | 2008-09-16 01:05:54 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2008-09-16 01:05:54 +0000 |
commit | 1e7ba9e4d7553e0894301015363d335775a7a65b (patch) | |
tree | 016ca8dfb5325d752da03b52c7ad22c5b8f291ff /sys/powerpc/aim/mmu_oea.c | |
parent | 5e985b386aa5a7c5ba46e3b4f869824800114a6e (diff) | |
download | FreeBSD-src-1e7ba9e4d7553e0894301015363d335775a7a65b.zip FreeBSD-src-1e7ba9e4d7553e0894301015363d335775a7a65b.tar.gz |
Remove the tracing from the AP startup. The AP is known
to start and the tracing can interfere with AP startup.
Instead, use the available space in the reset vector
for the initial stack.
Diffstat (limited to 'sys/powerpc/aim/mmu_oea.c')
-rw-r--r-- | sys/powerpc/aim/mmu_oea.c | 23 |
1 files changed, 2 insertions, 21 deletions
diff --git a/sys/powerpc/aim/mmu_oea.c b/sys/powerpc/aim/mmu_oea.c index 4aae58d..9381032 100644 --- a/sys/powerpc/aim/mmu_oea.c +++ b/sys/powerpc/aim/mmu_oea.c @@ -604,14 +604,11 @@ om_cmp(const void *a, const void *b) } void -pmap_cpu_bootstrap(volatile uint32_t *trcp, int ap) +pmap_cpu_bootstrap(int ap) { u_int sdr; int i; - trcp[0] = 0x1000; - trcp[1] = (uint32_t)&pmap_cpu_bootstrap; - if (ap) { __asm __volatile("mtdbatu 0,%0" :: "r"(battable[0].batu)); __asm __volatile("mtdbatl 0,%0" :: "r"(battable[0].batl)); @@ -621,14 +618,10 @@ pmap_cpu_bootstrap(volatile uint32_t *trcp, int ap) isync(); } - trcp[0] = 0x1001; - __asm __volatile("mtdbatu 1,%0" :: "r"(battable[8].batu)); __asm __volatile("mtdbatl 1,%0" :: "r"(battable[8].batl)); isync(); - trcp[0] = 0x1002; - __asm __volatile("mtibatu 1,%0" :: "r"(0)); __asm __volatile("mtdbatu 2,%0" :: "r"(0)); __asm __volatile("mtibatu 2,%0" :: "r"(0)); @@ -636,29 +629,18 @@ pmap_cpu_bootstrap(volatile uint32_t *trcp, int ap) __asm __volatile("mtibatu 3,%0" :: "r"(0)); isync(); - trcp[0] = 0x1003; - for (i = 0; i < 16; i++) mtsrin(i << ADDR_SR_SHFT, EMPTY_SEGMENT); - trcp[0] = 0x1004; - __asm __volatile("mtsr %0,%1" :: "n"(KERNEL_SR), "r"(KERNEL_SEGMENT)); __asm __volatile("mtsr %0,%1" :: "n"(KERNEL2_SR), "r"(KERNEL2_SEGMENT)); __asm __volatile("sync"); - trcp[0] = 0x1005; - sdr = (u_int)moea_pteg_table | (moea_pteg_mask >> 10); __asm __volatile("mtsdr1 %0" :: "r"(sdr)); isync(); - trcp[0] = 0x1006; - trcp[1] = sdr; - tlbia(); - - trcp[0] = 0x1007; } void @@ -669,7 +651,6 @@ moea_bootstrap(mmu_t mmup, vm_offset_t kernelstart, vm_offset_t kernelend) int sz; int i, j; int ofw_mappings; - uint32_t trace[2]; vm_size_t size, physsz, hwphyssz; vm_offset_t pa, va, off; @@ -898,7 +879,7 @@ moea_bootstrap(mmu_t mmup, vm_offset_t kernelstart, vm_offset_t kernelend) kernel_pmap->pm_sr[KERNEL2_SR] = KERNEL2_SEGMENT; kernel_pmap->pm_active = ~0; - pmap_cpu_bootstrap(trace, 0); + pmap_cpu_bootstrap(0); pmap_bootstrapped++; |