summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/aim/mmu_oea.c
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2008-09-16 01:05:54 +0000
committermarcel <marcel@FreeBSD.org>2008-09-16 01:05:54 +0000
commit1e7ba9e4d7553e0894301015363d335775a7a65b (patch)
tree016ca8dfb5325d752da03b52c7ad22c5b8f291ff /sys/powerpc/aim/mmu_oea.c
parent5e985b386aa5a7c5ba46e3b4f869824800114a6e (diff)
downloadFreeBSD-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.c23
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++;
OpenPOWER on IntegriCloud