lib: Introduce early power off support Kconfig option

This commit introduces the `HAVE_EARLY_POWEROFF_SUPPORT` Kconfig option
and the `platform_do_early_poweroff()` API.

The Kconfig option enables platform-specific early power off support,
which is often required on Intel platforms. The corresponding API allows
platforms to implement the necessary hardware operations for early power
off, typically before memory initialization.

BUG=b:339673254
TEST=Able to build and boot google/brox.

Change-Id: I05b9882e100825a4fb733163a65f820c8c943361
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86417
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Subrata Banik 2025-02-14 09:37:09 +00:00
commit ae0adb7c16
2 changed files with 31 additions and 0 deletions

View file

@ -41,4 +41,19 @@ __noreturn void board_reset(void);
*/
void do_board_reset(void);
/*
* Performs platform-specific actions for early power off.
*
* This function handles the necessary steps to initiate an early power off
* sequence. This might involve configuring specific hardware registers,
* sending commands to power management controllers, or performing other
* platform-specific operations. It is crucial that this
* function is implemented correctly to ensure a clean and controlled shutdown.
*
* Note: Issuing power off early before memory initialization is not supported use case on
* Intel chipset, therefore, it might need a special platform specific handing
* to power-off the platform early.
*/
void platform_do_early_poweroff(void);
#endif

View file

@ -159,3 +159,19 @@ config PROBE_RAM
config HAVE_CUSTOM_BMP_LOGO
def_bool n
depends on BMP_LOGO
config HAVE_EARLY_POWEROFF_SUPPORT
bool
help
Enable platform-specific early power off support.
This option should be selected if the platform requires special handling
to power off the system before memory initialization. This is often
necessary on Intel platforms, as directly powering off before memory
initialization is typically not supported by the chipset.
Selecting this option indicates that the platform implements the
`platform_do_early_poweroff()` function, which performs the
necessary hardware operations to initiate an early power off sequence.
This might involve configuring hardware registers, sending commands to
power management controllers, or other platform-specific operations.