SMM: add defines for APM_CNT register
in the current code, the defines for the APM_CNT (0xb2) register are duplicated in almost every place where it is used. define those values in cpu/x86/smm.h, and only include this file. And while at it, fixup whitespace. Change-Id: Iae712aff53322acd51e89986c2abf4c794e25484 Signed-off-by: Sven Schnelle <svens@stackframe.org> Reviewed-on: http://review.coreboot.org/4 Tested-by: build bot (Jenkins)
This commit is contained in:
@@ -248,6 +248,14 @@ typedef struct {
|
|||||||
};
|
};
|
||||||
} smm_state_save_area_t;
|
} smm_state_save_area_t;
|
||||||
|
|
||||||
|
#define APM_CNT 0xb2
|
||||||
|
#define APM_CNT_CST_CONTROL 0x85
|
||||||
|
#define APM_CNT_PST_CONTROL 0x80
|
||||||
|
#define APM_CNT_ACPI_DISABLE 0x1e
|
||||||
|
#define APM_CNT_ACPI_ENABLE 0xe1
|
||||||
|
#define APM_CNT_MBI_UPDATE 0xeb
|
||||||
|
#define APM_CNT_GNVS_UPDATE 0xea
|
||||||
|
#define APM_STS 0xb3
|
||||||
|
|
||||||
/* SMI handler function prototypes */
|
/* SMI handler function prototypes */
|
||||||
void smi_handler(u32 smm_revision);
|
void smi_handler(u32 smm_revision);
|
||||||
|
@@ -22,17 +22,12 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <device/pci.h>
|
#include <device/pci.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
|
#include <cpu/x86/smm.h>
|
||||||
|
|
||||||
/* FIXME: This needs to go into a separate .h file
|
/* FIXME: This needs to go into a separate .h file
|
||||||
* to be included by the ich7 smi handler, ich7 smi init
|
* to be included by the ich7 smi handler, ich7 smi init
|
||||||
* code and the mainboard fadt.
|
* code and the mainboard fadt.
|
||||||
*/
|
*/
|
||||||
#define APM_CNT 0xb2
|
|
||||||
#define CST_CONTROL 0x85
|
|
||||||
#define PST_CONTROL 0x80
|
|
||||||
#define ACPI_DISABLE 0x1e
|
|
||||||
#define ACPI_ENABLE 0xe1
|
|
||||||
#define GNVS_UPDATE 0xea
|
|
||||||
|
|
||||||
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
{
|
{
|
||||||
@@ -54,10 +49,10 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
|
|
||||||
fadt->sci_int = 0x9;
|
fadt->sci_int = 0x9;
|
||||||
fadt->smi_cmd = APM_CNT;
|
fadt->smi_cmd = APM_CNT;
|
||||||
fadt->acpi_enable = ACPI_ENABLE;
|
fadt->acpi_enable = APM_CNT_ACPI_ENABLE;
|
||||||
fadt->acpi_disable = ACPI_DISABLE;
|
fadt->acpi_disable = APM_CNT_ACPI_DISABLE;
|
||||||
fadt->s4bios_req = 0x0; // S4 command disabled
|
fadt->s4bios_req = 0x0; // S4 command disabled
|
||||||
fadt->pstate_cnt = PST_CONTROL;
|
fadt->pstate_cnt = APM_CNT_PST_CONTROL;
|
||||||
|
|
||||||
fadt->pm1a_evt_blk = pmbase;
|
fadt->pm1a_evt_blk = pmbase;
|
||||||
fadt->pm1b_evt_blk = 0x0;
|
fadt->pm1b_evt_blk = 0x0;
|
||||||
@@ -75,7 +70,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
fadt->gpe0_blk_len = 8;
|
fadt->gpe0_blk_len = 8;
|
||||||
fadt->gpe1_blk_len = 0;
|
fadt->gpe1_blk_len = 0;
|
||||||
fadt->gpe1_base = 0;
|
fadt->gpe1_base = 0;
|
||||||
fadt->cst_cnt = CST_CONTROL;
|
fadt->cst_cnt = APM_CNT_CST_CONTROL;
|
||||||
fadt->p_lvl2_lat = 1;
|
fadt->p_lvl2_lat = 1;
|
||||||
fadt->p_lvl3_lat = 85;
|
fadt->p_lvl3_lat = 85;
|
||||||
fadt->flush_size = 1024;
|
fadt->flush_size = 1024;
|
||||||
|
@@ -20,17 +20,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <device/pci.h>
|
#include <device/pci.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
|
#include <cpu/x86/smm.h>
|
||||||
/* FIXME: This needs to go into a separate .h file
|
|
||||||
* to be included by the ich7 smi handler, ich7 smi init
|
|
||||||
* code and the mainboard fadt.
|
|
||||||
*/
|
|
||||||
#define APM_CNT 0xb2
|
|
||||||
#define CST_CONTROL 0x85
|
|
||||||
#define PST_CONTROL 0x80
|
|
||||||
#define ACPI_DISABLE 0x1e
|
|
||||||
#define ACPI_ENABLE 0xe1
|
|
||||||
#define GNVS_UPDATE 0xea
|
|
||||||
|
|
||||||
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
{
|
{
|
||||||
@@ -53,10 +43,10 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
|
|
||||||
fadt->sci_int = 0x9;
|
fadt->sci_int = 0x9;
|
||||||
fadt->smi_cmd = APM_CNT;
|
fadt->smi_cmd = APM_CNT;
|
||||||
fadt->acpi_enable = ACPI_ENABLE;
|
fadt->acpi_enable = APM_CNT_ACPI_ENABLE;
|
||||||
fadt->acpi_disable = ACPI_DISABLE;
|
fadt->acpi_disable = APM_CNT_ACPI_DISABLE;
|
||||||
fadt->s4bios_req = 0x0;
|
fadt->s4bios_req = 0x0;
|
||||||
fadt->pstate_cnt = PST_CONTROL;
|
fadt->pstate_cnt = APM_CNT_PST_CONTROL;
|
||||||
|
|
||||||
fadt->pm1a_evt_blk = pmbase;
|
fadt->pm1a_evt_blk = pmbase;
|
||||||
fadt->pm1b_evt_blk = 0x0;
|
fadt->pm1b_evt_blk = 0x0;
|
||||||
@@ -75,7 +65,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
fadt->gpe0_blk_len = 8;
|
fadt->gpe0_blk_len = 8;
|
||||||
fadt->gpe1_blk_len = 0;
|
fadt->gpe1_blk_len = 0;
|
||||||
fadt->gpe1_base = 0;
|
fadt->gpe1_base = 0;
|
||||||
fadt->cst_cnt = CST_CONTROL;
|
fadt->cst_cnt = APM_CNT_CST_CONTROL;
|
||||||
fadt->p_lvl2_lat = 1;
|
fadt->p_lvl2_lat = 1;
|
||||||
fadt->p_lvl3_lat = 85;
|
fadt->p_lvl3_lat = 85;
|
||||||
fadt->flush_size = 1024;
|
fadt->flush_size = 1024;
|
||||||
|
@@ -20,17 +20,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <device/pci.h>
|
#include <device/pci.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
|
#include <cpu/x86/smm.h>
|
||||||
/* FIXME: This needs to go into a separate .h file
|
|
||||||
* to be included by the ich7 smi handler, ich7 smi init
|
|
||||||
* code and the mainboard fadt.
|
|
||||||
*/
|
|
||||||
#define APM_CNT 0xb2
|
|
||||||
#define CST_CONTROL 0x85
|
|
||||||
#define PST_CONTROL 0x80
|
|
||||||
#define ACPI_DISABLE 0x1e
|
|
||||||
#define ACPI_ENABLE 0xe1
|
|
||||||
#define GNVS_UPDATE 0xea
|
|
||||||
|
|
||||||
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
{
|
{
|
||||||
@@ -53,10 +43,10 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
|
|
||||||
fadt->sci_int = 0x9;
|
fadt->sci_int = 0x9;
|
||||||
fadt->smi_cmd = APM_CNT;
|
fadt->smi_cmd = APM_CNT;
|
||||||
fadt->acpi_enable = ACPI_ENABLE;
|
fadt->acpi_enable = APM_CNT_ACPI_ENABLE;
|
||||||
fadt->acpi_disable = ACPI_DISABLE;
|
fadt->acpi_disable = APM_CNT_ACPI_DISABLE;
|
||||||
fadt->s4bios_req = 0x0;
|
fadt->s4bios_req = 0x0;
|
||||||
fadt->pstate_cnt = PST_CONTROL;
|
fadt->pstate_cnt = APM_CNT_PST_CONTROL;
|
||||||
|
|
||||||
fadt->pm1a_evt_blk = pmbase;
|
fadt->pm1a_evt_blk = pmbase;
|
||||||
fadt->pm1b_evt_blk = 0x0;
|
fadt->pm1b_evt_blk = 0x0;
|
||||||
@@ -75,7 +65,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
fadt->gpe0_blk_len = 8;
|
fadt->gpe0_blk_len = 8;
|
||||||
fadt->gpe1_blk_len = 0;
|
fadt->gpe1_blk_len = 0;
|
||||||
fadt->gpe1_base = 0;
|
fadt->gpe1_base = 0;
|
||||||
fadt->cst_cnt = CST_CONTROL;
|
fadt->cst_cnt = APM_CNT_CST_CONTROL;
|
||||||
fadt->p_lvl2_lat = 1;
|
fadt->p_lvl2_lat = 1;
|
||||||
fadt->p_lvl3_lat = 85;
|
fadt->p_lvl3_lat = 85;
|
||||||
fadt->flush_size = 1024;
|
fadt->flush_size = 1024;
|
||||||
|
@@ -23,6 +23,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <device/pci.h>
|
#include <device/pci.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
|
#include <cpu/x86/smm.h>
|
||||||
|
|
||||||
#define ACPI_PM1_STS (pmbase + 0x00)
|
#define ACPI_PM1_STS (pmbase + 0x00)
|
||||||
#define ACPI_PM1_EN (pmbase + 0x02)
|
#define ACPI_PM1_EN (pmbase + 0x02)
|
||||||
@@ -67,12 +68,12 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
fadt->preferred_pm_profile = 7; /* Performance Server */
|
fadt->preferred_pm_profile = 7; /* Performance Server */
|
||||||
fadt->sci_int = 0x9;
|
fadt->sci_int = 0x9;
|
||||||
#if CONFIG_HAVE_SMI_HANDLER == 1
|
#if CONFIG_HAVE_SMI_HANDLER == 1
|
||||||
fadt->smi_cmd = 0xb2;
|
fadt->smi_cmd = APM_CNT;
|
||||||
#else
|
#else
|
||||||
fadt->smi_cmd = 0x00;
|
fadt->smi_cmd = 0x00;
|
||||||
#endif
|
#endif
|
||||||
fadt->acpi_enable = 0xe1;
|
fadt->acpi_enable = APM_CNT_ACPI_ENABLE;
|
||||||
fadt->acpi_disable = 0x1e;
|
fadt->acpi_disable = APM_CNT_ACPI_DISABLE;
|
||||||
fadt->s4bios_req = 0x0;
|
fadt->s4bios_req = 0x0;
|
||||||
fadt->pstate_cnt = 0xe2;
|
fadt->pstate_cnt = 0xe2;
|
||||||
|
|
||||||
|
@@ -20,17 +20,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <device/pci.h>
|
#include <device/pci.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
|
#include <cpu/x86/smm.h>
|
||||||
/* FIXME: This needs to go into a separate .h file
|
|
||||||
* to be included by the ich7 smi handler, ich7 smi init
|
|
||||||
* code and the mainboard fadt.
|
|
||||||
*/
|
|
||||||
#define APM_CNT 0xb2
|
|
||||||
#define CST_CONTROL 0x85
|
|
||||||
#define PST_CONTROL 0x80
|
|
||||||
#define ACPI_DISABLE 0x1e
|
|
||||||
#define ACPI_ENABLE 0xe1
|
|
||||||
#define GNVS_UPDATE 0xea
|
|
||||||
|
|
||||||
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
{
|
{
|
||||||
@@ -54,10 +44,10 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
|
|
||||||
fadt->sci_int = 0x9;
|
fadt->sci_int = 0x9;
|
||||||
fadt->smi_cmd = APM_CNT;
|
fadt->smi_cmd = APM_CNT;
|
||||||
fadt->acpi_enable = ACPI_ENABLE;
|
fadt->acpi_enable = APM_CNT_ACPI_ENABLE;
|
||||||
fadt->acpi_disable = ACPI_DISABLE;
|
fadt->acpi_disable = APM_CNT_ACPI_DISABLE;
|
||||||
fadt->s4bios_req = 0x0;
|
fadt->s4bios_req = 0x0;
|
||||||
fadt->pstate_cnt = PST_CONTROL;
|
fadt->pstate_cnt = APM_CNT_PST_CONTROL;
|
||||||
|
|
||||||
fadt->pm1a_evt_blk = pmbase;
|
fadt->pm1a_evt_blk = pmbase;
|
||||||
fadt->pm1b_evt_blk = 0x0;
|
fadt->pm1b_evt_blk = 0x0;
|
||||||
@@ -76,7 +66,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
fadt->gpe0_blk_len = 8;
|
fadt->gpe0_blk_len = 8;
|
||||||
fadt->gpe1_blk_len = 0;
|
fadt->gpe1_blk_len = 0;
|
||||||
fadt->gpe1_base = 0;
|
fadt->gpe1_base = 0;
|
||||||
fadt->cst_cnt = CST_CONTROL;
|
fadt->cst_cnt = APM_CNT_CST_CONTROL;
|
||||||
fadt->p_lvl2_lat = 1;
|
fadt->p_lvl2_lat = 1;
|
||||||
fadt->p_lvl3_lat = 85;
|
fadt->p_lvl3_lat = 85;
|
||||||
fadt->flush_size = 1024;
|
fadt->flush_size = 1024;
|
||||||
|
@@ -20,17 +20,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <device/pci.h>
|
#include <device/pci.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
|
#include <cpu/x86/smm.h>
|
||||||
/* FIXME: This needs to go into a separate .h file
|
|
||||||
* to be included by the ich7 smi handler, ich7 smi init
|
|
||||||
* code and the mainboard fadt.
|
|
||||||
*/
|
|
||||||
#define APM_CNT 0xb2
|
|
||||||
#define CST_CONTROL 0x85
|
|
||||||
#define PST_CONTROL 0x80
|
|
||||||
#define ACPI_DISABLE 0x1e
|
|
||||||
#define ACPI_ENABLE 0xe1
|
|
||||||
#define GNVS_UPDATE 0xea
|
|
||||||
|
|
||||||
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
{
|
{
|
||||||
@@ -53,10 +43,10 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
|
|
||||||
fadt->sci_int = 0x9;
|
fadt->sci_int = 0x9;
|
||||||
fadt->smi_cmd = APM_CNT;
|
fadt->smi_cmd = APM_CNT;
|
||||||
fadt->acpi_enable = ACPI_ENABLE;
|
fadt->acpi_enable = APM_CNT_ACPI_ENABLE;
|
||||||
fadt->acpi_disable = ACPI_DISABLE;
|
fadt->acpi_disable = APM_CNT_ACPI_DISABLE;
|
||||||
fadt->s4bios_req = 0x0;
|
fadt->s4bios_req = 0x0;
|
||||||
fadt->pstate_cnt = PST_CONTROL;
|
fadt->pstate_cnt = APM_CNT_PST_CONTROL;
|
||||||
|
|
||||||
fadt->pm1a_evt_blk = pmbase;
|
fadt->pm1a_evt_blk = pmbase;
|
||||||
fadt->pm1b_evt_blk = 0x0;
|
fadt->pm1b_evt_blk = 0x0;
|
||||||
@@ -75,7 +65,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
fadt->gpe0_blk_len = 8;
|
fadt->gpe0_blk_len = 8;
|
||||||
fadt->gpe1_blk_len = 0;
|
fadt->gpe1_blk_len = 0;
|
||||||
fadt->gpe1_base = 0;
|
fadt->gpe1_base = 0;
|
||||||
fadt->cst_cnt = CST_CONTROL;
|
fadt->cst_cnt = APM_CNT_CST_CONTROL;
|
||||||
fadt->p_lvl2_lat = 1;
|
fadt->p_lvl2_lat = 1;
|
||||||
fadt->p_lvl3_lat = 85;
|
fadt->p_lvl3_lat = 85;
|
||||||
fadt->flush_size = 1024;
|
fadt->flush_size = 1024;
|
||||||
|
@@ -22,17 +22,12 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <device/pci.h>
|
#include <device/pci.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
|
#include <cpu/x86/smm.h>
|
||||||
|
|
||||||
/* FIXME: This needs to go into a separate .h file
|
/* FIXME: This needs to go into a separate .h file
|
||||||
* to be included by the ich7 smi handler, ich7 smi init
|
* to be included by the ich7 smi handler, ich7 smi init
|
||||||
* code and the mainboard fadt.
|
* code and the mainboard fadt.
|
||||||
*/
|
*/
|
||||||
#define APM_CNT 0xb2
|
|
||||||
#define CST_CONTROL 0x85
|
|
||||||
#define PST_CONTROL 0x80
|
|
||||||
#define ACPI_DISABLE 0x1e
|
|
||||||
#define ACPI_ENABLE 0xe1
|
|
||||||
#define GNVS_UPDATE 0xea
|
|
||||||
|
|
||||||
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
{
|
{
|
||||||
@@ -54,10 +49,10 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
fadt->preferred_pm_profile = PM_MOBILE;
|
fadt->preferred_pm_profile = PM_MOBILE;
|
||||||
fadt->sci_int = 0x9;
|
fadt->sci_int = 0x9;
|
||||||
fadt->smi_cmd = APM_CNT;
|
fadt->smi_cmd = APM_CNT;
|
||||||
fadt->acpi_enable = ACPI_ENABLE;
|
fadt->acpi_enable = APM_CNT_ACPI_ENABLE;
|
||||||
fadt->acpi_disable = ACPI_DISABLE;
|
fadt->acpi_disable = APM_CNT_ACPI_DISABLE;
|
||||||
fadt->s4bios_req = 0x0;
|
fadt->s4bios_req = 0x0;
|
||||||
fadt->pstate_cnt = PST_CONTROL;
|
fadt->pstate_cnt = APM_CNT_PST_CONTROL;
|
||||||
|
|
||||||
fadt->pm1a_evt_blk = pmbase;
|
fadt->pm1a_evt_blk = pmbase;
|
||||||
fadt->pm1b_evt_blk = 0x0;
|
fadt->pm1b_evt_blk = 0x0;
|
||||||
@@ -75,7 +70,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
fadt->gpe0_blk_len = 8;
|
fadt->gpe0_blk_len = 8;
|
||||||
fadt->gpe1_blk_len = 0;
|
fadt->gpe1_blk_len = 0;
|
||||||
fadt->gpe1_base = 0;
|
fadt->gpe1_base = 0;
|
||||||
fadt->cst_cnt = CST_CONTROL;
|
fadt->cst_cnt = APM_CNT_CST_CONTROL;
|
||||||
fadt->p_lvl2_lat = 1;
|
fadt->p_lvl2_lat = 1;
|
||||||
fadt->p_lvl3_lat = 0x23;
|
fadt->p_lvl3_lat = 0x23;
|
||||||
fadt->flush_size = 0;
|
fadt->flush_size = 0;
|
||||||
|
@@ -22,17 +22,12 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <device/pci.h>
|
#include <device/pci.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
|
#include <cpu/x86/smm.h>
|
||||||
|
|
||||||
/* FIXME: This needs to go into a separate .h file
|
/* FIXME: This needs to go into a separate .h file
|
||||||
* to be included by the ich7 smi handler, ich7 smi init
|
* to be included by the ich7 smi handler, ich7 smi init
|
||||||
* code and the mainboard fadt.
|
* code and the mainboard fadt.
|
||||||
*/
|
*/
|
||||||
#define APM_CNT 0xb2
|
|
||||||
#define CST_CONTROL 0x85
|
|
||||||
#define PST_CONTROL 0x80
|
|
||||||
#define ACPI_DISABLE 0x1e
|
|
||||||
#define ACPI_ENABLE 0xe1
|
|
||||||
#define GNVS_UPDATE 0xea
|
|
||||||
|
|
||||||
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
{
|
{
|
||||||
@@ -54,10 +49,10 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
fadt->preferred_pm_profile = PM_MOBILE;
|
fadt->preferred_pm_profile = PM_MOBILE;
|
||||||
fadt->sci_int = 0x9;
|
fadt->sci_int = 0x9;
|
||||||
fadt->smi_cmd = APM_CNT;
|
fadt->smi_cmd = APM_CNT;
|
||||||
fadt->acpi_enable = ACPI_ENABLE;
|
fadt->acpi_enable = APM_CNT_ACPI_ENABLE;
|
||||||
fadt->acpi_disable = ACPI_DISABLE;
|
fadt->acpi_disable = APM_CNT_ACPI_DISABLE;
|
||||||
fadt->s4bios_req = 0x0;
|
fadt->s4bios_req = 0x0;
|
||||||
fadt->pstate_cnt = PST_CONTROL;
|
fadt->pstate_cnt = APM_CNT_PST_CONTROL;
|
||||||
|
|
||||||
fadt->pm1a_evt_blk = pmbase;
|
fadt->pm1a_evt_blk = pmbase;
|
||||||
fadt->pm1b_evt_blk = 0x0;
|
fadt->pm1b_evt_blk = 0x0;
|
||||||
@@ -75,7 +70,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
fadt->gpe0_blk_len = 8;
|
fadt->gpe0_blk_len = 8;
|
||||||
fadt->gpe1_blk_len = 0;
|
fadt->gpe1_blk_len = 0;
|
||||||
fadt->gpe1_base = 0;
|
fadt->gpe1_base = 0;
|
||||||
fadt->cst_cnt = CST_CONTROL;
|
fadt->cst_cnt = APM_CNT_CST_CONTROL;
|
||||||
fadt->p_lvl2_lat = 1;
|
fadt->p_lvl2_lat = 1;
|
||||||
fadt->p_lvl3_lat = 0x23;
|
fadt->p_lvl3_lat = 0x23;
|
||||||
fadt->flush_size = 0;
|
fadt->flush_size = 0;
|
||||||
|
@@ -75,4 +75,3 @@ int mainboard_io_trap_handler(int smif)
|
|||||||
* On failure, the IO Trap Handler returns a value != 0 */
|
* On failure, the IO Trap Handler returns a value != 0 */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -22,17 +22,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <device/pci.h>
|
#include <device/pci.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
|
#include <cpu/x86/smm.h>
|
||||||
/* FIXME: This needs to go into a separate .h file
|
|
||||||
* to be included by the ich7 smi handler, ich7 smi init
|
|
||||||
* code and the mainboard fadt.
|
|
||||||
*/
|
|
||||||
#define APM_CNT 0xb2
|
|
||||||
#define CST_CONTROL 0x85
|
|
||||||
#define PST_CONTROL 0x80
|
|
||||||
#define ACPI_DISABLE 0x1e
|
|
||||||
#define ACPI_ENABLE 0xe1
|
|
||||||
#define GNVS_UPDATE 0xea
|
|
||||||
|
|
||||||
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
{
|
{
|
||||||
@@ -54,10 +44,10 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
fadt->preferred_pm_profile = PM_MOBILE;
|
fadt->preferred_pm_profile = PM_MOBILE;
|
||||||
fadt->sci_int = 0x9;
|
fadt->sci_int = 0x9;
|
||||||
fadt->smi_cmd = APM_CNT;
|
fadt->smi_cmd = APM_CNT;
|
||||||
fadt->acpi_enable = ACPI_ENABLE;
|
fadt->acpi_enable = APM_CNT_ACPI_ENABLE;
|
||||||
fadt->acpi_disable = ACPI_DISABLE;
|
fadt->acpi_disable = APM_CNT_ACPI_DISABLE;
|
||||||
fadt->s4bios_req = 0x0;
|
fadt->s4bios_req = 0x0;
|
||||||
fadt->pstate_cnt = PST_CONTROL;
|
fadt->pstate_cnt = APM_CNT_PST_CONTROL;
|
||||||
|
|
||||||
fadt->pm1a_evt_blk = pmbase;
|
fadt->pm1a_evt_blk = pmbase;
|
||||||
fadt->pm1b_evt_blk = 0x0;
|
fadt->pm1b_evt_blk = 0x0;
|
||||||
@@ -75,7 +65,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
|||||||
fadt->gpe0_blk_len = 8;
|
fadt->gpe0_blk_len = 8;
|
||||||
fadt->gpe1_blk_len = 0;
|
fadt->gpe1_blk_len = 0;
|
||||||
fadt->gpe1_base = 0;
|
fadt->gpe1_base = 0;
|
||||||
fadt->cst_cnt = CST_CONTROL;
|
fadt->cst_cnt = APM_CNT_CST_CONTROL;
|
||||||
fadt->p_lvl2_lat = 1;
|
fadt->p_lvl2_lat = 1;
|
||||||
fadt->p_lvl3_lat = 0x23;
|
fadt->p_lvl3_lat = 0x23;
|
||||||
fadt->flush_size = 0;
|
fadt->flush_size = 0;
|
||||||
|
@@ -30,15 +30,6 @@
|
|||||||
|
|
||||||
#define DEBUG_SMI
|
#define DEBUG_SMI
|
||||||
|
|
||||||
#define APM_CNT 0xb2
|
|
||||||
#define CST_CONTROL 0x85
|
|
||||||
#define PST_CONTROL 0x80
|
|
||||||
#define ACPI_DISABLE 0x1e
|
|
||||||
#define ACPI_ENABLE 0xe1
|
|
||||||
#define GNVS_UPDATE 0xea
|
|
||||||
#define MBI_UPDATE 0xeb
|
|
||||||
#define APM_STS 0xb3
|
|
||||||
|
|
||||||
/* I830M */
|
/* I830M */
|
||||||
#define SMRAM 0x90
|
#define SMRAM 0x90
|
||||||
#define D_OPEN (1 << 6)
|
#define D_OPEN (1 << 6)
|
||||||
@@ -370,33 +361,33 @@ static void southbridge_smi_apmc(unsigned int node, smm_state_save_area_t *state
|
|||||||
|
|
||||||
reg8 = inb(APM_CNT);
|
reg8 = inb(APM_CNT);
|
||||||
switch (reg8) {
|
switch (reg8) {
|
||||||
case CST_CONTROL:
|
case APM_CNT_CST_CONTROL:
|
||||||
/* Calling this function seems to cause
|
/* Calling this function seems to cause
|
||||||
* some kind of race condition in Linux
|
* some kind of race condition in Linux
|
||||||
* and causes a kernel oops
|
* and causes a kernel oops
|
||||||
*/
|
*/
|
||||||
printk(BIOS_DEBUG, "C-state control\n");
|
printk(BIOS_DEBUG, "C-state control\n");
|
||||||
break;
|
break;
|
||||||
case PST_CONTROL:
|
case APM_CNT_PST_CONTROL:
|
||||||
/* Calling this function seems to cause
|
/* Calling this function seems to cause
|
||||||
* some kind of race condition in Linux
|
* some kind of race condition in Linux
|
||||||
* and causes a kernel oops
|
* and causes a kernel oops
|
||||||
*/
|
*/
|
||||||
printk(BIOS_DEBUG, "P-state control\n");
|
printk(BIOS_DEBUG, "P-state control\n");
|
||||||
break;
|
break;
|
||||||
case ACPI_DISABLE:
|
case APM_CNT_ACPI_DISABLE:
|
||||||
pmctrl = inl(pmbase + PM1_CNT);
|
pmctrl = inl(pmbase + PM1_CNT);
|
||||||
pmctrl &= ~SCI_EN;
|
pmctrl &= ~SCI_EN;
|
||||||
outl(pmctrl, pmbase + PM1_CNT);
|
outl(pmctrl, pmbase + PM1_CNT);
|
||||||
printk(BIOS_DEBUG, "SMI#: ACPI disabled.\n");
|
printk(BIOS_DEBUG, "SMI#: ACPI disabled.\n");
|
||||||
break;
|
break;
|
||||||
case ACPI_ENABLE:
|
case APM_CNT_ACPI_ENABLE:
|
||||||
pmctrl = inl(pmbase + PM1_CNT);
|
pmctrl = inl(pmbase + PM1_CNT);
|
||||||
pmctrl |= SCI_EN;
|
pmctrl |= SCI_EN;
|
||||||
outl(pmctrl, pmbase + PM1_CNT);
|
outl(pmctrl, pmbase + PM1_CNT);
|
||||||
printk(BIOS_DEBUG, "SMI#: ACPI enabled.\n");
|
printk(BIOS_DEBUG, "SMI#: ACPI enabled.\n");
|
||||||
break;
|
break;
|
||||||
case GNVS_UPDATE:
|
case APM_CNT_GNVS_UPDATE:
|
||||||
if (smm_initialized) {
|
if (smm_initialized) {
|
||||||
printk(BIOS_DEBUG, "SMI#: SMM structures already initialized!\n");
|
printk(BIOS_DEBUG, "SMI#: SMM structures already initialized!\n");
|
||||||
return;
|
return;
|
||||||
@@ -407,7 +398,7 @@ static void southbridge_smi_apmc(unsigned int node, smm_state_save_area_t *state
|
|||||||
smm_initialized = 1;
|
smm_initialized = 1;
|
||||||
printk(BIOS_DEBUG, "SMI#: Setting up structures to %p, %p, %p\n", gnvs, tcg, smi1);
|
printk(BIOS_DEBUG, "SMI#: Setting up structures to %p, %p, %p\n", gnvs, tcg, smi1);
|
||||||
break;
|
break;
|
||||||
case MBI_UPDATE: // FIXME
|
case APM_CNT_MBI_UPDATE: // FIXME
|
||||||
if (mbi_initialized) {
|
if (mbi_initialized) {
|
||||||
printk(BIOS_DEBUG, "SMI#: mbi already registered!\n");
|
printk(BIOS_DEBUG, "SMI#: mbi already registered!\n");
|
||||||
return;
|
return;
|
||||||
|
@@ -29,6 +29,7 @@
|
|||||||
#include <arch/ioapic.h>
|
#include <arch/ioapic.h>
|
||||||
#include <cpu/cpu.h>
|
#include <cpu/cpu.h>
|
||||||
#include "i82801gx.h"
|
#include "i82801gx.h"
|
||||||
|
#include <cpu/x86/smm.h>
|
||||||
|
|
||||||
#define NMI_OFF 0
|
#define NMI_OFF 0
|
||||||
|
|
||||||
@@ -342,11 +343,11 @@ static void i82801gx_lock_smm(struct device *dev)
|
|||||||
|
|
||||||
#if ENABLE_ACPI_MODE_IN_COREBOOT
|
#if ENABLE_ACPI_MODE_IN_COREBOOT
|
||||||
printk(BIOS_DEBUG, "Enabling ACPI via APMC:\n");
|
printk(BIOS_DEBUG, "Enabling ACPI via APMC:\n");
|
||||||
outb(0xe1, 0xb2); // Enable ACPI mode
|
outb(APM_CNT_ACPI_ENABLE, APM_CNT); // Enable ACPI mode
|
||||||
printk(BIOS_DEBUG, "done.\n");
|
printk(BIOS_DEBUG, "done.\n");
|
||||||
#else
|
#else
|
||||||
printk(BIOS_DEBUG, "Disabling ACPI via APMC:\n");
|
printk(BIOS_DEBUG, "Disabling ACPI via APMC:\n");
|
||||||
outb(0x1e, 0xb2); // Disable ACPI mode
|
outb(APM_CNT_ACPI_DISABLE, APM_CNT); // Disable ACPI mode
|
||||||
printk(BIOS_DEBUG, "done.\n");
|
printk(BIOS_DEBUG, "done.\n");
|
||||||
#endif
|
#endif
|
||||||
/* Don't allow evil boot loaders, kernels, or
|
/* Don't allow evil boot loaders, kernels, or
|
||||||
|
@@ -28,14 +28,6 @@
|
|||||||
#include <device/pci_def.h>
|
#include <device/pci_def.h>
|
||||||
#include "i82801gx.h"
|
#include "i82801gx.h"
|
||||||
|
|
||||||
#define APM_CNT 0xb2
|
|
||||||
#define CST_CONTROL 0x85
|
|
||||||
#define PST_CONTROL 0x80
|
|
||||||
#define ACPI_DISABLE 0x1e
|
|
||||||
#define ACPI_ENABLE 0xe1
|
|
||||||
#define GNVS_UPDATE 0xea
|
|
||||||
#define APM_STS 0xb3
|
|
||||||
|
|
||||||
/* I945 */
|
/* I945 */
|
||||||
#define SMRAM 0x9d
|
#define SMRAM 0x9d
|
||||||
#define D_OPEN (1 << 6)
|
#define D_OPEN (1 << 6)
|
||||||
@@ -366,33 +358,33 @@ static void southbridge_smi_apmc(unsigned int node, smm_state_save_area_t *state
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
switch (reg8) {
|
switch (reg8) {
|
||||||
case CST_CONTROL:
|
case APM_CNT_CST_CONTROL:
|
||||||
/* Calling this function seems to cause
|
/* Calling this function seems to cause
|
||||||
* some kind of race condition in Linux
|
* some kind of race condition in Linux
|
||||||
* and causes a kernel oops
|
* and causes a kernel oops
|
||||||
*/
|
*/
|
||||||
printk(BIOS_DEBUG, "C-state control\n");
|
printk(BIOS_DEBUG, "C-state control\n");
|
||||||
break;
|
break;
|
||||||
case PST_CONTROL:
|
case APM_CNT_PST_CONTROL:
|
||||||
/* Calling this function seems to cause
|
/* Calling this function seems to cause
|
||||||
* some kind of race condition in Linux
|
* some kind of race condition in Linux
|
||||||
* and causes a kernel oops
|
* and causes a kernel oops
|
||||||
*/
|
*/
|
||||||
printk(BIOS_DEBUG, "P-state control\n");
|
printk(BIOS_DEBUG, "P-state control\n");
|
||||||
break;
|
break;
|
||||||
case ACPI_DISABLE:
|
case APM_CNT_ACPI_DISABLE:
|
||||||
pmctrl = inl(pmbase + PM1_CNT);
|
pmctrl = inl(pmbase + PM1_CNT);
|
||||||
pmctrl &= ~SCI_EN;
|
pmctrl &= ~SCI_EN;
|
||||||
outl(pmctrl, pmbase + PM1_CNT);
|
outl(pmctrl, pmbase + PM1_CNT);
|
||||||
printk(BIOS_DEBUG, "SMI#: ACPI disabled.\n");
|
printk(BIOS_DEBUG, "SMI#: ACPI disabled.\n");
|
||||||
break;
|
break;
|
||||||
case ACPI_ENABLE:
|
case APM_CNT_ACPI_ENABLE:
|
||||||
pmctrl = inl(pmbase + PM1_CNT);
|
pmctrl = inl(pmbase + PM1_CNT);
|
||||||
pmctrl |= SCI_EN;
|
pmctrl |= SCI_EN;
|
||||||
outl(pmctrl, pmbase + PM1_CNT);
|
outl(pmctrl, pmbase + PM1_CNT);
|
||||||
printk(BIOS_DEBUG, "SMI#: ACPI enabled.\n");
|
printk(BIOS_DEBUG, "SMI#: ACPI enabled.\n");
|
||||||
break;
|
break;
|
||||||
case GNVS_UPDATE:
|
case APM_CNT_GNVS_UPDATE:
|
||||||
if (smm_initialized) {
|
if (smm_initialized) {
|
||||||
printk(BIOS_DEBUG, "SMI#: SMM structures already initialized!\n");
|
printk(BIOS_DEBUG, "SMI#: SMM structures already initialized!\n");
|
||||||
return;
|
return;
|
||||||
|
@@ -28,11 +28,6 @@
|
|||||||
|
|
||||||
#define DEBUG_SMI
|
#define DEBUG_SMI
|
||||||
|
|
||||||
#define APM_CNT 0xb2
|
|
||||||
#define APM_STS 0xb3
|
|
||||||
#define ACPI_DISABLE 0x1e
|
|
||||||
#define ACPI_ENABLE 0xe1
|
|
||||||
|
|
||||||
/* I945 */
|
/* I945 */
|
||||||
#define SMRAM 0x9d
|
#define SMRAM 0x9d
|
||||||
#define D_OPEN (1 << 6)
|
#define D_OPEN (1 << 6)
|
||||||
|
@@ -29,14 +29,6 @@
|
|||||||
#include <device/pci_def.h>
|
#include <device/pci_def.h>
|
||||||
#include "vt8237r.h"
|
#include "vt8237r.h"
|
||||||
|
|
||||||
#define APM_CNT 0xb2
|
|
||||||
#define CST_CONTROL 0x85
|
|
||||||
#define PST_CONTROL 0x80
|
|
||||||
#define ACPI_DISABLE 0x1e
|
|
||||||
#define ACPI_ENABLE 0xe1
|
|
||||||
#define GNVS_UPDATE 0xea
|
|
||||||
#define APM_STS 0xb3
|
|
||||||
|
|
||||||
#include "nvs.h"
|
#include "nvs.h"
|
||||||
|
|
||||||
/* While we read PMBASE dynamically in case it changed, let's
|
/* While we read PMBASE dynamically in case it changed, let's
|
||||||
@@ -158,33 +150,33 @@ static void southbridge_smi_cmd(unsigned int node, smm_state_save_area_t *state_
|
|||||||
|
|
||||||
reg8 = inb(pmbase + 0x2f);
|
reg8 = inb(pmbase + 0x2f);
|
||||||
switch (reg8) {
|
switch (reg8) {
|
||||||
case CST_CONTROL:
|
case APM_CNT_CST_CONTROL:
|
||||||
/* Calling this function seems to cause
|
/* Calling this function seems to cause
|
||||||
* some kind of race condition in Linux
|
* some kind of race condition in Linux
|
||||||
* and causes a kernel oops
|
* and causes a kernel oops
|
||||||
*/
|
*/
|
||||||
printk(BIOS_DEBUG, "C-state control\n");
|
printk(BIOS_DEBUG, "C-state control\n");
|
||||||
break;
|
break;
|
||||||
case PST_CONTROL:
|
case APM_CNT_PST_CONTROL:
|
||||||
/* Calling this function seems to cause
|
/* Calling this function seems to cause
|
||||||
* some kind of race condition in Linux
|
* some kind of race condition in Linux
|
||||||
* and causes a kernel oops
|
* and causes a kernel oops
|
||||||
*/
|
*/
|
||||||
printk(BIOS_DEBUG, "P-state control\n");
|
printk(BIOS_DEBUG, "P-state control\n");
|
||||||
break;
|
break;
|
||||||
case ACPI_DISABLE:
|
case APM_CNT_ACPI_DISABLE:
|
||||||
pmctrl = inw(pmbase + PM1_CNT);
|
pmctrl = inw(pmbase + PM1_CNT);
|
||||||
pmctrl &= ~SCI_EN;
|
pmctrl &= ~SCI_EN;
|
||||||
outw(pmctrl, pmbase + PM1_CNT);
|
outw(pmctrl, pmbase + PM1_CNT);
|
||||||
printk(BIOS_DEBUG, "SMI#: ACPI disabled.\n");
|
printk(BIOS_DEBUG, "SMI#: ACPI disabled.\n");
|
||||||
break;
|
break;
|
||||||
case ACPI_ENABLE:
|
case APM_CNT_ACPI_ENABLE:
|
||||||
pmctrl = inw(pmbase + PM1_CNT);
|
pmctrl = inw(pmbase + PM1_CNT);
|
||||||
pmctrl |= SCI_EN;
|
pmctrl |= SCI_EN;
|
||||||
outw(pmctrl, pmbase + PM1_CNT);
|
outw(pmctrl, pmbase + PM1_CNT);
|
||||||
printk(BIOS_DEBUG, "SMI#: ACPI enabled.\n");
|
printk(BIOS_DEBUG, "SMI#: ACPI enabled.\n");
|
||||||
break;
|
break;
|
||||||
case GNVS_UPDATE:
|
case APM_CNT_GNVS_UPDATE:
|
||||||
if (smm_initialized) {
|
if (smm_initialized) {
|
||||||
printk(BIOS_DEBUG, "SMI#: SMM structures already initialized!\n");
|
printk(BIOS_DEBUG, "SMI#: SMM structures already initialized!\n");
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user