soc/amd/piasso/fch: use common pm_set_power_failure_state functionality

The functionality to restore the previous power state after power was
lost that could previously be enabled by selecting
MAINBOARD_POWER_RESTORE in the mainboard's Kconfig can now be achieved
by selecting POWER_STATE_PREVIOUS_AFTER_FAILURE in the mainboard's
Kconfig instead.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Iab9578ebea89651dc2389bf6ca93ca3f3507eb47
Reviewed-on: https://review.coreboot.org/c/coreboot/+/52302
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
This commit is contained in:
Felix Held 2021-04-13 19:36:53 +02:00
parent 43cd1c0bbe
commit bbb8c042e4
4 changed files with 2 additions and 17 deletions

View File

@ -331,14 +331,6 @@ config DISABLE_KEYBOARD_RESET_PIN
functionality isn't disabled, configuring it as an output and driving functionality isn't disabled, configuring it as an output and driving
it as 0 will cause a reset. it as 0 will cause a reset.
config MAINBOARD_POWER_RESTORE
def_bool n
help
This option determines what state to go to once power is restored
after having been lost in S0. Select this option to automatically
return to S0. Otherwise the system will remain in S5 once power
is restored.
config FSP_TEMP_RAM_SIZE config FSP_TEMP_RAM_SIZE
hex hex
default 0x40000 default 0x40000

View File

@ -4,6 +4,7 @@
#include <amdblocks/espi.h> #include <amdblocks/espi.h>
#include <amdblocks/i2c.h> #include <amdblocks/i2c.h>
#include <amdblocks/lpc.h> #include <amdblocks/lpc.h>
#include <amdblocks/pmlib.h>
#include <amdblocks/smbus.h> #include <amdblocks/smbus.h>
#include <amdblocks/spi.h> #include <amdblocks/spi.h>
#include <console/console.h> #include <console/console.h>
@ -71,6 +72,7 @@ void fch_pre_init(void)
/* After console init */ /* After console init */
void fch_early_init(void) void fch_early_init(void)
{ {
pm_set_power_failure_state();
fch_print_pmxc0_status(); fch_print_pmxc0_status();
i2c_soc_early_init(); i2c_soc_early_init();

View File

@ -239,11 +239,6 @@ void fch_init(void *chip_info)
void fch_final(void *chip_info) void fch_final(void *chip_info)
{ {
uint8_t restored_power = PM_S5_AT_POWER_RECOVERY;
if (CONFIG(MAINBOARD_POWER_RESTORE))
restored_power = PM_RESTORE_S0_IF_PREV_S0;
pm_write8(PM_RTC_SHADOW, restored_power);
} }
/* /*

View File

@ -32,10 +32,6 @@
#define PM_SERIRQ_MODE BIT(6) #define PM_SERIRQ_MODE BIT(6)
#define PM_SERIRQ_ENABLE BIT(7) #define PM_SERIRQ_ENABLE BIT(7)
#define PM_RTC_SHADOW 0x5b /* state when power resumes */
#define PM_S5_AT_POWER_RECOVERY 0x04 /* S5 */
#define PM_RESTORE_S0_IF_PREV_S0 0x07 /* S0 if previously at S0 */
#define PM_EVT_BLK 0x60 #define PM_EVT_BLK 0x60
#define WAK_STS BIT(15) /*AcpiPmEvtBlkx00 Pm1Status */ #define WAK_STS BIT(15) /*AcpiPmEvtBlkx00 Pm1Status */
#define PCIEXPWAK_STS BIT(14) #define PCIEXPWAK_STS BIT(14)