Add definition for ENV_ROMSTAGE_OR_BEFORE to <rules.h>

ENV_ROMSTAGE_OR_BEFORE is a direct replacement for testing
defined(__PRE_RAM__) as a true statement instead of with the
help of the preprocessor.

Note that for x86, due to existence of ENV_POSTCAR and ENV_SMM,
ENV_ROMSTAGE_OR_BEFORE and ENV_RAMSTAGE are not the inverse of
each other.

Change-Id: Ibd2292f922ccb9e79d10ca9bc35797048d174287
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/34939
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Kyösti Mälkki 2019-08-17 17:29:36 +03:00
parent 117cf2bdcb
commit 21160a72eb
2 changed files with 7 additions and 5 deletions

View File

@ -49,8 +49,7 @@ int do_vprintk(int msg_level, const char *fmt, va_list args)
{
int i, log_this;
if (CONFIG(SQUELCH_EARLY_SMP) && ENV_CACHE_AS_RAM &&
!boot_cpu())
if (CONFIG(SQUELCH_EARLY_SMP) && ENV_ROMSTAGE_OR_BEFORE && !boot_cpu())
return 0;
log_this = console_log_level(msg_level);

View File

@ -266,9 +266,12 @@
#define ENV_PAYLOAD_LOADER ENV_RAMSTAGE
#endif
#define ENV_ROMSTAGE_OR_BEFORE \
(ENV_DECOMPRESSOR || ENV_BOOTBLOCK || ENV_VERSTAGE || ENV_ROMSTAGE)
#if CONFIG(ARCH_X86)
/* Indicates memory layout is determined by arch/x86/car.ld. */
#define ENV_CACHE_AS_RAM (ENV_BOOTBLOCK || ENV_ROMSTAGE || ENV_VERSTAGE)
/* Indicates memory layout is determined with arch/x86/car.ld. */
#define ENV_CACHE_AS_RAM ENV_ROMSTAGE_OR_BEFORE
/* No .data sections with execute-in-place from ROM. */
#define ENV_STAGE_HAS_DATA_SECTION !ENV_CACHE_AS_RAM
/* No .bss sections with execute-in-place from ROM. */
@ -294,7 +297,7 @@
* be built with simple device model.
*/
#if (defined(__PRE_RAM__) || ENV_SMM || !ENV_PAYLOAD_LOADER)
#if !ENV_RAMSTAGE
#define __SIMPLE_DEVICE__
#endif