Re: [PATCH v2] efi: Introduce EFI bootloader control driver

From: Stanacar, Stefan
Date: Thu Mar 24 2016 - 12:16:17 EST

On Thu, 2016-03-24 at 14:47 +0000, Matt Fleming wrote:
> (Sorry for the delay)
> On Fri, 18 Mar, at 07:18:17PM, Stanacar, Stefan wrote:
> >
> >
> > Hi Matt,
> >
> > It is possible, but that means modifying those userspace apps :)
> > There are reboot implementations that do "reboot <reason>", such as
> > Android's reboot command [1] and Upstart's reboot replacement [2],
> > which
> > pass the reason as an argument to the reboot syscall.Â
> > Probably your first question will be - "Why don't you modify those
> > apps?"
> Your guess is correct ;)
> >
> > Well, I don't see platform-agnostic way how those could be
> > modified to pass the reason to the bootloader, regardless of
> > platform or
> > bootloader.
> This is true. But then again, what you're proposing isn't boot loader
> or platform agnostic anyway. Yes it's transparent to both the app and
> boot loader, but it's only going to work on EFI platforms running
> gummiboot.

Yup, that's true. It's going to work only on EFI platforms. The
bootloader actually doesn't matter (any efi bootloader should work) as
long as it reads the reason and does what's supposed to do with it (boot
in recovery, etc)

> And because of that, if this is going to be merged upstream I think
> something like drivers/power/reset/ would be a more appropriate place,
> or drivers/platform/x86.

Agreed. It seems that drivers/power/reset is preferred by ARM boards:

> If this does get merged, please rework the patch to use the efivar API
> instead of accessing efi.set_variable() directly. We've also got a
> bunch of ucs2 string functions in lib/ucs2_string.c that you could


> use. In fact, this version of the driver I found on the net is much
> more like what I had in mind,
> Â
> ivers/external_drivers/drivers/platform/x86/reboot_target_uefi.c

Ok, that's funny somehow... I wouldn't be surprised if I'd find 3 more
variations of the same driver in different vendor trees :(.
I'll ping the author of the patch, thanks!