• Matt Fleming's avatar
    efi/reboot: Allow powering off machines using EFI · f6c2e46d
    Matt Fleming authored
    commit 0c5ed61a upstream.
    
    Not only can EfiResetSystem() be used to reboot, it can also be used to
    power down machines.
    
    By and large, this functionality doesn't work very well across the range
    of EFI machines in the wild, so it should definitely only be used as a
    last resort. In an ideal world, this wouldn't be needed at all.
    
    Unfortunately, we're starting to see machines where EFI is the *only*
    reliable way to power down, and nothing else, not PCI, not ACPI, works.
    
    efi_poweroff_required() should be implemented on a per-architecture
    basis, since exactly when we should be using EFI runtime services is a
    platform-specific decision. There's no analogue for reboot because each
    architecture handles reboot very differently - the x86 code in
    particular is pretty complex.
    
    Patches to enable this for specific classes of hardware will be
    submitted separately.
    Tested-by: default avatarMark Salter <msalter@redhat.com>
    Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
    f6c2e46d
reboot.c 904 Bytes