From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (using TLSv1 with cipher CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id A2AD41A1ED6 for ; Thu, 22 Sep 2016 13:54:52 -0700 (PDT) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP; 22 Sep 2016 13:54:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.30,379,1470726000"; d="scan'208,217";a="1055022950" Received: from orsmsx105.amr.corp.intel.com ([10.22.225.132]) by orsmga002.jf.intel.com with ESMTP; 22 Sep 2016 13:54:52 -0700 Received: from orsmsx113.amr.corp.intel.com ([169.254.9.161]) by ORSMSX105.amr.corp.intel.com ([169.254.2.172]) with mapi id 14.03.0248.002; Thu, 22 Sep 2016 13:54:51 -0700 From: "Kinney, Michael D" To: "edk2-devel@lists.01.org" , "Kinney, Michael D" Thread-Topic: [RFC V2] EDK2 Platform Proposal Thread-Index: AdIU6nQzG60V/uVFSPei1E0IX4fvwQ== Date: Thu, 22 Sep 2016 20:54:50 +0000 Message-ID: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_IC x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNzg5YjE5YjAtMmFkYi00MWJhLWI0ZTUtZjdmNWVjYjliOTAyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6Im9LdzdKXC9QVEQwWkI1QUpNeFJCYWFId2JmZWhnalhpY2V5ZUpTUEZQaFhRPSJ9 x-originating-ip: [10.22.254.140] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.21 Subject: [RFC V2] EDK2 Platform Proposal X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Sep 2016 20:54:52 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hello, Here is the V2 version of the proposal for the edk2-platforms repo. Changes from V1: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D * edk2-platform is not a fork of edk2. * edk2-platforms branches contain CPU, Chipset, SoC, and platform specific packages * edk2-plaforms/master contains all open platforms that are synced with edk2/master. * Each edk2-platforms branch may support many platforms (not just one) * Use PACKAGES_PATH to do builds using packages from multiple repositories * Update edk2-platforms branch naming to clearly identify platforms that are considered stable and platforms that are under active development. * edk2 developers may be required to verify platforms in edk2-platforms builds as part of test criteria. Especially platforms that are intended to be used with edk2/master in edk2-platforms/stable-* branches. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Similar to edk2-staging, we also have a need to manage platforms that have been ported to edk2. Jordan has created a repository called edk2-platforms and has created a branch for the minnowboard-max that uses a validated release of the UDK 2015 for the dependent packages: https://github.com/tianocore/edk2-platforms https://github.com/tianocore/edk2-platforms/tree/minnowboard-max-udk2015 Instead of creating a branch per feature in edk2-staging, the proposal is to create a branch per platform or set of platforms in edk2-platforms. The maintainer(s) that create and support a platform branch can decide if the platform uses edk2/master for dependent packages, or uses a stable release of the edk2 for dependent packages. This proposal provides an area for platform development so we can minimize the number of platforms that are included in edk2/master. It is important to keep some platforms in edk2/master so we can use those platforms to validate features in non-platform packages in edk2/master. If a new platform does not add feature coverage to edk2/master, then an edk2-platforms branch would be recommended. Please review the proposal below for edk2-platforms. If this proposal is accepted, then a review of the platforms in edk2/master can be done to see if any of them should be moved to branches in edk2-platforms. Problem statement =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Need place on tianocore.org where platforms can be maintained by the EDK II community. This serves several purposes: * Encourage more platforms sources to be shared earlier in the development process * Allow platform sources to be shared that may not yet meet all edk2 required quality criteria * Allow platform source to be shared so the EDK II community may choose to help finish and validate * Allow more platforms to be used as part of the edk2 validation and release cycle. * Not intended to be used for bug fixes. Proposal =3D=3D=3D=3D=3D=3D=3D=3D 1) Create a new repo called edk2-platforms a) The default branch edk2-platforms/master contains all open platforms that are actively validated against the packages in edk2/master. b) The intent is for packages in edk2-platforms to be CPU, Chipset, SoC, or platform specific. Drivers that are CPU arch and platform agnostic should be put into the edk2 repo. 2) edk2-platforms discussions use the edk2-devel mailing list for design/patch/test using the following style for discussion of a platform branch in edk2-platforms repo. [platforms/branch]: Subject 3) All commits to edk2-platforms must follow same rules use for commits to edk2 (e.g. Tiano Contributor's Agreement) 4) Process to add a new branch to edk2-platforms a) Maintainer sends patch email to edk2-devel mailing list announcing the creation of a new branch in edk2-platforms with Readme.MD. Readme.MD must be in root of branch with summary, owners, status, build instructions, target update instructions, OS compatibility, known issues/limitations, links to related materials, and anything else a developer needs to use platform(s) in that branch. b) Readme.MD must provide the PACKAGES_PATH setting required to build along with the branch names of other repos that platform requires. This allows a platform developer(s) to use packages from edk2/master or to use packages from a validates UDK release (e.g. edk2/UDK2015). c) Maintainer creates branch with Readme.MD in edk2-platforms d) An edk2-platforms branch for platforms under developer use the following branch naming convention: edk2-platforms/devel-* e) An edk2-platforms branch for stable platforms use the following branch naming convention: edk2-platforms/stable-* 5) Process to update sources in edk2-platforms branch a) Commit message subject format: [platforms/branch PATCH]: Package/Module: Subject b) Directly commit changes to branch or if community review is desired= , use edk2-devel review process. 7) Process to remove an edk2-platforms branch a) Stewards may periodically review of branches in edk2-platforms (once a quarter?) b) If no activity on a branch for extended period of time and the bran= ch is not being maintained and is no longer functional then stewards send email to edk2-devel to request deletion of edk2-platforms bran= ch. c) If no objections from EDK II community, then branch is deleted and archived at https://github.com/tianocore/edk2-archive. 8) How to evaluate a platform in edk2-platforms a) Clone edk2-platforms/[branch name] b) Following instructions in Readme.MD to build firmware and update target platform Best regards, Mike