diff options
author | Ian Lepore <ian@FreeBSD.org> | 2019-12-30 23:20:46 +0000 |
---|---|---|
committer | Ian Lepore <ian@FreeBSD.org> | 2019-12-30 23:20:46 +0000 |
commit | 140da6f8feffc58c77f66c9fca487b74ede0afa5 (patch) | |
tree | a95167484381aed1458285b4a74b3f3ffb06fae8 | |
parent | 1f8bdab601bc35c7fa61a02a0e4b160b5eb699fb (diff) |
Set a "kernbase" symbol in 32-bit arm locore.S and use it with ldscript.arm.
This brings arm into line with how every other arch does it. For some
reason, only arm lacked a definition of a symbol named kernbase in its
locore.S file(s) for use in its ldscript.arm file. Needlessly different
means harder to maintain.
Using a common symbol name also eases work in progress on a script to help
generate arm and arm64 kernels packaged in various ways (like with a header
blob needed for a bootloader prepended to the kernel file).
Notes
Notes:
svn path=/head/; revision=356211
-rw-r--r-- | sys/arm/arm/locore-v4.S | 6 | ||||
-rw-r--r-- | sys/arm/arm/locore-v6.S | 3 | ||||
-rw-r--r-- | sys/conf/Makefile.arm | 4 |
3 files changed, 9 insertions, 4 deletions
diff --git a/sys/arm/arm/locore-v4.S b/sys/arm/arm/locore-v4.S index 572c6c3a04ef..8add9aee98e2 100644 --- a/sys/arm/arm/locore-v4.S +++ b/sys/arm/arm/locore-v4.S @@ -62,9 +62,11 @@ __FBSDID("$FreeBSD$"); */ .text .align 2 + + .globl kernbase + .set kernbase,KERNVIRTADDR + #ifdef PHYSADDR -.globl kernbase -.set kernbase,KERNBASE .globl physaddr .set physaddr,PHYSADDR #endif diff --git a/sys/arm/arm/locore-v6.S b/sys/arm/arm/locore-v6.S index 94737f1c5ccb..d796e6267cdc 100644 --- a/sys/arm/arm/locore-v6.S +++ b/sys/arm/arm/locore-v6.S @@ -59,6 +59,9 @@ __FBSDID("$FreeBSD$"); .text .align 2 + .globl kernbase + .set kernbase,KERNVIRTADDR + #if __ARM_ARCH >= 7 #define HANDLE_HYP \ /* Leave HYP mode */ ;\ diff --git a/sys/conf/Makefile.arm b/sys/conf/Makefile.arm index 0e80fc0575d2..23108641ba0c 100644 --- a/sys/conf/Makefile.arm +++ b/sys/conf/Makefile.arm @@ -61,7 +61,7 @@ KERNVIRTADDR= 0xc0000000 # "ELF for the ARM architecture" for more info on the mapping symbols. SYSTEM_LD= \ ${SYSTEM_LD_BASECMD} \ - --defsym='text_start=${KERNVIRTADDR} + SIZEOF_HEADERS' \ + --defsym='text_start=kernbase + SIZEOF_HEADERS' \ -o ${.TARGET} ${SYSTEM_OBJS} vers.o; \ $(OBJCOPY) \ --wildcard \ @@ -77,7 +77,7 @@ KERNEL_EXTRA_INSTALL+= ${KERNEL_KO}.bin ${KERNEL_KO}.bin: ${SYSTEM_DEP} vers.o @echo "linking ${.TARGET}" @${SYSTEM_LD_BASECMD} \ - --defsym='text_start=${KERNVIRTADDR}' \ + --defsym='text_start=kernbase' \ -o ${.TARGET} ${SYSTEM_OBJS} vers.o ${SIZE} ${.TARGET} @${OBJCOPY} \ |