diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2016-11-23 06:47:15 +0200 |
---|---|---|
committer | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2017-04-05 15:02:43 +0200 |
commit | ba22e159bb21549ba92eb6e9d91eaa097a54985b (patch) | |
tree | b9195d45d7e01b7f4dbe4a646ff5c274d6e1d53c /src/cpu/amd/agesa/family14 | |
parent | 1779d534e5b6e01e2aabfb30aa369e0aebe28488 (diff) |
AGESA: Disable CAR with empty stack
Calling disable_cache_as_ram() with valuables in stack is not
a stable solution, as per documentation AMD_DISABLE_STACK
should destroy stack in cache.
Change-Id: I986bb7a88f53f7f7a0b05d4edcd5020f5dbeb4b7
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/18626
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/cpu/amd/agesa/family14')
-rw-r--r-- | src/cpu/amd/agesa/family14/romstage.c | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/src/cpu/amd/agesa/family14/romstage.c b/src/cpu/amd/agesa/family14/romstage.c index b8c9bd345c..e89b2fc84c 100644 --- a/src/cpu/amd/agesa/family14/romstage.c +++ b/src/cpu/amd/agesa/family14/romstage.c @@ -14,9 +14,6 @@ * GNU General Public License for more details. */ -#include <arch/stages.h> -#include <cpu/amd/agesa/s3_resume.h> - #include <console/console.h> #include <cpu/amd/car.h> @@ -51,32 +48,31 @@ void agesa_main(struct sysinfo *cb) post_code(0x40); agesawrapper_amdinitpost(); + } else { + printk(BIOS_INFO, "S3 detected\n"); + + post_code(0x60); + agesawrapper_amdinitresume(); + } +} + +void agesa_postcar(struct sysinfo *cb) +{ + if (!cb->s3resume) { + printk(BIOS_INFO, "Normal boot postcar\n"); post_code(0x41); agesawrapper_amdinitenv(); post_code(0x42); amd_initenv(); - } else { - printk(BIOS_INFO, "S3 detected\n"); - - post_code(0x60); - - agesawrapper_amdinitresume(); + printk(BIOS_INFO, "S3 resume postcar\n"); post_code(0x61); - agesawrapper_amds3laterestore(); post_code(0x62); - - prepare_for_resume(); } - - post_code(0x50); - copy_and_run(); - - /* Not reached */ } |