diff options
author | Duncan Laurie <dlaurie@chromium.org> | 2012-01-18 10:05:18 -0800 |
---|---|---|
committer | Stefan Reinauer <stefan.reinauer@coreboot.org> | 2012-03-30 17:52:11 +0200 |
commit | 67e6c2aaf4d4194dac824014197cc684af9750f5 (patch) | |
tree | 296b63385c53e83dbcff34f0f80aaf59a2685b68 | |
parent | b4aaaa7632116c2fe466095d0cd3cc1247344ca6 (diff) | |
download | coreboot-67e6c2aaf4d4194dac824014197cc684af9750f5.tar.xz |
Don't re-init EBDA in S3 resume path.
I forgot to implement this the first time around.
It does not seem to cause noticeable problems but
in heavy suspend/resume testing I saw a suspicious
crash in the kernel when trying to bring one of the
CPUs back online.
Change-Id: I950ac260f251e2683693d9bd20a0dd5e041aa26e
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Reviewed-on: http://review.coreboot.org/770
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
-rw-r--r-- | src/arch/x86/lib/ebda.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/arch/x86/lib/ebda.c b/src/arch/x86/lib/ebda.c index faf1451a2f..fb407b6ac8 100644 --- a/src/arch/x86/lib/ebda.c +++ b/src/arch/x86/lib/ebda.c @@ -23,9 +23,18 @@ #include <string.h> #include <arch/io.h> #include <arch/ebda.h> +#if CONFIG_HAVE_ACPI_RESUME +#include <arch/acpi.h> +#endif void setup_ebda(u32 low_memory_size, u16 ebda_segment, u16 ebda_size) { +#if CONFIG_HAVE_ACPI_RESUME + /* Skip in S3 resume path */ + if (acpi_slp_type == 3) + return; +#endif + if (!low_memory_size || !ebda_segment || !ebda_size) return; |