summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/arch/x86/car.ld5
-rw-r--r--src/northbridge/amd/agesa/Kconfig7
2 files changed, 12 insertions, 0 deletions
diff --git a/src/arch/x86/car.ld b/src/arch/x86/car.ld
index 5a46b8b2ec..4e3383cf1e 100644
--- a/src/arch/x86/car.ld
+++ b/src/arch/x86/car.ld
@@ -115,8 +115,13 @@ _rom_mtrr_base = _rom_mtrr_mask;
. = 0xffffff00;
.illegal_globals . : {
+#if CONFIG(AGESA_BROKEN_DATA_SECTION)
*(EXCLUDE_FILE ("*/libagesa.*.a:" "*/romstage*/buildOpts.o" "*/romstage*/agesawrapper.o" "*/vendorcode/amd/agesa/*" "*/vendorcode/amd/cimx/*") .data)
*(EXCLUDE_FILE ("*/libagesa.*.a:" "*/romstage*/buildOpts.o" "*/romstage*/agesawrapper.o" "*/vendorcode/amd/agesa/*" "*/vendorcode/amd/cimx/*") .data.*)
+#else
+ *(.data)
+ *(.data.*)
+#endif
}
_bogus = ASSERT((CONFIG_DCACHE_RAM_SIZE == 0) || (SIZEOF(.car.data) <= CONFIG_DCACHE_RAM_SIZE), "Cache as RAM area is too full");
diff --git a/src/northbridge/amd/agesa/Kconfig b/src/northbridge/amd/agesa/Kconfig
index 6f6e3d63a9..3959284921 100644
--- a/src/northbridge/amd/agesa/Kconfig
+++ b/src/northbridge/amd/agesa/Kconfig
@@ -27,6 +27,13 @@ config S3_VGA_ROM_RUN
source "src/northbridge/amd/agesa/*/Kconfig"
+config AGESA_BROKEN_DATA_SECTION
+ bool
+ default y
+ help
+ Select this on AGESA platforms that incorrectly use the .data
+ section.
+
# TODO: Reservation for heap seems excessive
config HEAP_SIZE
hex