Minor comments:
It would be great if adding some descriptions to the fields to make its usage 
more clear.
Maybe we need give this header file and structure a more generic name by using 
"OS" instead of "LINUX" so that bootloader could pass command line to Android 
and other OSes using same structure.
With current definition it looks bootloader could only pass 1 command line to 
payload. I am not sure if there is a case that bootloader need pass multiple 
command line so that payload could pick up one of them for OS.

+typedef struct {
+  UNIVERSAL_PAYLOAD_GENERIC_HEADER    Header;
+  UINT32                              Count;
+  CHAR8                               CommandLine[0];
+} UNIVERSAL_PAYLOAD_LINUX_COMMAND_LINE;

Thanks,
Guo

-----Original Message-----
From: Tan, Dun <[email protected]> 
Sent: Thursday, April 21, 2022 8:51 PM
To: [email protected]
Cc: Ni, Ray <[email protected]>; Dong, Guo <[email protected]>; You, Benjamin 
<[email protected]>; Rhodes, Sean <[email protected]>; Liu, Zhiguang 
<[email protected]>
Subject: [PATCH] UefiPayloadPkg: Add definition for LinuxCommandLine HOB

Add definition for UNIVERSAL_PAYLOAD_LINUX_COMMAND_LINE Hob.
This Hob is used to pass Linux Kernel command Line to Payload

Signed-off-by: Dun Tan <[email protected]>
Cc: Ray Ni <[email protected]>
Cc: Guo Dong <[email protected]>
Cc: Benjamin You <[email protected]>
Cc: Sean Rhodes <[email protected]>
Cc: Zhiguang Liu <[email protected]>
Signed-off-by: Dun Tan <[email protected]>
---
 UefiPayloadPkg/Include/Guid/LinuxCommandLine.h | 28 
++++++++++++++++++++++++++++
 UefiPayloadPkg/UefiPayloadPkg.dec              |  1 +
 2 files changed, 29 insertions(+)

diff --git a/UefiPayloadPkg/Include/Guid/LinuxCommandLine.h 
b/UefiPayloadPkg/Include/Guid/LinuxCommandLine.h
new file mode 100644
index 0000000000..0bb75238e7
--- /dev/null
+++ b/UefiPayloadPkg/Include/Guid/LinuxCommandLine.h
@@ -0,0 +1,28 @@
+/** @file
+  Define the structure for the Linux command line Hob.
+
+Copyright (c) 2022, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef LINUX_COMMAND_LINE_GUID_H_
+#define LINUX_COMMAND_LINE_GUID_H_
+
+#include <Uefi.h>
+#include <UniversalPayload/UniversalPayload.h>
+
+#pragma pack (1)
+
+typedef struct {
+  UNIVERSAL_PAYLOAD_GENERIC_HEADER    Header;
+  UINT32                              Count;
+  CHAR8                               CommandLine[0];
+} UNIVERSAL_PAYLOAD_LINUX_COMMAND_LINE;
+
+#pragma pack()
+
+#define UNIVERSAL_PAYLOAD_LINUX_COMMAND_LINE_REVISION  1
+
+extern GUID  gEdkiiLinuxCommandLineGuid; #endif
diff --git a/UefiPayloadPkg/UefiPayloadPkg.dec 
b/UefiPayloadPkg/UefiPayloadPkg.dec
index 5c1aeb8235..494ef94932 100644
--- a/UefiPayloadPkg/UefiPayloadPkg.dec
+++ b/UefiPayloadPkg/UefiPayloadPkg.dec
@@ -35,6 +35,7 @@
   gUefiAcpiBoardInfoGuid   = {0xad3d31b, 0xb3d8, 0x4506, {0xae, 0x71, 0x2e, 
0xf1, 0x10, 0x6, 0xd9, 0xf}}
   gUefiSerialPortInfoGuid  = { 0x6c6872fe, 0x56a9, 0x4403, { 0xbb, 0x98, 0x95, 
0x8d, 0x62, 0xde, 0x87, 0xf1 } }
   gLoaderMemoryMapInfoGuid = { 0xa1ff7424, 0x7a1a, 0x478e, { 0xa9, 0xe4, 0x92, 
0xf3, 0x57, 0xd1, 0x28, 0x32 } }
+  gEdkiiLinuxCommandLineGuid = {0xb5aeb34f, 0x3047, 0x4955, {0xb8, 
+ 0x80, 0xad, 0xd3, 0x6d, 0x86, 0xdc, 0x0f}}
 
   # SMM variable support
   gNvVariableInfoGuid      = { 0x7a345dca, 0xc26, 0x4f2a,  { 0xa8, 0x9a, 0x57, 
0xc0, 0x8d, 0xdd, 0x22, 0xee } }
--
2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#89208): https://edk2.groups.io/g/devel/message/89208
Mute This Topic: https://groups.io/mt/90621302/21656
Group Owner: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to