summaryrefslogtreecommitdiffstats
path: root/sys/arm
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/arm/locore.S20
1 files changed, 19 insertions, 1 deletions
diff --git a/sys/arm/arm/locore.S b/sys/arm/arm/locore.S
index c689916..ce56efd 100644
--- a/sys/arm/arm/locore.S
+++ b/sys/arm/arm/locore.S
@@ -42,6 +42,18 @@
__FBSDID("$FreeBSD$");
+/*
+ * Sanity check the configuration.
+ * FLASHADDR and LOADERRAMADDR depend on PHYSADDR in some cases.
+ * ARMv4 and ARMv5 make assumptions on where they are loaded.
+ *
+ * TODO: Fix the ARMv4/v5 case.
+ */
+#if (defined(FLASHADDR) || defined(LOADERRAMADDR) || !defined(_ARM_ARCH_6)) && \
+ !defined(PHYSADDR)
+#error PHYSADDR must be defined for this configuration
+#endif
+
/* What size should this really be ? It is only used by initarm() */
#define INIT_ARM_STACK_SIZE (2048 * 4)
@@ -54,15 +66,21 @@ __FBSDID("$FreeBSD$");
CPWAIT_BRANCH /* branch to next insn */
/*
- * This is for kvm_mkdb, and should be the address of the beginning
+ * This is for libkvm, and should be the address of the beginning
* of the kernel text segment (not necessarily the same as kernbase).
+ *
+ * These are being phased out. Newer copies of libkvm don't need these
+ * values as the information is added to the core file by inspecting
+ * the running kernel.
*/
.text
.align 0
+#ifdef PHYSADDR
.globl kernbase
.set kernbase,KERNBASE
.globl physaddr
.set physaddr,PHYSADDR
+#endif
/*
* On entry for FreeBSD boot ABI:
OpenPOWER on IntegriCloud