Hudson: Changes to support agesa/hudson for legacy free
Add Kconfig option for Legacy free and hook it into the parmer AGESA initialization as well as the FADT code. This should really be done inside the southbridge wrapper and not in the mainboard, but for now the code to attach it to is inside the mainboard. Update Kconfig for parmer and thatcher to default to legacy free. Change-Id: Ib899bd02ddc5506caae4aca2c589cc2526638cb8 Signed-off-by: Martin Roth <martin.roth@se-eng.com> Reviewed-on: http://review.coreboot.org/2157 Tested-by: build bot (Jenkins) Reviewed-by: Marc Jones <marcj303@gmail.com>
This commit is contained in:
parent
0fbaf18ed4
commit
eac220f8b5
|
@ -717,9 +717,12 @@ AGESA_STATUS Fch_Oem_config(UINT32 Func, UINT32 FchData, VOID *ConfigPtr)
|
||||||
FCH_RESET_DATA_BLOCK *FchParams = (FCH_RESET_DATA_BLOCK *)FchData;
|
FCH_RESET_DATA_BLOCK *FchParams = (FCH_RESET_DATA_BLOCK *)FchData;
|
||||||
|
|
||||||
if (FchParams->StdHeader->Func == AMD_INIT_RESET) {
|
if (FchParams->StdHeader->Func == AMD_INIT_RESET) {
|
||||||
//FCH_RESET_DATA_BLOCK *FchParams_reset = (FCH_RESET_DATA_BLOCK *) FchData;
|
FCH_RESET_DATA_BLOCK *FchParams_reset = (FCH_RESET_DATA_BLOCK *) FchData;
|
||||||
printk(BIOS_DEBUG, "Fch OEM config in INIT RESET ");
|
printk(BIOS_DEBUG, "Fch OEM config in INIT RESET ");
|
||||||
//FchParams_reset->EcChannel0 = TRUE; /* logical devicd 3 */
|
//FchParams_reset->EcChannel0 = TRUE; /* logical devicd 3 */
|
||||||
|
#if CONFIG_HUDSON_LEGACY_FREE
|
||||||
|
FchParams_reset->LegacyFree = 1;
|
||||||
|
#endif
|
||||||
} else if (FchParams->StdHeader->Func == AMD_INIT_ENV) {
|
} else if (FchParams->StdHeader->Func == AMD_INIT_ENV) {
|
||||||
FCH_DATA_BLOCK *FchParams_env = (FCH_DATA_BLOCK *)FchData;
|
FCH_DATA_BLOCK *FchParams_env = (FCH_DATA_BLOCK *)FchData;
|
||||||
printk(BIOS_DEBUG, "Fch OEM config in INIT ENV ");
|
printk(BIOS_DEBUG, "Fch OEM config in INIT ENV ");
|
||||||
|
|
|
@ -104,4 +104,8 @@ config WARNINGS_ARE_ERRORS
|
||||||
bool
|
bool
|
||||||
default n
|
default n
|
||||||
|
|
||||||
|
config HUDSON_LEGACY_FREE
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
|
||||||
endif # BOARD_AMD_PARMER
|
endif # BOARD_AMD_PARMER
|
||||||
|
|
|
@ -717,9 +717,12 @@ AGESA_STATUS Fch_Oem_config(UINT32 Func, UINT32 FchData, VOID *ConfigPtr)
|
||||||
FCH_RESET_DATA_BLOCK *FchParams = (FCH_RESET_DATA_BLOCK *)FchData;
|
FCH_RESET_DATA_BLOCK *FchParams = (FCH_RESET_DATA_BLOCK *)FchData;
|
||||||
|
|
||||||
if (FchParams->StdHeader->Func == AMD_INIT_RESET) {
|
if (FchParams->StdHeader->Func == AMD_INIT_RESET) {
|
||||||
//FCH_RESET_DATA_BLOCK *FchParams_reset = (FCH_RESET_DATA_BLOCK *) FchData;
|
FCH_RESET_DATA_BLOCK *FchParams_reset = (FCH_RESET_DATA_BLOCK *) FchData;
|
||||||
printk(BIOS_DEBUG, "Fch OEM config in INIT RESET ");
|
printk(BIOS_DEBUG, "Fch OEM config in INIT RESET ");
|
||||||
//FchParams_reset->EcChannel0 = TRUE; /* logical devicd 3 */
|
//FchParams_reset->EcChannel0 = TRUE; /* logical devicd 3 */
|
||||||
|
#if CONFIG_HUDSON_LEGACY_FREE
|
||||||
|
FchParams_reset->LegacyFree = 1;
|
||||||
|
#endif
|
||||||
} else if (FchParams->StdHeader->Func == AMD_INIT_ENV) {
|
} else if (FchParams->StdHeader->Func == AMD_INIT_ENV) {
|
||||||
FCH_DATA_BLOCK *FchParams_env = (FCH_DATA_BLOCK *)FchData;
|
FCH_DATA_BLOCK *FchParams_env = (FCH_DATA_BLOCK *)FchData;
|
||||||
printk(BIOS_DEBUG, "Fch OEM config in INIT ENV ");
|
printk(BIOS_DEBUG, "Fch OEM config in INIT ENV ");
|
||||||
|
|
|
@ -105,4 +105,8 @@ config WARNINGS_ARE_ERRORS
|
||||||
bool
|
bool
|
||||||
default n
|
default n
|
||||||
|
|
||||||
|
config HUDSON_LEGACY_FREE
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
|
||||||
endif # BOARD_AMD_THATCHER
|
endif # BOARD_AMD_THATCHER
|
||||||
|
|
|
@ -213,3 +213,9 @@ config S3_VOLATILE_POS
|
||||||
non-volitile storage at cold boot stage.
|
non-volitile storage at cold boot stage.
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
config HUDSON_LEGACY_FREE
|
||||||
|
bool "System is legacy free"
|
||||||
|
help
|
||||||
|
Select y if there is no keyboard controller in the system.
|
||||||
|
This sets variables in AGESA and ACPI.
|
||||||
|
|
|
@ -28,7 +28,11 @@
|
||||||
#include <device/device.h>
|
#include <device/device.h>
|
||||||
#include "hudson.h"
|
#include "hudson.h"
|
||||||
|
|
||||||
#define FADT_BOOT_ARCH (ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042)
|
#if CONFIG_HUDSON_LEGACY_FREE
|
||||||
|
#define FADT_BOOT_ARCH ACPI_FADT_LEGACY_FREE
|
||||||
|
#else
|
||||||
|
#define FADT_BOOT_ARCH (ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef FADT_PM_PROFILE
|
#ifndef FADT_PM_PROFILE
|
||||||
#define FADT_PM_PROFILE PM_UNSPECIFIED
|
#define FADT_PM_PROFILE PM_UNSPECIFIED
|
||||||
|
@ -86,7 +90,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
* index 60-6B to decode ACPI I/O address.
|
* index 60-6B to decode ACPI I/O address.
|
||||||
* AcpiSmiEn & SmiCmdEn*/
|
* AcpiSmiEn & SmiCmdEn*/
|
||||||
/* RTC_En_En, TMR_En_En, GBL_EN_EN */
|
/* RTC_En_En, TMR_En_En, GBL_EN_EN */
|
||||||
outl(0x1, ACPI_PM1_CNT_BLK); /* set SCI_EN */
|
outl(0x1, ACPI_PM1_CNT_BLK); /* set SCI_EN */
|
||||||
fadt->pm1a_evt_blk = ACPI_PM_EVT_BLK;
|
fadt->pm1a_evt_blk = ACPI_PM_EVT_BLK;
|
||||||
fadt->pm1b_evt_blk = 0x0000;
|
fadt->pm1b_evt_blk = 0x0000;
|
||||||
fadt->pm1a_cnt_blk = ACPI_PM1_CNT_BLK;
|
fadt->pm1a_cnt_blk = ACPI_PM1_CNT_BLK;
|
||||||
|
|
Loading…
Reference in New Issue