coreboot/src/include
Aaron Durbin ad93552b86 lib: add rmodule support
A rmodule is short for relocation module. Relocaiton modules are
standalone programs. These programs are linked at address 0 as a shared
object with a special linker script that maintains the relocation
entries for the object. These modules can then be embedded as a raw
binary (objcopy -O binary) to be loaded at any location desired.

Initially, the only arch support is for x86. All comments below apply to
x86 specific properties.

The intial user of this support would be for SMM handlers since those
handlers sometimes need to be located at a dynamic address (e.g. TSEG
region).

The relocation entries are currently Elf32_Rel. They are 8 bytes large,
and the entries are not necessarily in sorted order. An future
optimization would be to have a tool convert the unsorted relocations
into just sorted offsets. This would reduce the size of the blob
produced after being processed. Essentialy, 8 bytes per relocation meta
entry would reduce to 4 bytes.

Change-Id: I2236dcb66e9d2b494ce2d1ae40777c62429057ef
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/2692
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
2013-03-18 18:40:34 +01:00
..
boot cbmem: replace pointer type by uint64_t 2013-01-11 19:56:43 +01:00
console GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
cpu Google Link: Add remaining code to support native graphics 2013-03-15 20:21:51 +01:00
device haswell: add PCI id support 2013-03-14 05:10:13 +01:00
pc80 GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
smp Clean up #ifs 2012-05-08 00:34:34 +02:00
assert.h We call this cache as ram everywhere, so let's call it the same in Kconfig 2010-08-30 17:53:13 +00:00
cbfs.h Extend CBFS to support arbitrary ROM source media. 2013-01-30 17:58:32 +01:00
cbfs_core.h Extend CBFS to support arbitrary ROM source media. 2013-01-30 17:58:32 +01:00
cbmem.h Implement GCC code coverage analysis 2013-01-12 19:09:55 +01:00
coverage.h Implement GCC code coverage analysis 2013-01-12 19:09:55 +01:00
delay.h Clean up #ifs 2012-05-08 00:34:34 +02:00
ehci.h Fix usb debug dongle support 2011-10-31 04:06:10 +01:00
elog.h ELOG: Add EC events to elog header 2012-11-09 19:03:24 +01:00
endian.h Extend CBFS to support arbitrary ROM source media. 2013-01-30 17:58:32 +01:00
fallback.h Make set_boot_successful depend on PC80_SYSTEM 2012-11-30 21:33:35 +01:00
gpio.h add gpio.h for generic GPIO-related definitions 2013-02-04 05:38:32 +01:00
ip_checksum.h Add support for the console over Ethernet (through PCI NE2000). 2010-07-16 20:02:09 +00:00
kconfig.h Add config_enabled() from Linux 2012-05-08 00:36:09 +02:00
lib.h Clean up stack checking code 2012-11-13 18:25:17 +01:00
reset.h Clean up #ifs 2012-05-08 00:34:34 +02:00
rmodule.h lib: add rmodule support 2013-03-18 18:40:34 +01:00
sdram_mode.h GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
smbios.h Extend smbios api to allow runtime change of mainboard serial and version 2012-07-25 14:13:04 +02:00
spd.h GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
spd_ddr2.h GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
spi-generic.h spi-generic.h: Adapt include guard 2013-02-11 22:34:17 +01:00
spi_flash.h Whitespace: Replace tab character in license text with two spaces 2013-02-20 23:30:45 +01:00
stddef.h stddef.h: Add standard defines for KiB, MiB, GiB, and TiB 2013-03-16 16:15:01 +01:00
stdlib.h Add back dummy free() 2012-12-19 22:37:43 +01:00
string.h Fix strcpy() 2013-01-03 00:56:59 +01:00
swab.h Add macros for 64bit byte order swapping 2011-10-21 14:13:19 +02:00
timestamp.h Add method for delaying adding of timestamps 2012-11-13 18:24:53 +01:00
trace.h GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
types.h GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
uart.h move uartmem_getbaseaddr() to generic uart header 2013-02-19 19:01:29 +01:00
uart8250.h move uartmem_getbaseaddr() to generic uart header 2013-02-19 19:01:29 +01:00
usb_ch9.h USB Debug Port related license header fixes (trivial). 2010-09-23 18:16:46 +00:00
usbdebug.h USBDEBUG: buffer up to 8 bytes 2012-07-26 15:52:00 +02:00
version.h Rename almost all occurences of LinuxBIOS to coreboot. 2008-01-18 15:08:58 +00:00
watchdog.h watchdog.h: Fix compile time error on disabling watchdog handling 2013-03-12 12:06:43 +01:00