public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Guo Dong" <guo.dong@intel.com>
To: "Carsey, Jaben" <jaben.carsey@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>,
	"Ni, Ray" <ray.ni@intel.com>
Cc: "Zimmer, Vincent" <vincent.zimmer@intel.com>,
	"Ma, Maurice" <maurice.ma@intel.com>,
	"Rangarajan, Ravi P" <ravi.p.rangarajan@intel.com>,
	"Hau, Tze-ming" <tze-ming.hau@intel.com>
Subject: Re: RFC: Universal Payload Interface
Date: Wed, 28 Oct 2020 20:51:42 +0000	[thread overview]
Message-ID: <BYAPR11MB36221FCD9DA024F955620E859E170@BYAPR11MB3622.namprd11.prod.outlook.com> (raw)
In-Reply-To: <MW3PR11MB462013990F47E649EB056FFA9C170@MW3PR11MB4620.namprd11.prod.outlook.com>

[-- Attachment #1: Type: text/plain, Size: 3543 bytes --]


Hi Jaben,

I think the "Payload Image Extend Header" means the optional tables below in Payload Image Format<https://universalpayload.github.io/documentation/spec/spec.html#payload-image-format>.
These tables exist only when corresponding bit is set in Capability field.

  *   Payload Image Relocation Table
  *   Payload Image Authentication Table

Thanks,
Guo

From: Carsey, Jaben <jaben.carsey@intel.com>
Sent: Wednesday, October 28, 2020 1:41 PM
To: devel@edk2.groups.io; Ni, Ray <ray.ni@intel.com>
Cc: Zimmer, Vincent <vincent.zimmer@intel.com>; Ma, Maurice <maurice.ma@intel.com>; Rangarajan, Ravi P <ravi.p.rangarajan@intel.com>; Dong, Guo <guo.dong@intel.com>; Hau, Tze-ming <tze-ming.hau@intel.com>
Subject: RE: RFC: Universal Payload Interface

Ray

Is there any more information on "Payload Image Extend Header"? This is mentioned, but I don't see detailed information.

-Jaben

From: devel@edk2.groups.io<mailto:devel@edk2.groups.io> <devel@edk2.groups.io<mailto:devel@edk2.groups.io>> On Behalf Of Ni, Ray
Sent: Thursday, October 22, 2020 6:18 PM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>
Cc: Zimmer, Vincent <vincent.zimmer@intel.com<mailto:vincent.zimmer@intel.com>>; Ma, Maurice <maurice.ma@intel.com<mailto:maurice.ma@intel.com>>; Rangarajan, Ravi P <ravi.p.rangarajan@intel.com<mailto:ravi.p.rangarajan@intel.com>>; Dong, Guo <guo.dong@intel.com<mailto:guo.dong@intel.com>>; Hau, Tze-ming <tze-ming.hau@intel.com<mailto:tze-ming.hau@intel.com>>; Ni, Ray <ray.ni@intel.com<mailto:ray.ni@intel.com>>
Subject: [edk2-devel] RFC: Universal Payload Interface

With the fact that there are many different firmware implementations, we tried to decouple today's monolithic UEFI firmware binary to two independent components: bootloader and payload.

Basically, bootloader initializes the silicon hardware and payload prepares the OS required data and services. Bootloader passes control to payload.

https://universalpayload.github.io/documentation/spec/spec.html defines the universal interface between bootloader and payload. So that different bootloaders can work with different payloads, initializing different hardware and booting different OSes.
The interface document is in very draft phase. Any feedback is welcome.

We also developed the POC code to demonstrate the idea. Please use below steps to get the code that uses SBL as the bootloader and EDKII UEFI Payload as the payload. This POC is being developed for QEMU Q35 virtual machine.

  1.  Run "git clone https://github.com/universalpayload/tools.git payload"

This step downloads the initial tools that will setup the dev environment.

  1.  Run "py -3 clone_and_build_sbl_with_uefipayload.py" in the "payload" directory

This script downloads branched SBL (https://github.com/universalpayload/slimbootloader.git) and edk2 (https://github.com/universalpayload/edk2.git).

Then it builds the firmware binary "SlimBootloader.bin" in "codeworkspace" directory.

  1.  Boot QEMU by running "qemu-system-x86_64.exe -machine q35 -pflash  codeworkspace\SlimBootloader.bin  -serial file:test.log"

Because the code is under active development, please contact us when you cannot build or boot successfully.

Besides the SBL, we modified coreboot (https://github.com/universalpayload/coreboot.git) to let it conform to the universal interface as a bootloader.
Besides the EDK2 UEFI Payload, we created a payload (https://github.com/universalpayload/linuxpayload.git) that can boot Linux.

Thanks,
Ray



[-- Attachment #2: Type: text/html, Size: 14244 bytes --]

      reply	other threads:[~2020-10-28 20:51 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-23  1:18 RFC: Universal Payload Interface Ni, Ray
2020-10-27 14:21 ` [edk2-devel] " Laszlo Ersek
2020-10-28  3:26   ` Ni, Ray
2020-11-02 14:49     ` Laszlo Ersek
2020-10-28 20:41 ` Carsey, Jaben
2020-10-28 20:51   ` Guo Dong [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BYAPR11MB36221FCD9DA024F955620E859E170@BYAPR11MB3622.namprd11.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox