summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2005-10-03 14:10:55 +0000
committercognet <cognet@FreeBSD.org>2005-10-03 14:10:55 +0000
commitb528a2341702ba37400bf7f647766b0ee6983f4b (patch)
treec547bb7ce3b55d5b79a666f0d77510f60e8bd9e5 /sys
parent61bb392fc2d9ff7edc6d57c990bab8973bf7f8b2 (diff)
downloadFreeBSD-src-b528a2341702ba37400bf7f647766b0ee6983f4b.zip
FreeBSD-src-b528a2341702ba37400bf7f647766b0ee6983f4b.tar.gz
Export the virtual and physical address in which the kernel was loaded,
needed for userland when reading kernel dumps.
Diffstat (limited to 'sys')
-rw-r--r--sys/arm/arm/locore.S11
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/arm/arm/locore.S b/sys/arm/arm/locore.S
index 748896a..c5e2a75 100644
--- a/sys/arm/arm/locore.S
+++ b/sys/arm/arm/locore.S
@@ -60,6 +60,8 @@ __FBSDID("$FreeBSD$");
.align 0
.globl kernbase
.set kernbase,KERNBASE
+.globl physaddr
+.set physaddr,PHYSADDR
ENTRY_NP(btext)
@@ -157,7 +159,7 @@ mmu_done:
mov r3, #0
.L1:
- str r3, [r1], #0x0004 /* Zero the bss */
+ str r3, [r1], #0x0004 /* get zero init data */
subs r2, r2, #4
bgt .L1
@@ -177,7 +179,8 @@ mmu_done:
sub pc, pc, r4
#endif
virt_done:
- ldr fp, =KERNVIRTADDR /* trace back starts here */
+ nop
+ mov fp, #0 /* trace back starts here */
bl _C_LABEL(initarm) /* Off we go */
/* init arm will return the new stack pointer. */
@@ -194,6 +197,10 @@ virt_done:
.word 4*((va)>>L1_S_SHIFT) ; \
.word (pa)|(attr) ;
+Lvirtaddr:
+ .word KERNVIRTADDR
+Lphysaddr:
+ .word KERNPHYSADDR
Lstartup_pagetable:
.word STARTUP_PAGETABLE_ADDR
mmu_init_table:
OpenPOWER on IntegriCloud