From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.groups.io with SMTP id smtpd.web08.14365.1603808495005872253 for ; Tue, 27 Oct 2020 07:21:35 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=BiI7UUc1; spf=pass (domain: redhat.com, ip: 216.205.24.124, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1603808494; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WKQUs4Cux38MKrCOFutsLoUzAwHnWqXvi2Uvect0DDA=; b=BiI7UUc1k490AaJcITyIx92Y1GoPDIZnrXbWiCTJ31CooS6IrlDXjvV7WqnzV3Yc3R8oz/ Pb6+sUfAmxTMcv1JYWLzlZACeWs89VcYq/Kb2G6/i2lNvrpR/wwJSnDzPQo86kaLAsEwku TS8x7GV4+qTvGtopr/+ZYLGluvnUn5M= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-413-rpsxv-SROfGzKniUP0vYpw-1; Tue, 27 Oct 2020 10:21:29 -0400 X-MC-Unique: rpsxv-SROfGzKniUP0vYpw-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 238B6101962E; Tue, 27 Oct 2020 14:21:28 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-114-132.ams2.redhat.com [10.36.114.132]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8FB7950B44; Tue, 27 Oct 2020 14:21:26 +0000 (UTC) Subject: Re: [edk2-devel] RFC: Universal Payload Interface To: devel@edk2.groups.io, ray.ni@intel.com Cc: "Zimmer, Vincent" , "Ma, Maurice" , "Rangarajan, Ravi P" , "Dong, Guo" , "Hau, Tze-ming" References: From: "Laszlo Ersek" Message-ID: Date: Tue, 27 Oct 2020 15:21:25 +0100 MIME-Version: 1.0 In-Reply-To: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=lersek@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: 7bit On 10/23/20 03:18, Ni, Ray wrote: > 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. (1) "Bootloader" is an extremely loaded word. Regardless of everything else in this topic, I strongly suggest picking a different name. We already have "Platform Init" or "PI"; maybe use "Silicon Init" or "SI"? (2) What is the *exact* use case (or workflow) that the proposed interface enables, or improves? What groups of people (what roles) are supposed to benefit from the proposed interface? Thanks Laszlo > > 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 > > > > > > >