From 0f6c0b1a6f062be702fd0b10a6c591c42f982b63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Thu, 7 Sep 2017 06:46:46 +0300 Subject: AGESA: Drop CAR teardown without POSTCAR_STAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Except for family15, all AGESA boards have moved away from AGESA_LEGACY_WRAPPER, thus they all have POSTCAR_STAGE now. AGESA family15 boards remain at AGESA_LEGACY=y, but those boards have per-board romstage.c files and are not touched here. Change-Id: If750766cc7a9ecca4641a8f14e1ab15e9abb7ff5 Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/18632 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- src/cpu/amd/agesa/romstage.c | 68 ++++++++++++++------------------------------ 1 file changed, 21 insertions(+), 47 deletions(-) (limited to 'src/cpu/amd') diff --git a/src/cpu/amd/agesa/romstage.c b/src/cpu/amd/agesa/romstage.c index 1b9757a934..bd502b6bad 100644 --- a/src/cpu/amd/agesa/romstage.c +++ b/src/cpu/amd/agesa/romstage.c @@ -31,6 +31,12 @@ #if IS_ENABLED(CONFIG_LATE_CBMEM_INIT) #error "Only EARLY_CBMEM_INIT is supported." #endif +#if !IS_ENABLED(CONFIG_POSTCAR_STAGE) +#error "Only POSTCAR_STAGE is supported." +#endif +#if HAS_LEGACY_WRAPPER +#error "LEGACY_WRAPPER code not supported" +#endif void asmlinkage early_all_cores(void) { @@ -47,8 +53,7 @@ static void fill_sysinfo(struct sysinfo *cb) memset(cb, 0, sizeof(*cb)); cb->s3resume = acpi_is_wakeup_s3(); - if (!HAS_LEGACY_WRAPPER) - agesa_set_interface(cb); + agesa_set_interface(cb); } void * asmlinkage romstage_main(unsigned long bist) @@ -77,31 +82,25 @@ void * asmlinkage romstage_main(unsigned long bist) /* Halt if there was a built in self test failure */ report_bist_failure(bist); - if (!HAS_LEGACY_WRAPPER) { + agesa_execute_state(cb, AMD_INIT_RESET); - agesa_execute_state(cb, AMD_INIT_RESET); + agesa_execute_state(cb, AMD_INIT_EARLY); - agesa_execute_state(cb, AMD_INIT_EARLY); + timestamp_add_now(TS_BEFORE_INITRAM); - timestamp_add_now(TS_BEFORE_INITRAM); + if (!cb->s3resume) + agesa_execute_state(cb, AMD_INIT_POST); + else + agesa_execute_state(cb, AMD_INIT_RESUME); - if (!cb->s3resume) - agesa_execute_state(cb, AMD_INIT_POST); - else - agesa_execute_state(cb, AMD_INIT_RESUME); + /* FIXME: Detect if TSC frequency changed during raminit? */ + timestamp_rescale_table(1, 4); + timestamp_add_now(TS_AFTER_INITRAM); - /* FIXME: Detect if TSC frequency changed during raminit? */ - timestamp_rescale_table(1, 4); - timestamp_add_now(TS_AFTER_INITRAM); - - } else { - - agesa_main(cb); - - } - - if (IS_ENABLED(CONFIG_POSTCAR_STAGE)) - fixup_cbmem_to_UC(cb->s3resume); + /* Work around AGESA setting all memory as WB on normal + * boot path. + */ + fixup_cbmem_to_UC(cb->s3resume); cbmem_initted = !cbmem_recovery(cb->s3resume); @@ -112,14 +111,6 @@ void * asmlinkage romstage_main(unsigned long bist) romstage_handoff_init(cb->s3resume); - if (!IS_ENABLED(CONFIG_POSTCAR_STAGE)) { - uintptr_t stack_top = romstage_ram_stack_base( - HIGH_ROMSTAGE_STACK_SIZE, ROMSTAGE_STACK_CBMEM); - stack_top += HIGH_ROMSTAGE_STACK_SIZE; - printk(BIOS_DEBUG, "Move CAR stack.\n"); - return (void*)stack_top; - } - postcar_frame_init(&pcf, HIGH_ROMSTAGE_STACK_SIZE); recover_postcar_frame(&pcf, cb->s3resume); @@ -127,20 +118,3 @@ void * asmlinkage romstage_main(unsigned long bist) /* We do not return. */ return NULL; } - -#if !IS_ENABLED(CONFIG_POSTCAR_STAGE) -void asmlinkage romstage_after_car(void) -{ - struct sysinfo romstage_state; - struct sysinfo *cb = &romstage_state; - - printk(BIOS_DEBUG, "CAR disabled.\n"); - - fill_sysinfo(cb); - - if (HAS_LEGACY_WRAPPER) - agesa_postcar(cb); - - run_ramstage(); -} -#endif -- cgit v1.2.3