diff options
author | Tom Rini <trini@konsulko.com> | 2019-03-12 10:56:02 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-03-12 10:56:02 -0400 |
commit | 116a3a1ae085753e04b62c37a0f11f80cab9d730 (patch) | |
tree | 4cec43fd7036c42a5fd31b434077edc57eb19e30 /drivers | |
parent | 2e8092d94f40a5692baf3ec768ce3216a7bf032a (diff) | |
parent | 3eeb09b4c06fd6eb5c724b21cd2ac538fc015a31 (diff) | |
download | u-boot-116a3a1ae085753e04b62c37a0f11f80cab9d730.tar.gz u-boot-116a3a1ae085753e04b62c37a0f11f80cab9d730.tar.xz u-boot-116a3a1ae085753e04b62c37a0f11f80cab9d730.zip |
Merge tag 'efi-2019-04-rc4-2' of https://github.com/xypron2/u-boot
Pull request for UEFI system for v2019.04-rc4
Fix an error with the serial communication on boards with a very small
UART buffer which leads to a stalled system.
Provide an X86 reset driver for the UEFI runtime.
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/sysreset/sysreset_x86.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/drivers/sysreset/sysreset_x86.c b/drivers/sysreset/sysreset_x86.c index 20b958cfd4..009f376602 100644 --- a/drivers/sysreset/sysreset_x86.c +++ b/drivers/sysreset/sysreset_x86.c @@ -10,8 +10,10 @@ #include <sysreset.h> #include <asm/io.h> #include <asm/processor.h> +#include <efi_loader.h> -static int x86_sysreset_request(struct udevice *dev, enum sysreset_t type) +static __efi_runtime int x86_sysreset_request(struct udevice *dev, + enum sysreset_t type) { int value; @@ -31,6 +33,25 @@ static int x86_sysreset_request(struct udevice *dev, enum sysreset_t type) return -EINPROGRESS; } +#ifdef CONFIG_EFI_LOADER +void __efi_runtime EFIAPI efi_reset_system( + enum efi_reset_type reset_type, + efi_status_t reset_status, + unsigned long data_size, void *reset_data) +{ + if (reset_type == EFI_RESET_COLD || + reset_type == EFI_RESET_PLATFORM_SPECIFIC) + x86_sysreset_request(NULL, SYSRESET_COLD); + else if (reset_type == EFI_RESET_WARM) + x86_sysreset_request(NULL, SYSRESET_WARM); + + /* TODO EFI_RESET_SHUTDOWN */ + + while (1) { } +} +#endif + + static const struct udevice_id x86_sysreset_ids[] = { { .compatible = "x86,reset" }, { } |