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
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 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78024): https://edk2.groups.io/g/devel/message/78024 Mute This Topic: https://groups.io/mt/84357532/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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. Have you considered to produce the universal payload interfaces (https://universalpayload.github.io/documentation/) from LinuxBoot so no LbParseLib is required? 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 > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78048): https://edk2.groups.io/g/devel/message/78048 Mute This Topic: https://groups.io/mt/84357532/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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. > 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 >> >> >> >> >> > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78049): https://edk2.groups.io/g/devel/message/78049 Mute This Topic: https://groups.io/mt/84357532/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
On Thu, Jul 22, 2021 at 9:59 AM Daniel Schaefer <daniel.schaefer@hpe.com> wrote: > 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 > >> > >> > >> > >> > >> > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78053): https://edk2.groups.io/g/devel/message/78053 Mute This Topic: https://groups.io/mt/84357532/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
This is new feature. Can you submit one BZ (https://bugzilla.tianocore.org/ ) for it? Thanks Liming > -----邮件原件----- > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Cheng-Chieh > Huang via groups.io > 发送时间: 2021年7月21日 21:23 > 收件人: devel@edk2.groups.io > 抄送: Cheng-Chieh Huang <chengchieh@google.com>; Daniel Schaefer > <daniel.schaefer@hpe.com>; Trammell Hudson <hudson@trmm.net>; > Maurice Ma <maurice.ma@intel.com>; Guo Dong <guo.dong@intel.com>; > Benjamin You <benjamin.you@intel.com> > 主题: [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/READM > E.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 > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78047): https://edk2.groups.io/g/devel/message/78047 Mute This Topic: https://groups.io/mt/84370828/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
Bug created: https://bugzilla.tianocore.org/show_bug.cgi?id=3505 On Thu, Jul 22, 2021 at 9:29 AM gaoliming <gaoliming@byosoft.com.cn> wrote: > This is new feature. Can you submit one BZ ( > https://bugzilla.tianocore.org/ ) for it? > > Thanks > Liming > > -----邮件原件----- > > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Cheng-Chieh > > Huang via groups.io > > 发送时间: 2021年7月21日 21:23 > > 收件人: devel@edk2.groups.io > > 抄送: Cheng-Chieh Huang <chengchieh@google.com>; Daniel Schaefer > > <daniel.schaefer@hpe.com>; Trammell Hudson <hudson@trmm.net>; > > Maurice Ma <maurice.ma@intel.com>; Guo Dong <guo.dong@intel.com>; > > Benjamin You <benjamin.you@intel.com> > > 主题: [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/READM > > E.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 > > > > > > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78054): https://edk2.groups.io/g/devel/message/78054 Mute This Topic: https://groups.io/mt/84372944/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2024 Red Hat, Inc.