summaryrefslogtreecommitdiff
path: root/Readme.md
blob: 87d1a358e1a9a699c6ea0e0f751603d048ce8b16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
This repository contains platforms maintained by the EDK II community.

# Introduction
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.

# Process for creating, using, and maintaining platforms
1. Create a new repo called edk2-platforms

    1. The default branch edk2-platforms/master contains all open 
       platforms that are actively validated against the packages
       in edk2/master.
   
    2. 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

    1. 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.  

    2. 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 validated UDK release
       (e.g. edk2/UDK2015).
 
    3. Maintainer creates branch with Readme.md in edk2-platforms

    4. An edk2-platforms branch for platforms under development use the 
       following branch naming convention:

         `edk2-platforms/devel-*`

    5. 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

    1. Commit message subject format:

         `[PATCH][platforms/branch]: Package/Module: Subject`

    2. Directly commit changes to branch or if community review is desired,
       use edk2-devel review process.

6. Process to remove an edk2-platforms branch

    1. Stewards may periodically review of branches in edk2-platforms
       (once a quarter?)

    2. If no activity on a branch for extended period of time and the branch
       is not being maintained and is no longer functional then stewards 
       send email to edk2-devel to request deletion of edk2-platforms branch.

    3. If no objections from EDK II community, then branch is deleted and 
       archived at

         https://github.com/tianocore/edk2-archive
         
7. How to evaluate a platform in edk2-platforms

    1. Clone edk2-platforms/[branch name]

    2. Following instructions in Readme.md to build firmware and
       update target platform

# Multiple Platform Template

This section is a template for a Readme.md file in an edk2-platforms branch
that supports multiple platforms.  The list of platforms is presented here
with links to the Readme.md in each platform subdirectory.

* [Sample Platform](SamplePlatformPkg/Readme.md)
* [Another Platform](AnotherPlatformPkg/Readme.md)
* [Yet Another Platform](YetAnotherPlatformPkg/Readme.md)