sysreset: Add -c flag for explicit cold reset

Add support for reset -c flag to explicitly request cold reset.
This provides symmetry with -w (warm) and -u (firmware UI) flags.

For EFI apps, this performs EFI_RESET_COLD which does a full system
reboot without going to firmware setup interface.

Series-to: concept
Series-cc: heinrich
Cover-letter:
efi: Improve integration of the app with a Shim environment
This series collects together various small fixes and improvements which
make it easier to use the U-Boot EFI app in a bootflow which includes
Shim:

- 'Reset' back to the caller (e.g. EDK2)
- Machine reset using cold and warm reset
- Reset and enter the firmware UI
- Shim command now supports persistent debug
- Bootmenu shows the real media for each bootflow rather than just 'efi'
END

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2025-08-29 08:49:32 -06:00
parent 96adc477be
commit f74db7258c
2 changed files with 5 additions and 1 deletions

View File

@@ -254,6 +254,10 @@ static int efi_sysreset_request(struct udevice *dev, enum sysreset_t type)
struct efi_priv *priv = efi_get_priv();
switch (type) {
case SYSRESET_COLD:
/* Perform a cold reset */
priv->run->reset_system(EFI_RESET_COLD, EFI_SUCCESS, 0, NULL);
break;
case SYSRESET_TO_FIRMWARE_UI: {
efi_status_t ret;
u64 osind;