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