audk/OvmfPkg/Library
James Bottomley b261a30c90 OvmfPkg/AmdSev: add Grub Firmware Volume Package
This is used to package up the grub bootloader into a firmware volume
where it can be executed as a shell like the UEFI Shell.  Grub itself
is built as a minimal entity into a Fv and then added as a boot
option.  By default the UEFI shell isn't built but for debugging
purposes it can be enabled and will then be presented as a boot option
(This should never be allowed for secure boot in an external data
centre but may be useful for local debugging).  Finally all other boot
options except grub and possibly the shell are stripped and the boot
timeout forced to 0 so the system will not enter a setup menu and will
only boot to grub.  This is done by copying the
Library/PlatformBootManagerLib into Library/PlatformBootManagerLibGrub
and then customizing it.

Boot failure is fatal to try to prevent secret theft.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3077
Signed-off-by: James Bottomley <jejb@linux.ibm.com>
Message-Id: <20201130202819.3910-4-jejb@linux.ibm.com>
Acked-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
[lersek@redhat.com: replace local variable initialization with assignment]
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
[lersek@redhat.com: squash 'OvmfPkg: add "gGrubFileGuid=Grub" to
 GuidCheck.IgnoreDuplicates', reviewed stand-alone by Phil (msgid
 <e6eae551-8563-ccfb-5547-7a97da6d46e5@redhat.com>) and Ard (msgid
 <10aeda37-def6-d9a4-6e02-4c66c1492f57@arm.com>)]
2020-12-14 19:56:18 +00:00
..
AcpiTimerLib OvmfPkg: Add bhyve support into AcpiTimerLib 2020-04-30 13:46:11 +00:00
BaseMemEncryptSevLib OvmfPkg/MemEncryptSevLib: Add an SEV-ES guest indicator function 2020-08-17 02:46:39 +00:00
BasePciCapLib OvmfPkg/BasePciCapLib: suppress invalid "nullptr deref" warning 2019-04-18 16:06:04 +02:00
BasePciCapPciSegmentLib OvmfPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:19 -07:00
BhyveFwCtlLib OvmfPkg: Fix style of BhyveFwCtlLib.inf 2020-11-30 17:49:39 +00:00
DxePciLibI440FxQ35 OvmfPkg/Qemu: Fix various typos 2020-02-10 22:30:07 +00:00
EmuVariableFvbLib OvmfPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:19 -07:00
GenericQemuLoadImageLib OvmfPkg/GenericQemuLoadImageLib: log "Not Found" at INFO level 2020-06-10 07:55:55 +00:00
LoadLinuxLib OvmfPkg: replace old EFI_D_ debug levels with new DEBUG_ ones 2020-04-30 13:01:16 +00:00
LockBoxLib OvmfPkg: strip trailing whitespace 2019-10-04 11:18:32 +01:00
NvVarsFileLib OvmfPkg: replace old EFI_D_ debug levels with new DEBUG_ ones 2020-04-30 13:01:16 +00:00
PciHostBridgeLib OvmfPkg: replace old EFI_D_ debug levels with new DEBUG_ ones 2020-04-30 13:01:16 +00:00
PlatformBmPrintScLib OvmfPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:19 -07:00
PlatformBootManagerLib OvmfPkg: replace old EFI_D_ debug levels with new DEBUG_ ones 2020-04-30 13:01:16 +00:00
PlatformBootManagerLibBhyve OvmfPkg/Bhyve: Add support for the AMD host bridge 2020-11-27 16:48:47 +00:00
PlatformBootManagerLibGrub OvmfPkg/AmdSev: add Grub Firmware Volume Package 2020-12-14 19:56:18 +00:00
PlatformDebugLibIoPort OvmfPkg/PlatformDebugLibIoPort: Introduce a Nocheck variant 2020-04-28 21:12:01 +00:00
PlatformFvbLibNull OvmfPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:19 -07:00
PlatformHasIoMmuLib OvmfPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:19 -07:00
PlatformSecureLib OvmfPkg: strip trailing whitespace 2019-10-04 11:18:32 +01:00
PxeBcPcdProducerLib OvmfPkg: control PXEv4 / PXEv6 boot support from the QEMU command line 2020-04-28 22:37:35 +00:00
QemuBootOrderLib OvmfPkg: replace old EFI_D_ debug levels with new DEBUG_ ones 2020-04-30 13:01:16 +00:00
QemuFwCfgLib OvmfPkg: Add QemuFwCfgLibNull 2020-05-05 16:57:57 +00:00
QemuFwCfgS3Lib OvmfPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:19 -07:00
QemuFwCfgSimpleParserLib OvmfPkg: introduce QemuFwCfgSimpleParserLib 2020-04-28 22:37:35 +00:00
ResetSystemLib OvmfPkg: Add BaseResetSystemLibBhyve 2020-05-05 19:40:40 +00:00
SerializeVariablesLib OvmfPkg: replace old EFI_D_ debug levels with new DEBUG_ ones 2020-04-30 13:01:16 +00:00
SmbiosVersionLib OvmfPkg: replace old EFI_D_ debug levels with new DEBUG_ ones 2020-04-30 13:01:16 +00:00
SmmCpuFeaturesLib OvmfPkg/SEV: don't manage the lifecycle of the SMRAM at the default SMBASE 2020-02-05 12:59:32 +00:00
SmmCpuPlatformHookLibQemu OvmfPkg: enable SMM Monarch Election in PiSmmCpuDxeSmm 2020-03-04 12:22:07 +00:00
Tcg2PhysicalPresenceLibNull OvmfPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:19 -07:00
Tcg2PhysicalPresenceLibQemu OvmfPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:19 -07:00
TlsAuthConfigLib OvmfPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:19 -07:00
UefiPciCapPciIoLib OvmfPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:19 -07:00
VirtioLib OvmfPkg/Virtio: Fix few typos 2020-02-10 22:30:07 +00:00
VirtioMmioDeviceLib OvmfPkg: drop redundant VendorID check in VirtioMmioDeviceLib 2020-09-17 12:01:11 +00:00
VmgExitLib UefiCpuPkg, OvmfPkg: Disable interrupts when using the GHCB 2020-11-10 19:07:55 +00:00
X86QemuLoadImageLib OvmfPkg/X86QemuLoadImageLib: handle EFI_ACCESS_DENIED from LoadImage() 2020-06-09 20:19:04 +00:00
XenConsoleSerialPortLib OvmfPkg/Xen: Fix various typos 2020-02-10 22:30:07 +00:00
XenHypercallLib OvmfPkg: replace old EFI_D_ debug levels with new DEBUG_ ones 2020-04-30 13:01:16 +00:00
XenIoMmioLib OvmfPkg: replace old EFI_D_ debug levels with new DEBUG_ ones 2020-04-30 13:01:16 +00:00
XenPlatformLib OvmfPkg/XenPlatformLib: Cache result for XenDetected 2019-08-21 18:03:49 +02:00
XenRealTimeClockLib OvmfPkg: Move XenRealTimeClockLib from ArmVirtPkg 2019-08-21 18:03:50 +02:00