cpu/amd/agesa: Use acpi_is_wakeup()
Change test to return true on S2 wakeup too. In S2 CPU would have been powered down so MTRR recovery is required. Change-Id: I6ad5fb7e32c59be7d84f28461c238c3975e1e04e Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: http://review.coreboot.org/6078 Tested-by: build bot (Jenkins) Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com> Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
This commit is contained in:
parent
c551caae56
commit
9107e53756
|
@ -32,9 +32,7 @@
|
||||||
#include <cpu/x86/mtrr.h>
|
#include <cpu/x86/mtrr.h>
|
||||||
#include <cpu/amd/amdfam14.h>
|
#include <cpu/amd/amdfam14.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
#if CONFIG_HAVE_ACPI_RESUME
|
|
||||||
#include <cpu/amd/agesa/s3_resume.h>
|
#include <cpu/amd/agesa/s3_resume.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
#define MCI_STATUS 0x401
|
#define MCI_STATUS 0x401
|
||||||
|
|
||||||
|
@ -75,10 +73,8 @@ static void model_14_init(device_t dev)
|
||||||
msr.lo |= SYSCFG_MSR_MtrrFixDramEn;
|
msr.lo |= SYSCFG_MSR_MtrrFixDramEn;
|
||||||
wrmsr(SYSCFG_MSR, msr);
|
wrmsr(SYSCFG_MSR, msr);
|
||||||
|
|
||||||
#if CONFIG_HAVE_ACPI_RESUME
|
if (acpi_is_wakeup())
|
||||||
if (acpi_slp_type == 3)
|
|
||||||
restore_mtrr();
|
restore_mtrr();
|
||||||
#endif
|
|
||||||
|
|
||||||
x86_mtrr_check();
|
x86_mtrr_check();
|
||||||
x86_enable_cache();
|
x86_enable_cache();
|
||||||
|
|
|
@ -33,9 +33,7 @@
|
||||||
#include <cpu/x86/mtrr.h>
|
#include <cpu/x86/mtrr.h>
|
||||||
#include <cpu/amd/amdfam15.h>
|
#include <cpu/amd/amdfam15.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
#if CONFIG_HAVE_ACPI_RESUME
|
|
||||||
#include <cpu/amd/agesa/s3_resume.h>
|
#include <cpu/amd/agesa/s3_resume.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
static void model_15_init(device_t dev)
|
static void model_15_init(device_t dev)
|
||||||
{
|
{
|
||||||
|
@ -73,10 +71,8 @@ static void model_15_init(device_t dev)
|
||||||
msr.lo |= SYSCFG_MSR_MtrrFixDramEn;
|
msr.lo |= SYSCFG_MSR_MtrrFixDramEn;
|
||||||
wrmsr(SYSCFG_MSR, msr);
|
wrmsr(SYSCFG_MSR, msr);
|
||||||
|
|
||||||
#if CONFIG_HAVE_ACPI_RESUME
|
if (acpi_is_wakeup())
|
||||||
if (acpi_slp_type == 3)
|
|
||||||
restore_mtrr();
|
restore_mtrr();
|
||||||
#endif
|
|
||||||
|
|
||||||
x86_mtrr_check();
|
x86_mtrr_check();
|
||||||
x86_enable_cache();
|
x86_enable_cache();
|
||||||
|
|
|
@ -32,9 +32,7 @@
|
||||||
#include <cpu/x86/mtrr.h>
|
#include <cpu/x86/mtrr.h>
|
||||||
#include <cpu/amd/amdfam16.h>
|
#include <cpu/amd/amdfam16.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
#if CONFIG_HAVE_ACPI_RESUME
|
|
||||||
#include <cpu/amd/agesa/s3_resume.h>
|
#include <cpu/amd/agesa/s3_resume.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
static void model_16_init(device_t dev)
|
static void model_16_init(device_t dev)
|
||||||
{
|
{
|
||||||
|
@ -71,10 +69,8 @@ static void model_16_init(device_t dev)
|
||||||
msr.lo |= SYSCFG_MSR_MtrrFixDramEn;
|
msr.lo |= SYSCFG_MSR_MtrrFixDramEn;
|
||||||
wrmsr(SYSCFG_MSR, msr);
|
wrmsr(SYSCFG_MSR, msr);
|
||||||
|
|
||||||
#if CONFIG_HAVE_ACPI_RESUME
|
if (acpi_is_wakeup())
|
||||||
if (acpi_slp_type == 3)
|
|
||||||
restore_mtrr();
|
restore_mtrr();
|
||||||
#endif
|
|
||||||
|
|
||||||
x86_mtrr_check();
|
x86_mtrr_check();
|
||||||
x86_enable_cache();
|
x86_enable_cache();
|
||||||
|
|
|
@ -20,8 +20,6 @@
|
||||||
#ifndef S3_RESUME_H
|
#ifndef S3_RESUME_H
|
||||||
#define S3_RESUME_H
|
#define S3_RESUME_H
|
||||||
|
|
||||||
#if CONFIG_HAVE_ACPI_RESUME
|
|
||||||
|
|
||||||
/* The size needs to be 4k aligned, which is the sector size of most flashes. */
|
/* The size needs to be 4k aligned, which is the sector size of most flashes. */
|
||||||
#define S3_DATA_VOLATILE_SIZE 0x6000
|
#define S3_DATA_VOLATILE_SIZE 0x6000
|
||||||
#define S3_DATA_MTRR_SIZE 0x1000
|
#define S3_DATA_MTRR_SIZE 0x1000
|
||||||
|
@ -30,7 +28,8 @@
|
||||||
#define S3_DATA_MTRR_POS (CONFIG_S3_DATA_POS + S3_DATA_VOLATILE_SIZE)
|
#define S3_DATA_MTRR_POS (CONFIG_S3_DATA_POS + S3_DATA_VOLATILE_SIZE)
|
||||||
#define S3_DATA_NONVOLATILE_POS (CONFIG_S3_DATA_POS + S3_DATA_VOLATILE_SIZE + S3_DATA_MTRR_SIZE)
|
#define S3_DATA_NONVOLATILE_POS (CONFIG_S3_DATA_POS + S3_DATA_VOLATILE_SIZE + S3_DATA_MTRR_SIZE)
|
||||||
|
|
||||||
#if (S3_DATA_VOLATILE_SIZE + S3_DATA_MTRR_SIZE + S3_DATA_NONVOLATILE_SIZE) > CONFIG_S3_DATA_SIZE
|
#if IS_ENABLED(CONFIG_HAVE_ACPI_RESUME) && \
|
||||||
|
(S3_DATA_VOLATILE_SIZE + S3_DATA_MTRR_SIZE + S3_DATA_NONVOLATILE_SIZE) > CONFIG_S3_DATA_SIZE
|
||||||
#error "Please increase the value of S3_DATA_SIZE"
|
#error "Please increase the value of S3_DATA_SIZE"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -55,5 +54,3 @@ void write_mtrr(struct spi_flash *flash, u32 *p_nvram_pos, unsigned idx);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
Loading…
Reference in New Issue