From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web10.2397.1603415906126066335 for ; Thu, 22 Oct 2020 18:18:26 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=GmZrj38J; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: ray.ni@intel.com) IronPort-SDR: MNNesdhfZuORoy/cVwbGlIeMACA4HiQooc8zV1CTIVo3QgI0AWXWbZaw7DQm/rTTI1HFo+lPEY Q9NFCZn/MCFg== X-IronPort-AV: E=McAfee;i="6000,8403,9782"; a="167737782" X-IronPort-AV: E=Sophos;i="5.77,404,1596524400"; d="scan'208,217";a="167737782" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Oct 2020 18:18:24 -0700 IronPort-SDR: abmi3R+LSpE83L5/efDku2fq0209gTLSP/JdlPoIhF3IIQaEviEOrFRPzB40WkcqcnAeS9CVmo 59QYUhNSc3kg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,404,1596524400"; d="scan'208,217";a="316922956" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga003.jf.intel.com with ESMTP; 22 Oct 2020 18:18:24 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 22 Oct 2020 18:18:24 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 22 Oct 2020 18:18:24 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.41) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Thu, 22 Oct 2020 18:18:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=c3Fb4Bt2QKiiCbZK0g+6+E3+OYWerxcqkHAizKnYxF8y4yjN4WwARilI6SJIUrywHwVuCjW1vUQfTjbkeWW35721cTZOpWPR+0XrkybIclfLouE68ivxytE6SJKpf77C90md3j260LTZww+fF13xpLHif8VuaW1ypbEvYSZ/keqgS1HF4XT4MRkYhIHSrlZ9IzRa3sg9qMqDecHzeCvCEl9veml9BB/w3PQCspPhXQyisSiFme5H2sH22zbWvSMMwqrH3StejuktE3whe+I8mg4bLJD1XvXtou66avEdtqdlsyxwWym2kMEe4Q+jqEdeJA+jB0mubGDsuBsGISh+ZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PtKSlVcykWGE8qH33rn5eaSOCMVjMBzipGjY84AYBXI=; b=SAS1uHeQ3ApXt8QE54mDm8D1+w6l7v98KGskxzdKhlJlD4mf5ppCaXOBbLnis2JaB9X7BZIkQ6b4FbG3kdkV/YiJLNkME1s5BrCszyQAoVJEiqCup4Cf/T6q9qRI27Adx51M6/vPwV8ILioOfPqnak+2PweAsdiRXGPT2cmOH6mWVZKWnCEnpmWyq0YGlLOEqlqfaTKfLp6JprpoYXfKqt4Df/hzht16sZ+KcixnC7EiB4r+BHvgruay224T4ujcqX7qtpvSKoH02ocCMTQ1BNsA/yhQHLeG60s8CfdK3hSdeYEH/p6QWL3RkqdUdcUjT8KcJ0msdHkv7tl9+akeFQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PtKSlVcykWGE8qH33rn5eaSOCMVjMBzipGjY84AYBXI=; b=GmZrj38Jgu/Ig77Ki5Oydymdei5wvPPsHlg0g+sDzhY4UOYkdqoEaQ9KhnaO7xuoJmRejaa/Vjct9eD5mZ5CQdV8Kpw9hqIPdt1pRfBS6SzHLSrXirowGTzYxn60Wl42aOqFFqRNsO4sY/Lx8KiCPQwH/jliV6Gp8i0GAgBfVzc= Received: from CO1PR11MB4930.namprd11.prod.outlook.com (2603:10b6:303:9b::11) by MW3PR11MB4649.namprd11.prod.outlook.com (2603:10b6:303:5b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.22; Fri, 23 Oct 2020 01:18:23 +0000 Received: from CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::9804:f9c4:d0d7:9961]) by CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::9804:f9c4:d0d7:9961%3]) with mapi id 15.20.3499.018; Fri, 23 Oct 2020 01:18:23 +0000 From: "Ni, Ray" To: "devel@edk2.groups.io" CC: "Zimmer, Vincent" , "Ma, Maurice" , "Rangarajan, Ravi P" , "Dong, Guo" , "Hau, Tze-ming" , "Ni, Ray" Subject: RFC: Universal Payload Interface Thread-Topic: RFC: Universal Payload Interface Thread-Index: Adao2l6sYj5IjEbTTh6huilOXmakLQ== Date: Fri, 23 Oct 2020 01:18:23 +0000 Message-ID: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [222.64.228.139] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 25bd6dcf-fc1d-4221-6d95-08d876f18940 x-ms-traffictypediagnostic: MW3PR11MB4649: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Odd8D6Vh4J+/okavMK/UQSD9vXSNvyYN1eMOugD3fJpyzuCsfKqtjUFNKrLigFTLRSjvxWgJ+ua/Q2guYlDOlZVlGmD8FXoj336l1TosjffQj3DNC/JmkEsZ4VyvvQsfSYK5sZeN+6NKINBnJtKqs7IJ1qYJKCSJ20Z+cr1gr6umprPDpXHCnSlrk3r2zp0mvEfoLGtsx6Ly1IlBOJwRosmcIWUfQ9HUlLOOLWN/Fnkdrcx6L9G7D0XUXYFQPwp1RRlWZm8q4t7YHQxzF7GkCSWwaZahTzlm/0dflCSjVw7L9rTbJ1+p1q1glbphmAtMNaq2LlKprem5H1bZQysVC3ZodwB9p7Rof1AhW6d4h6Oc3EwKIl9w8zFBeLx9IBiXijfoOcxhhQTPad1OY9eWyH4TXbgGXkN03xWfClhtpfZUq5ycxRG/IlR+LSX1ccjFG3O8O65bjUxIHWwoCIKnzQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4930.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(396003)(39860400002)(346002)(136003)(366004)(64756008)(55016002)(71200400001)(9686003)(6506007)(6916009)(66556008)(52536014)(966005)(21615005)(186003)(2906002)(26005)(7696005)(5660300002)(4326008)(478600001)(8676002)(107886003)(66446008)(8936002)(86362001)(54906003)(76116006)(83380400001)(33656002)(7116003)(316002)(166002)(66946007)(66476007)(460985005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: Oaynp73NLXYliFfEzZn9YW8gxwAtB4qaRqeDVKNH3HMQjuRLoRO2ox6oj4rskcTcoFV0VenInGc6s8NLTf4gmOig5d4RxyHcKKhZ9frxziiZFuuTA03ZrUAYTYh2A6b1oVFWN/5E+KFTR4NT4ldRDBbWh2nKsCg2JM8PMGjMeYy0c0Wi5KtqZVXx20P4j1/YtVnMlFPyYBEfLum+6poz97vP1MJf/44FdfUp7xmuOWZR0zO5ldAvyVfM15MwM4k2WnwRc9vCxMYHcEcFA2/VujcRoP9PDkobJMgDhDSoB+wM492L8mibNq8wxQw+6Late6NMZxC0UYh7bfADBpyxhCAc9nlcTw9eLDTXxUiZ14JyuhEz/x9OjEeTWxY2fgZJwTZ4LTK84yoCFzlHcjzQyv0Gk1bKFBPzjYHoDyUHzooM1tAQnoBtHk9GIlwb3c5mZDQgOsgYq99GxAb1xrWPkt5fvvLuurIbLVQdKTp4j1cx6RHVk0TTn+C8nvPGH49f4SRLTUMlrerTe1/lPymfRYCseT2kxnjX+XzALJLPTsJfc4kVJ2SYORp3ZPmDjBYEywHk5qtMpr+ACs6PXIq+QsF0eKeU5n3bnHPhSYpxIefXfFoWPocDoVnLIuO3teFVdgagOh+oxn2winCgeketHg== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4930.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25bd6dcf-fc1d-4221-6d95-08d876f18940 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Oct 2020 01:18:23.2402 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: gc5DbSev8UXZbhsyhc0+4a/dDNxJQ2L0NI28+rsA0hf7kGg+RQCvYdUL/BGALG4naxuUtu7qso8Tt3IugY7uCQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4649 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_CO1PR11MB4930E299B35B2E0CB4D7866F8C1A0CO1PR11MB4930namp_" --_000_CO1PR11MB4930E299B35B2E0CB4D7866F8C1A0CO1PR11MB4930namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable With the fact that there are many different firmware implementations, we tr= ied 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 boot= loaders can work with different payloads, initializing different hardware a= nd 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 st= eps 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/sli= mbootloader.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 co= deworkspace\SlimBootloader.bin -serial file:test.log" Because the code is under active development, please contact us when you ca= nnot 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/uni= versalpayload/linuxpayload.git) that can boot Linux. Thanks, Ray --_000_CO1PR11MB4930E299B35B2E0CB4D7866F8C1A0CO1PR11MB4930namp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

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

 

Basically, bootloader initializes the silicon hardwa= re and payload prepares the OS required data and services. Bootloader passe= s control to payload.

 

https://universalpayload.github.io/documentation/sp= ec/spec.html defines the universal interface between bootloader and pay= load. So that different bootloaders can work with different payloads, initializing different hardware and boot= ing different OSes.

The interface document is in very draft phase. Any f= eedback is welcome.

 

We also developed the POC code to demonstrate the id= ea. 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.co= m/universalpayload/tools.git payload”

This step downloads the initial tools that wi= ll setup the dev environment.

  1. Run “py -3 clone_and_build_sbl_with_uefipayload.py” in th= e “payload” directory

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

Then it builds the firmware binary “Sli= mBootloader.bin” in “codeworkspace” directory.=

  1. Boot QEMU by running “qemu-system-x86_64.exe -machine q35 -pfla= sh  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/universa= lpayload/coreboot.git) to let it conform to the universal interface as = a bootloader.

Besides the EDK2 UEFI Payload, we created a payload = (https://g= ithub.com/universalpayload/linuxpayload.git) that can boot Linux.<= /o:p>

 

Thanks,

Ray

 

--_000_CO1PR11MB4930E299B35B2E0CB4D7866F8C1A0CO1PR11MB4930namp_--