[PATCH v3 2/2] MdePkg: add definition of LINUX_EFI_INITRD_MEDIA_GUID

Jeff Brasen

Add LINUX_EFI_INITRD_MEDIA_GUID to our collection of GUID definitions,
it can be used in a media device path to specify a Linux style initrd
that can be loaded by the OS using the LoadFile2 protocol.

Move these defines to MdePkg from OvmfPkg as these are relevant to
non-OVMF targets as well.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2564
Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Acked-by: Ard Biesheuvel <mailto:ardb@kernel.org>
MdePkg/MdePkg.dec | 5 ++++
MdePkg/Include/Guid/LinuxEfiInitrdMedia.h | 31 +++++++++++++++++++++++
2 files changed, 36 insertions(+)
create mode 100644 MdePkg/Include/Guid/LinuxEfiInitrdMedia.h

diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
index c5319fdd71ca..a28a2daaffa8 100644
--- a/MdePkg/MdePkg.dec
+++ b/MdePkg/MdePkg.dec
@@ -818,6 +818,11 @@ [Guids]
gTianoCustomDecompressGuid = { 0xA31280AD, 0x481E, 0x41B6, { 0x95, 0xE8, 0x12, 0x7F, 0x4C, 0x98, 0x47, 0x79 }}

+ #
+ # GUID used to provide initrd to linux via LoadFile2 protocol
+ #
+ gLinuxEfiInitrdMediaGuid = {0x5568e427, 0x68fc, 0x4f3d, {0xac, 0x74, 0xca, 0x55, 0x52, 0x31, 0xcc, 0x68}}
[Guids.IA32, Guids.X64]
## Include/Guid/Cper.h
gEfiIa32X64ErrorTypeCacheCheckGuid = { 0xA55701F5, 0xE3EF, 0x43de, { 0xAC, 0x72, 0x24, 0x9B, 0x57, 0x3F, 0xAD, 0x2C }}
diff --git a/MdePkg/Include/Guid/LinuxEfiInitrdMedia.h b/MdePkg/Include/Guid/LinuxEfiInitrdMedia.h
new file mode 100644
index 000000000000..0e7db8bd8140
--- /dev/null
+++ b/MdePkg/Include/Guid/LinuxEfiInitrdMedia.h
@@ -0,0 +1,31 @@
+/** @file
+ GUID definition for the Linux Initrd media device path
+ Linux distro boot generally relies on an initial ramdisk (initrd)
+ which is provided by the loader, and which contains additional kernel
+ modules (for storage and network, for instance), and the initial user
+ space startup code, i.e., the code which brings up the user space side
+ of the entire OS.
+ In order to provide a standard method to locate this file,
+ the GUID defined in this file is used to describe the device path
+ for a LoadFile2 Protocol instance that is responsible for loading the initrd file.
+ The kernel EFI Stub will locate and use this instance to load the initrd,
+ therefore the firmware/loader should install an instance of this to load the
+ relevant initrd.
+ Copyright (c) 2020, Arm, Ltd. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+ {0x5568e427, 0x68fc, 0x4f3d, {0xac, 0x74, 0xca, 0x55, 0x52, 0x31, 0xcc, 0x68}}
+extern EFI_GUID gLinuxEfiInitrdMediaGuid;