summaryrefslogtreecommitdiffstats
path: root/arch/x86/realmode/rm/header.S
diff options
context:
space:
mode:
authorJarkko Sakkinen <jarkko.sakkinen@intel.com>2012-05-08 21:22:25 +0300
committerH. Peter Anvin <hpa@linux.intel.com>2012-05-08 11:41:48 -0700
commitb3266bd6ff52efb9e57c7fbfff4c8f7363dfaab3 (patch)
tree66f16447ee345e21372fe0fe35b987b16c8061c0 /arch/x86/realmode/rm/header.S
parent433de739bbc22a5b2c87602116566ce27e3b4cab (diff)
downloadlinux-b3266bd6ff52efb9e57c7fbfff4c8f7363dfaab3.tar.bz2
x86, realmode: realmode.bin infrastructure
Create realmode.bin and realmode.relocs files. Piggy pack them into relocatable object that will be included into .init.data section of the main kernel image. The first file includes binary image of the real-mode code. The latter file includes all relocations. The layout of the binary image is specified in realmode.lds.S. The makefile generates pa_ prefixed symbols for each exported global. These are used in 32-bit code and in realmode header to define symbols that need to be relocated. Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@intel.com> Link: http://lkml.kernel.org/r/1336501366-28617-3-git-send-email-jarkko.sakkinen@intel.com Originally-by: H. Peter Anvin <hpa@linux.intel.com> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/realmode/rm/header.S')
-rw-r--r--arch/x86/realmode/rm/header.S16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/x86/realmode/rm/header.S b/arch/x86/realmode/rm/header.S
new file mode 100644
index 000000000000..7be17f2c65a3
--- /dev/null
+++ b/arch/x86/realmode/rm/header.S
@@ -0,0 +1,16 @@
+/*
+ * Real-mode blob header; this should match realmode.h and be
+ * readonly; for mutable data instead add pointers into the .data
+ * or .bss sections as appropriate.
+ */
+
+#include <linux/linkage.h>
+#include <asm/page_types.h>
+
+ .section ".header", "a"
+
+ENTRY(real_mode_header)
+ .long pa_text_start
+ .long pa_ro_end
+ .long pa_end
+END(real_mode_header)