linux/arch/x86/boot
H. Peter Anvin 6520fe5564 x86, realmode: 16-bit real-mode code support for relocs tool
A new option is added to the relocs tool called '--realmode'.
This option causes the generation of 16-bit segment relocations
and 32-bit linear relocations for the real-mode code. When
the real-mode code is moved to the low-memory during kernel
initialization, these relocation entries can be used to
relocate the code properly.

In the assembly code 16-bit segment relocations must be relative
to the 'real_mode_seg' absolute symbol. Linear relocations must be
relative to a symbol prefixed with 'pa_'.

16-bit segment relocation is used to load cs:ip in 16-bit code.
Linear relocations are used in the 32-bit code for relocatable
data references. They are declared in the linker script of the
real-mode code.

The relocs tool is moved to arch/x86/tools/relocs.c, and added new
target archscripts that can be used to build scripts needed building
an architecture.  be compiled before building the arch/x86 tree.

[ hpa: accelerating this because it detects invalid absolute
  relocations, a serious bug in binutils 2.22.52.0.x which currently
  produces bad kernels. ]

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Link: http://lkml.kernel.org/r/1336501366-28617-2-git-send-email-jarkko.sakkinen@intel.com
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: <stable@vger.kernel.org>
2012-05-18 19:49:40 -07:00
..
compressed x86, realmode: 16-bit real-mode code support for relocs tool 2012-05-18 19:49:40 -07:00
tools x86, efi: Add dedicated EFI stub entry point 2012-04-16 11:41:44 -07:00
.gitignore x86, boot: add new generated files to the appropriate .gitignore files 2009-06-02 21:13:30 -07:00
Makefile x86, boot: Correct CFLAGS for hostprogs 2012-03-22 12:42:51 -07:00
a20.c x86, setup: "glove box" BIOS interrupts in the core boot code 2009-04-09 16:08:11 -07:00
apm.c x86, setup: "glove box" BIOS interrupts in the APM code 2009-04-09 16:08:11 -07:00
bioscall.S x86, boot: use .code16gcc instead of .code16 2009-06-16 17:47:32 -07:00
bitops.h x86: remove pointless comments 2008-04-19 19:19:54 +02:00
boot.h x86, boot: Fix port argument to inl() function 2012-01-31 12:05:54 -08:00
cmdline.c x86, setup: reorganize the early console setup 2010-08-02 15:51:56 -07:00
code16gcc.h
copy.S x86: copy.S - use GLOBAL,ENDPROC macros 2009-02-19 17:13:00 +01:00
cpu.c x86 setup: handle more than 8 CPU flag words 2008-09-16 15:09:26 -07:00
cpucheck.c x86: boot: stub out unimplemented CPU feature words 2008-09-05 16:13:44 -07:00
ctype.h x86, setup: move isdigit.h to ctype.h, header files on top. 2010-08-02 21:07:20 -07:00
early_serial_console.c x86, setup: Fix earlyprintk=serial,0x3f8,115200 2010-09-21 10:18:33 -07:00
edd.c x86, setup: "glove box" BIOS interrupts in the EDD code 2009-04-09 16:08:11 -07:00
header.S x86, efi: EFI boot stub support 2011-12-12 14:26:10 -08:00
install.sh kbuild: use INSTALLKERNEL to select customized installkernel script 2009-09-20 12:18:14 +02:00
main.c x86, setup: enable early console output from the decompressor 2010-08-02 20:32:20 -07:00
mca.c x86, setup: "glove box" BIOS interrupts in the MCA code 2009-04-09 16:08:11 -07:00
memory.c x86, setup: When probing memory with e801, use ax/bx as a pair 2011-04-25 14:52:37 -07:00
mkcpustr.c x86: Remove trailing spaces in messages 2010-02-07 17:47:51 +01:00
mtools.conf.in
pm.c x86: remove zImage support 2009-03-11 11:00:00 -07:00
pmjump.S x86, setup: move 32-bit code to .text32 2009-03-17 15:26:06 -07:00
printf.c x86, setup: reorganize the early console setup 2010-08-02 15:51:56 -07:00
regs.c x86, setup: "glove box" BIOS calls -- infrastructure 2009-04-09 16:08:11 -07:00
setup.ld x86: Document linker script ASSERT() quirk 2009-10-16 07:18:46 +02:00
string.c x86, efi: EFI boot stub support 2011-12-12 14:26:10 -08:00
tty.c x86, setup: reorganize the early console setup 2010-08-02 15:51:56 -07:00
version.c kbuild: move utsrelease.h to include/generated 2009-12-12 13:08:15 +01:00
vesa.h
video-bios.c x86: fix usage of bios intcall() 2009-07-04 12:56:32 -07:00
video-mode.c x86: move suspend wakeup code to C 2008-04-17 17:41:37 +02:00
video-vesa.c Merge branch 'x86-setup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 08:01:47 -07:00
video-vga.c x86, setup: Set ax register in boot vga query 2010-06-10 15:24:29 -07:00
video.c x86, setup: When restoring the screen, update boot_params.screen_info 2010-02-17 18:32:06 -08:00
video.h x86, setup: remove obsolete pre-Kconfig CONFIG_VIDEO_ variables 2009-06-26 11:02:31 -07:00