On 7/22/21 9:44 AM, Ni, Ray wrote:
> Cheng-Chieh,
> Thanks for the detailed explanation in doc https://docs.google.com/document/d/1mU6ICHTh0ot8U45uuRENKOGI8cVzizdyWHGYHpEguVg/edit#heading=h.xzptrog8pyxf .
>
> My original thought was LinuxBoot is a payload that aims to boot OS.
> But the idea of chaining UefiPayload producing UEFI services is very brilliant.
It can be and it is. The main usage of LinuxBoot is to load/boot another
Linux using the kexec mechanism. But in order to be able to boot
Windows, ESXI, ... a UEFI interface is required.
There have been a few proposals and POCs (like implementing UEFI
services in Linux) but UefiPayload is the most practical and easy way to
do it, for now.
> Have you considered to produce the universal payload interfaces (https://universalpayload.github.io/documentation/ ) from LinuxBoot so no LbParseLib is required?
I don't think we've looked at it. But we liked it to be a string because
it allows easy forward compatibility and not having to recreate the
structs in higher-level languages like Go.
Agree to Daniel. In the future, we can look for supporting HOB structure in u-root, but for now, we prefer to stick with the current approach.
--
Cheng-Chieh
> Thanks,
> Ray
>
>> -----Original Message-----
>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Cheng-Chieh Huang via groups.io
>> Sent: Wednesday, July 21, 2021 9:23 PM
>> To: devel@edk2.groups.io
>> Cc: Cheng-Chieh Huang <chengchieh@google.com>; Schaefer, Daniel <daniel.schaefer@hpe.com>; Trammell Hudson
>> <hudson@trmm.net>; Ma, Maurice <maurice.ma@intel.com>; Dong, Guo <guo.dong@intel.com>; You, Benjamin
>> <benjamin.you@intel.com>
>> Subject: [edk2-devel] [PATCH 0/6] UefiPayloadPkg: LinuxBoot Support in UefiPayload
>>
>> These are necessary patches to Support LinuxBoot in UefiPayload.
>> With these paches, we can boot to ESXi and Windows from a linux in QEMU.
>>
>> LinuxBoot README:
>> https://github.com/linuxboot/edk2/blob/uefipayload/UefiPayloadPkg/README.md
>>
>> PR to tianocore:
>> https://github.com/tianocore/edk2/pull/1820
>>
>> Cheng-Chieh Huang (5):
>> Add LINUXBOOT payload target
>> Use legacy timer in Linuxboot payload
>> Update maximum logic processor to 256
>> Reserve Payload config in runtime services data
>> Add DISABLE_MMX_SSE to avoid generating floating points operation
>>
>> Trammell Hudson (1):
>> LinuxBoot: use a text format for the configuration block.
>>
>> UefiPayloadPkg/UefiPayloadPkg.dsc | 29 +-
>> UefiPayloadPkg/UefiPayloadPkg.fdf | 5 +
>> .../Library/LbParseLib/LbParseLib.inf | 39 ++
>> UefiPayloadPkg/Include/Linuxboot.h | 58 +++
>> .../Library/LbParseLib/LbParseLib.c | 348 ++++++++++++++++++
>> .../PciHostBridgeLib/PciHostBridgeSupport.c | 6 +-
>> .../UefiPayloadEntry/UefiPayloadEntry.c | 2 +
>> CryptoPkg/Library/OpensslLib/openssl | 2 +-
>> 8 files changed, 480 insertions(+), 9 deletions(-)
>> create mode 100644 UefiPayloadPkg/Library/LbParseLib/LbParseLib.inf
>> create mode 100644 UefiPayloadPkg/Include/Linuxboot.h
>> create mode 100644 UefiPayloadPkg/Library/LbParseLib/LbParseLib.c
>>
>> Cc: Cheng-Chieh Huang <chengchieh@google.com>
>> Cc: Daniel Schaefer <daniel.schaefer@hpe.com>
>> Cc: Trammell Hudson <hudson@trmm.net>
>> Cc: Maurice Ma <maurice.ma@intel.com>
>> Cc: Guo Dong <guo.dong@intel.com>
>> Cc: Benjamin You <benjamin.you@intel.com>
>> --
>> 2.32.0.402.g57bb445576-goog
>>
>>
>>
>>
>>
>