coreboot-kgpe-d16/src/arch/x86
Alexandru Gagniuc 72bb66eb9c x86/bootblock: Use LDFLAGS_bootblock to enable garbage collection
The x86 bootblock linking is a mess. The bootblock is treated in
a very special manner, and never received the update to link-time
garbage collection.

On newer x86 platforms, the boot media is no longer memory-mapped.
That means we need to do a lot more setup in the bootblock. ROMCC is
unsuitable for this task, and walkcbfs only works on memory-mapped
CBFS. We need to revise the x86 bootflow for this new case.

The approach this patch series takes is to perform CAR setup in the
bootblock, and load the following stage (either romstage or verstage)
from the boot media. This approach is not new, but has been done on
our ARM ports for years.

Since we will be adding .c files to the bootblock, it is prudent to
use link-time garbage collection. This is also consistent to how we
do things on other architectures. Unification FTW!

Change-Id: I16b78456df56e0053984a9aca9367e2542adfdc9
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Reviewed-on: http://review.coreboot.org/11781
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
2015-10-07 03:08:58 +00:00
..
acpi Remove address from GPLv2 headers 2015-05-21 20:50:25 +02:00
include coreboot: introduce commonlib 2015-09-22 21:21:34 +00:00
acpi.c acpi: 64bit fixes 2015-08-14 20:25:40 +02:00
acpigen.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
assembly_entry.S x86: provide common macro for linking early stages 2015-09-30 06:53:42 +00:00
boot.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
bootblock.ld x86: bootblock: remove linking and program flow from build system 2015-09-09 03:22:58 +00:00
bootblock.S x86: bootblock: remove linking and program flow from build system 2015-09-09 03:22:58 +00:00
bootblock_normal.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
bootblock_simple.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
c_start.S rmodule: use program.ld for linking 2015-09-09 19:35:30 +00:00
car.ld x86: prepare cache-as-ram to allow multiple stages 2015-09-30 06:53:55 +00:00
cbfs_and_run.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
cbmem.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
cpu.c symbols: add '_' to pci_drivers and cpu_drivers symbols 2015-09-05 15:36:23 +00:00
cpu_common.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
crt0_romcc_epilogue.inc x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
ebda.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
exception.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
failover.ld x86/bootblock: Use LDFLAGS_bootblock to enable garbage collection 2015-10-07 03:08:58 +00:00
gdt.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
id.inc x86: bootblock: remove linking and program flow from build system 2015-09-09 03:22:58 +00:00
id.ld x86/bootblock: Use LDFLAGS_bootblock to enable garbage collection 2015-10-07 03:08:58 +00:00
ioapic.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
Kconfig acpi: bring back ability to link DSDT into ramstage 2015-06-23 21:19:02 +02:00
Makefile.inc x86/bootblock: Use LDFLAGS_bootblock to enable garbage collection 2015-10-07 03:08:58 +00:00
memcpy.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
memlayout.ld x86: remove double link step for romstage 2015-09-16 14:11:18 +00:00
memmove.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
memset.c Drop "See file CREDITS..." comment 2015-09-07 15:54:50 +00:00
mmap_boot.c x86: Make sure boot device is mapped below 4G 2015-08-04 21:25:08 +02:00
mpspec.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
pci_ops_conf1.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
pci_ops_mmconf.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
pirq_routing.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
prologue.inc x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
romcc_console.c coreboot: introduce commonlib 2015-09-22 21:21:34 +00:00
smbios.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
stages.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
tables.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
thread.c x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
thread_switch.S x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
timestamp.c timestamp: add tick frequency to exported table 2015-08-31 13:55:28 +00:00
wakeup.S x86: flatten hierarchy 2015-07-13 21:04:56 +02:00
walkcbfs.S cbfs: hardcode file alignment 2015-07-15 16:34:37 +02:00