aboutsummaryrefslogtreecommitdiffstats
path: root/src/arch/x86/init
diff options
context:
space:
mode:
authorRonald G. Minnich <rminnich@gmail.com>2012-07-02 09:46:42 -0700
committerPatrick Georgi <patrick@georgi-clan.de>2012-07-03 09:43:38 +0200
commit9b4c92ad80d691e9e2a4e5a84ad035fbe8e8d977 (patch)
tree687f28876f704aff9791ef7a6214659abb8882c9 /src/arch/x86/init
parent2c08f6ade4ac904e9eb762c71f95daa372be0072 (diff)
downloadcoreboot-9b4c92ad80d691e9e2a4e5a84ad035fbe8e8d977.tar.gz
coreboot-9b4c92ad80d691e9e2a4e5a84ad035fbe8e8d977.tar.xz
coreboot-9b4c92ad80d691e9e2a4e5a84ad035fbe8e8d977.zip
Fix the error message for romstage when .bss or .data are non-zero
The error message from romstage is annoying and misleading: "Do not use global variables in romstage" Because it can occur even when global variables are not used in some circumstances, but also because it gives you only a rough idea where to look. This change sucks but sucks less. We still don't know which file the problem is in but at least we know if it is data or bss. Replace the error message with something that provides more information and less guessing on the part of the script: ".bss is non-zero size in romstage which is not allowed -- global variable?" or ".data is non-zero size in romstage which is not allowed -- global variable?" To test: build coreboot as normal. It builds. Add char d[32]; to romstage.c and get the first error message; add int x = 32; to romstage.c and get the second. Change-Id: I300ec05bdb4b30d7ef3f5112e6cc09b1fafe8263 Signed-off-by: Ronald G. Minnich <rminnich@gmail.com> Reviewed-on: http://review.coreboot.org/1160 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
Diffstat (limited to 'src/arch/x86/init')
-rw-r--r--src/arch/x86/init/romstage.ld3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/arch/x86/init/romstage.ld b/src/arch/x86/init/romstage.ld
index ca4e82021..86093b3cb 100644
--- a/src/arch/x86/init/romstage.ld
+++ b/src/arch/x86/init/romstage.ld
@@ -53,5 +53,6 @@ SECTIONS
}
_bogus = ASSERT((SIZEOF(.car.data) <= CONFIG_DCACHE_RAM_SIZE), "Cache as RAM area is too full");
- _bogus = ASSERT((SIZEOF(.bss) + SIZEOF(.data)) == 0 || CONFIG_CPU_AMD_AGESA, "Do not use global variables in romstage");
+ _bogus = ASSERT(SIZEOF(.bss) == 0 || CONFIG_CPU_AMD_AGESA, ".bss is non-zero size in romstage which is not allowed -- global variable?");
+ _bogus = ASSERT(SIZEOF(.data) == 0 || CONFIG_CPU_AMD_AGESA, ".data is non-zero size in romstage which is not allowed -- global variable?");
}