summaryrefslogtreecommitdiffstats
path: root/sys/arm/at91/at91_machdep.c
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2014-02-09 02:39:00 +0000
committerian <ian@FreeBSD.org>2014-02-09 02:39:00 +0000
commit0a3cc34ebf8a1addd43696f8b6d67b2cac66f4ef (patch)
tree266f29fe769a24ec0a2d14b68ffda3be4d51f89b /sys/arm/at91/at91_machdep.c
parent968d73cfcfb42ebbae51433827c6cc01429139fe (diff)
downloadFreeBSD-src-0a3cc34ebf8a1addd43696f8b6d67b2cac66f4ef.zip
FreeBSD-src-0a3cc34ebf8a1addd43696f8b6d67b2cac66f4ef.tar.gz
It turns out a global variable is the only straightforward way to
communicate the kernel's physical load address from where it's known in initarm() into cpu_mp_start() which is called from non-arm code and takes no parameters. This adds the global variable and ensures that all the various copies of initarm() set it. It uses the variable in cpu_mp_start(), eliminating the last uses of KERNPHYSADDR outside of locore.S (where we can now calculate it instead of relying on the constant).
Diffstat (limited to 'sys/arm/at91/at91_machdep.c')
-rw-r--r--sys/arm/at91/at91_machdep.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/arm/at91/at91_machdep.c b/sys/arm/at91/at91_machdep.c
index a6fef8b..c25e1ab 100644
--- a/sys/arm/at91/at91_machdep.c
+++ b/sys/arm/at91/at91_machdep.c
@@ -461,6 +461,7 @@ initarm(struct arm_boot_params *abp)
vm_offset_t lastaddr;
lastaddr = parse_boot_param(abp);
+ arm_physmem_kernaddr = abp->abp_physaddr;
set_cpufuncs();
pcpu0_init();
OpenPOWER on IntegriCloud