• H. Peter Anvin's avatar
    x86, realmode: 16-bit real-mode code support for relocs tool · 6520fe55
    H. Peter Anvin authored
    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: default avatarH. Peter Anvin <hpa@linux.intel.com>
    Link: http://lkml.kernel.org/r/1336501366-28617-2-git-send-email-jarkko.sakkinen@intel.comSigned-off-by: default avatarJarkko Sakkinen <jarkko.sakkinen@intel.com>
    Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
    Cc: <stable@vger.kernel.org>
    6520fe55
Name
Last commit
Last update
..
basic Loading commit data...
coccinelle Loading commit data...
dtc Loading commit data...
genksyms Loading commit data...
kconfig Loading commit data...
ksymoops Loading commit data...
mod Loading commit data...
package Loading commit data...
rt-tester Loading commit data...
selinux Loading commit data...
tracing Loading commit data...
.gitignore Loading commit data...
Kbuild.include Loading commit data...
Lindent Loading commit data...
Makefile Loading commit data...
Makefile.asm-generic Loading commit data...
Makefile.build Loading commit data...
Makefile.clean Loading commit data...
Makefile.fwinst Loading commit data...
Makefile.headersinst Loading commit data...
Makefile.help Loading commit data...
Makefile.host Loading commit data...
Makefile.lib Loading commit data...
Makefile.modbuiltin Loading commit data...
Makefile.modinst Loading commit data...
Makefile.modpost Loading commit data...
bin2c.c Loading commit data...
bloat-o-meter Loading commit data...
bootgraph.pl Loading commit data...
checkincludes.pl Loading commit data...
checkkconfigsymbols.sh Loading commit data...
checkpatch.pl Loading commit data...
checkstack.pl Loading commit data...
checksyscalls.sh Loading commit data...
checkversion.pl Loading commit data...
cleanfile Loading commit data...
cleanpatch Loading commit data...
coccicheck Loading commit data...
config Loading commit data...
conmakehash.c Loading commit data...
decodecode Loading commit data...
depmod.sh Loading commit data...
diffconfig Loading commit data...
docproc.c Loading commit data...
export_report.pl Loading commit data...
extract-ikconfig Loading commit data...
extract-vmlinux Loading commit data...
gcc-goto.sh Loading commit data...
gcc-version.sh Loading commit data...
gcc-x86_32-has-stack-protector.sh Loading commit data...
gcc-x86_64-has-stack-protector.sh Loading commit data...
gen_initramfs_list.sh Loading commit data...
get_maintainer.pl Loading commit data...
gfp-translate Loading commit data...
headerdep.pl Loading commit data...
headers.sh Loading commit data...
headers_check.pl Loading commit data...
headers_install.pl Loading commit data...
kallsyms.c Loading commit data...
kernel-doc Loading commit data...
makelst Loading commit data...
markup_oops.pl Loading commit data...
mkcompile_h Loading commit data...
mkmakefile Loading commit data...
mksysmap Loading commit data...
mkuboot.sh Loading commit data...
mkversion Loading commit data...
module-common.lds Loading commit data...
namespace.pl Loading commit data...
patch-kernel Loading commit data...
pnmtologo.c Loading commit data...
profile2linkerlist.pl Loading commit data...
recordmcount.c Loading commit data...
recordmcount.h Loading commit data...
recordmcount.pl Loading commit data...
setlocalversion Loading commit data...
show_delta Loading commit data...
tags.sh Loading commit data...
unifdef.c Loading commit data...
ver_linux Loading commit data...
xz_wrap.sh Loading commit data...