Messages in this thread | | | Date | Sun, 27 May 2012 08:43:58 +0900 | From | Greg KH <> | Subject | Re: [PATCH] x86, realmode: 16-bit real-mode code support for relocs tool |
| |
On Fri, May 25, 2012 at 02:18:33PM +0300, Jarkko Sakkinen wrote: > From: "H. Peter Anvin" <hpa@linux.intel.com> > > 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. ] > > [ jsakkine: applied against 3.3.7 ]
Much better, thanks for this, now queued up.
greg k-h
| |