diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/arch/x86/car.ld | 5 | ||||
-rw-r--r-- | src/northbridge/amd/agesa/Kconfig | 7 |
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 |