diff options
Diffstat (limited to 'src/arch/arm64')
-rw-r--r-- | src/arch/arm64/Makefile.inc | 16 | ||||
-rw-r--r-- | src/arch/arm64/arm_tf.c | 5 |
2 files changed, 13 insertions, 8 deletions
diff --git a/src/arch/arm64/Makefile.inc b/src/arch/arm64/Makefile.inc index 92b26f5cd3..d9a73bd7c0 100644 --- a/src/arch/arm64/Makefile.inc +++ b/src/arch/arm64/Makefile.inc @@ -146,14 +146,20 @@ ifeq ($(V),1) BL31_MAKEARGS += V=1 endif -# Build ARM TF in debug mode (with serial output) if coreboot uses serial -ifeq ($(CONFIG_CONSOLE_SERIAL),y) +# Build ARM TF in debug mode (with assertions) if coreboot has hard assertions +ifeq ($(CONFIG_FATAL_ASSERTS),y) BL31_MAKEARGS += DEBUG=1 -else -# Turn off NOTICE messages from BL31 if coreboot does not use serial -BL31_MAKEARGS += LOG_LEVEL=0 endif # CONFIG_CONSOLE_SERIAL +# ARM TF's VERBOSE (50) is *very* spammy, so default to INFO (40) +BL31_MAKEARGS += LOG_LEVEL=40 + +# Always enable crash reporting, even on a release build +BL31_MAKEARGS += CRASH_REPORTING=1 + +# Enable coreboot-specific features like CBMEM console support +BL31_MAKEARGS += COREBOOT=1 + # Avoid build/release|build/debug distinction by overriding BUILD_PLAT directly BL31_MAKEARGS += BUILD_PLAT="$(BL31_BUILD)" diff --git a/src/arch/arm64/arm_tf.c b/src/arch/arm64/arm_tf.c index e976e34be0..69e83c10fe 100644 --- a/src/arch/arm64/arm_tf.c +++ b/src/arch/arm64/arm_tf.c @@ -81,11 +81,10 @@ void arm_tf_run_bl31(u64 payload_entry, u64 payload_arg0, u64 payload_spsr) bl33_ep_info.spsr = payload_spsr; bl33_ep_info.args.arg0 = payload_arg0; - /* May update bl31_params if necessary. Must flush all added structs. */ + /* May update bl31_params if necessary. */ void *bl31_plat_params = soc_get_bl31_plat_params(&bl31_params); - dcache_clean_by_mva(&bl31_params, sizeof(bl31_params)); - dcache_clean_by_mva(&bl33_ep_info, sizeof(bl33_ep_info)); + /* MMU disable will flush cache, so passed params land in memory. */ raw_write_daif(SPSR_EXCEPTION_MASK); mmu_disable(); bl31_entry(&bl31_params, bl31_plat_params); |