7846 loader: UEFI variable support development

Review Request #392 — Created March 7, 2017 and submitted — Latest diff uploaded

tsoome
illumos-gate
7846
dfd2cbe...
general

This update is quite complex list of changes and the whole work is still very much open for improvement.

The problem the UEFI variable support is posing is that UEFI variables only have set GUID and name, the actual content is not typed and can contain literally any data, out of which, only variables tagged with "global" GUID, have documented values.

From operations point, eventually we like to see three operations - to see the value, to set the variable/value and to unset the variable. Since the work on variable support has been going on for some time, part of this collection is about collecting the bits to one place and cleaning up the platform specific bits from ficl tree, and providing the forth words via linker sets instead.

Since at the current state the result is entirely informational and does not affect the loading/booting, and we want to get the source tree to the similar state as the FreeBSD tree is.

Also note that there will be more and larger related updates, as the current EFI support headers are quite old and need to get updated to reflect more recent features in UEFI, to bring in v2.0+ headers and to make it possible to build not only the efi loader, but also the user space and kernel bits to access UEFI Runtime Services. However, the related work is still very much in process and is not yet even commited in FreeBSD source tree.

https://svnweb.freebsd.org/base?view=revision&revision=r300081
https://svnweb.freebsd.org/base?view=revision&revision=r300117
https://svnweb.freebsd.org/base?view=revision&revision=r300216
https://svnweb.freebsd.org/base?view=revision&revision=r300328
https://svnweb.freebsd.org/base?view=revision&revision=r300329
https://svnweb.freebsd.org/base?view=revision&revision=r300330
https://svnweb.freebsd.org/base?view=revision&revision=r300634
https://svnweb.freebsd.org/base?view=revision&revision=r306504
https://svnweb.freebsd.org/base?view=revision&revision=r307324
https://svnweb.freebsd.org/base?view=revision&revision=r313042

Implement named uuid values to ease browsing the variables and other information about EFI. Also implement some most frequent representation of the variable value printouts.

efi-show output inspection..

gate update build and install/boot on BIOS system (as at this stage we can not boot UEFI).

Loading...