summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeif Lindholm <leif.lindholm@linaro.org>2017-05-03 17:53:19 +0100
committerLeif Lindholm <leif.lindholm@linaro.org>2017-07-14 22:36:50 +0100
commit1558779cccad9a1a552b4b0148cd390240cf5e3c (patch)
treebbb62449a10d57f6b9830b49e6173e46f1bf91d7
downloadedk2-platforms-1558779cccad9a1a552b4b0148cd390240cf5e3c.tar.xz
Add tianocore required text files
Add License.txt, copied verbatim from commit efd798c1eb of https://git.linaro.org/uefi/OpenPlatformPkg.git Add Contributions.txt from verbatim from commit 7d3921f893 of https://github.com/tianocore-docs/edk2-TemplateSpecification Add Maintainers.txt Adapted from edk2-non-osi master branch. Add Readme.md Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
-rw-r--r--Contributions.txt174
-rw-r--r--License.txt25
-rw-r--r--Maintainers.txt47
-rw-r--r--Readme.md224
4 files changed, 470 insertions, 0 deletions
diff --git a/Contributions.txt b/Contributions.txt
new file mode 100644
index 0000000000..b6c15df2df
--- /dev/null
+++ b/Contributions.txt
@@ -0,0 +1,174 @@
+======================
+= Code Contributions =
+======================
+
+To make a contribution to a TianoCore project, follow these steps.
+1. Create a change description in the format specified below to
+ use in the source control commit log.
+2. Your commit message must include your "Signed-off-by" signature,
+ and "Contributed-under" message.
+3. Your "Contributed-under" message explicitly states that the
+ contribution is made under the terms of the specified
+ contribution agreement. Your "Contributed-under" message
+ must include the name of contribution agreement and version.
+ For example: Contributed-under: TianoCore Contribution Agreement 1.0
+ The "TianoCore Contribution Agreement" is included below in
+ this document.
+4. Submit your code to the TianoCore project using the process
+ that the project documents on its web page. If the process is
+ not documented, then submit the code on development email list
+ for the project.
+5. It is preferred that contributions are submitted using the same
+ copyright license as the base project. When that is not possible,
+ then contributions using the following licenses can be accepted:
+ * BSD (2-clause): http://opensource.org/licenses/BSD-2-Clause
+ * BSD (3-clause): http://opensource.org/licenses/BSD-3-Clause
+ * MIT: http://opensource.org/licenses/MIT
+ * Python-2.0: http://opensource.org/licenses/Python-2.0
+ * Zlib: http://opensource.org/licenses/Zlib
+ For documentation: https://www.freebsd.org/copyright/freebsd-doc-license.html
+
+ Contributions of code put into the public domain can also be
+ accepted.
+
+ Contributions using other licenses might be accepted, but further
+ review will be required.
+
+========================================
+= TianoCore Contribution Agreement 1.1 =
+========================================
+
+INTEL CORPORATION ("INTEL") MAKES AVAILABLE SOFTWARE, DOCUMENTATION ("DOCUMENTATION"),
+INFORMATION AND/OR OTHER MATERIALS FOR USE IN THE TIANOCORE OPEN SOURCE
+PROJECT (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE
+TERMS AND CONDITIONS OF THIS AGREEMENT BETWEEN YOU AND INTEL AND/OR THE
+TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR
+REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE
+CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
+BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
+AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
+AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
+USE THE CONTENT.
+
+Unless otherwise indicated, all Content (except Documentation) made available on the TianoCore
+site is provided to you under the terms and conditions of the BSD
+License ("BSD"). A copy of the BSD License is available at
+http://opensource.org/licenses/bsd-license.php
+or when applicable, in the associated License.txt file.
+
+Unless otherwise indicated, all Documentation made available on the
+TianoCore site is provided to you under the terms and conditions of the
+FreeBSD Documentation License ("FreeBSD"). A copy of the BSD License is
+available at https://www.freebsd.org/copyright/freebsd-doc-license.html or,
+when applicable, in the associated License.txt file.
+
+Certain other content may be made available under other licenses as
+indicated in or with such Content(for example, in a License.txt file).
+
+You accept and agree to the following terms and conditions for Your
+present and future Contributions submitted to TianoCore site. Except
+for the license granted to Intel hereunder, You reserve all right,
+title, and interest in and to Your Contributions.
+
+== SECTION 1: Definitions ==
+* "You" or "Contributor" shall mean the copyright owner or legal
+ entity authorized by the copyright owner that is making a
+ Contribution hereunder. All other entities that control, are
+ controlled by, or are under common control with that entity are
+ considered to be a single Contributor. For the purposes of this
+ definition, "control" means (i) the power, direct or indirect, to
+ cause the direction or management of such entity, whether by
+ contract or otherwise, or (ii) ownership of fifty percent (50%)
+ or more of the outstanding shares, or (iii) beneficial ownership
+ of such entity.
+* "Contribution" shall mean any original work of authorship,
+ including any modifications or additions to an existing work,
+ that is intentionally submitted by You to the TinaoCore site for
+ inclusion in, or documentation of, any of the Content. For the
+ purposes of this definition, "submitted" means any form of
+ electronic, verbal, or written communication sent to the
+ TianoCore site or its representatives, including but not limited
+ to communication on electronic mailing lists, source code
+ control systems, and issue tracking systems that are managed by,
+ or on behalf of, the TianoCore site for the purpose of
+ discussing and improving the Content, but excluding
+ communication that is conspicuously marked or otherwise
+ designated in writing by You as "Not a Contribution."
+
+== SECTION 2: License for Contributions ==
+* Contributor hereby agrees that redistribution and use of the
+ Contribution in source and binary forms, with or without
+ modification, are permitted provided that the following
+ conditions are met:
+** Redistributions of source code must retain the Contributor's
+ copyright notice, this list of conditions and the following
+ disclaimer.
+** Redistributions in binary form must reproduce the Contributor's
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+* Disclaimer. None of the names of Contributor, Intel, or the names
+ of their respective contributors may be used to endorse or
+ promote products derived from this software without specific
+ prior written permission.
+* Contributor grants a license (with the right to sublicense) under
+ claims of Contributor's patents that Contributor can license that
+ are infringed by the Contribution (as delivered by Contributor) to
+ make, use, distribute, sell, offer for sale, and import the
+ Contribution and derivative works thereof solely to the minimum
+ extent necessary for licensee to exercise the granted copyright
+ license; this patent license applies solely to those portions of
+ the Contribution that are unmodified. No hardware per se is
+ licensed.
+* EXCEPT AS EXPRESSLY SET FORTH IN SECTION 3 BELOW, THE
+ CONTRIBUTION IS PROVIDED BY THE CONTRIBUTOR "AS IS" AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ CONTRIBUTOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
+ CONTRIBUTION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+
+== SECTION 3: Representations ==
+* You represent that You are legally entitled to grant the above
+ license. If your employer(s) has rights to intellectual property
+ that You create that includes Your Contributions, You represent
+ that You have received permission to make Contributions on behalf
+ of that employer, that Your employer has waived such rights for
+ Your Contributions.
+* You represent that each of Your Contributions is Your original
+ creation (see Section 4 for submissions on behalf of others).
+ You represent that Your Contribution submissions include complete
+ details of any third-party license or other restriction
+ (including, but not limited to, related patents and trademarks)
+ of which You are personally aware and which are associated with
+ any part of Your Contributions.
+
+== SECTION 4: Third Party Contributions ==
+* Should You wish to submit work that is not Your original creation,
+ You may submit it to TianoCore site separately from any
+ Contribution, identifying the complete details of its source
+ and of any license or other restriction (including, but not
+ limited to, related patents, trademarks, and license agreements)
+ of which You are personally aware, and conspicuously marking the
+ work as "Submitted on behalf of a third-party: [named here]".
+
+== SECTION 5: Miscellaneous ==
+* Applicable Laws. Any claims arising under or relating to this
+ Agreement shall be governed by the internal substantive laws of
+ the State of Delaware or federal courts located in Delaware,
+ without regard to principles of conflict of laws.
+* Language. This Agreement is in the English language only, which
+ language shall be controlling in all respects, and all versions
+ of this Agreement in any other language shall be for accommodation
+ only and shall not be binding. All communications and notices made
+ or given pursuant to this Agreement, and all documentation and
+ support to be provided, unless otherwise noted, shall be in the
+ English language.
diff --git a/License.txt b/License.txt
new file mode 100644
index 0000000000..dea6f02f0f
--- /dev/null
+++ b/License.txt
@@ -0,0 +1,25 @@
+Copyright (c) 2012-2017, Linaro Ltd. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+* Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
diff --git a/Maintainers.txt b/Maintainers.txt
new file mode 100644
index 0000000000..0dd5b3743e
--- /dev/null
+++ b/Maintainers.txt
@@ -0,0 +1,47 @@
+EDK II Maintainers
+==================
+
+This file provides information about the primary maintainers for
+EDK II Platforms.
+
+In general, you should not privately email the maintainer. You should
+email the edk2-devel list, but you can also Cc the maintainer.
+
+Descriptions of section entries:
+
+ L: Mailing list that is relevant to this area (default is edk2-devel)
+ Patches and questions should be sent to the email list.
+ M: Cc address for patches and questions (ie, the package maintainer)
+ W: Web-page with status/info
+ T: SCM tree type and location. Type is one of: git, svn.
+ S: Status, one of the following:
+ Supported: Someone is actually paid to look after this.
+ Maintained: Someone actually looks after it.
+ Odd Fixes: It has a maintainer but they don't have time to do
+ much other than throw the odd patch in. See below.
+ Orphan: No current maintainer [but maybe you could take the
+ role as you write your new code].
+ Obsolete: Old code. Something tagged obsolete generally means
+ it has been replaced by a better system and you
+ should be using that.
+
+EDK II
+------
+W: https://github.com/tianocore/tianocore.github.io/wiki/EDK-II
+L: https://lists.01.org/mailman/listinfo/edk2-devel
+T: git - https://github.com/tianocore/edk2-platforms.git
+
+Responsible Disclosure, Reporting Security Issues
+-------------------------------------------------
+W: https://github.com/tianocore/tianocore.github.io/wiki/Security
+
+EDK II Packages:
+----------------
+
+Platform
+M: Leif Lindholm <leif.lindholm@linaro.org>
+M: Michael D Kinney <michael.d.kinney@intel.com>
+
+Silicon
+M: Leif Lindholm <leif.lindholm@linaro.org>
+M: Michael D Kinney <michael.d.kinney@intel.com>
diff --git a/Readme.md b/Readme.md
new file mode 100644
index 0000000000..d131119248
--- /dev/null
+++ b/Readme.md
@@ -0,0 +1,224 @@
+This branch holds all platforms actively maintained against the
+[edk2](https://github.com/tianocore/edk2) master branch.
+
+For generic information about the edk2-platforms repository, and the process
+under which _stable_ and _devel_ branches can be added for individual platforms,
+please see
+[the introduction on the about branch](https://github.com/tianocore/edk2-platforms/blob/about/Readme.md).
+
+# INDEX
+* [Overview](#overview)
+* [How To Build (Linux Environment)](#how-to-build-linux-environment)
+ * [Manual building](#manual-building)
+ * [Using uefi-tools helper scripts](#using-uefi-tools-helper-scripts)
+* [How To Build (Windows Environment)](#how-to-build-windows-environment)
+* [Supported Platforms](#supported-platforms)
+* [Maintainers](#maintainers)
+
+# Overview
+
+Platform description files can be found under `Platform/{Vendor}/{Platform}`.
+
+Many platforms require additional image processing beyond the EDK2 build.
+Any such steps should be documented (as a Readme.md), and any necessary helper
+scripts be contained, under said platform directory.
+
+Any contributions to this branch should be submitted via email to the
+edk2-devel mailing list with a subject prefix of `[platforms]`. See
+[Laszlo's excellent guide](https://github.com/tianocore/tianocore.github.io/wiki/Laszlo's-unkempt-git-guide-for-edk2-contributors-and-maintainers) for details
+on how to do this successfully.
+
+# How to build (Linux Environment)
+
+## Prerequisites
+The build tools themselves depend on Python (2) and libuuid. Most Linux systems
+will come with a Python environment installed by default, but you usually need
+to install uuid-dev (or uuid-devel, depending on distribution) manually.
+
+## If cross compiling
+If building EDK2 for a different archtecture than the build machine, you need to
+obtain an appropriate cross-compiler. X64 (x86_64) compilers also support IA32,
+but the reverse may not always be true.
+
+Target architecture | Cross compilation prefix
+--------------------|-------------------------
+AARCH64 | aarch64-linux-gnu-
+ARM | arm-linux-gnueabihf-
+IA32 | i?86-linux-gnu-* _or_ x86_64-linux-gnu-
+IPF | ia64-linux-gnu
+X64 | x86_64-linux-gnu-
+
+\* i386, i486, i586 or i686
+
+### GCC
+Linaro provides GCC toolchains for
+[aarch64-linux-gnu](https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-linux-gnu/)
+and [arm-linux-gnueabihf](https://releases.linaro.org/components/toolchain/binaries/latest/arm-linux-gnueabihf/)
+compiled to run on x86_64/i686 Linux and i686 Windows. Some Linux distributions
+provide their own packaged cross-toolchains.
+
+### clang
+Clang does not require separate cross compilers, but it does need a
+target-specific binutils. These are included with any prepackaged GCC toolchain
+(see above), or can be installed or built separately.
+
+## Obtaining source code
+1. Create a new folder (directory) on your local development machine
+ for use as your workspace. This example uses `/work/git/tianocore`, modify as
+ appropriate for your needs.
+ ```
+ $ export WORKSPACE=/work/git/tianocore
+ $ mkdir -p $WORKSPACE
+ $ cd $WORKSPACE
+ ```
+
+1. Into that folder, clone:
+ 1. [edk2](https://github.com/tianocore/edk2)
+ 1. [edk2-platforms](https://github.com/tianocore/edk2-platforms)
+ 1. [edk2-non-osi](https://github.com/tianocore/edk2-non-osi) (if building
+ platforms that need it)
+ ```
+ $ git clone https://github.com/tianocore/edk2.git
+ ...
+ $ git clone https://github.com/tianocore/edk2-platforms.git
+ ...
+ $ git clone https://github.com/tianocore/edk2-non-osi.git
+ ```
+
+1. Set up a **PACKAGES_PATH** to point to the locations of these three
+ repositories:
+
+ `$ export PACKAGES_PATH=$PWD/edk2:$PWD/edk2-platforms:$PWD/edk2-non-osi`
+
+## Manual building
+
+1. Set up the build environment (this will modify your environment variables)
+
+ `$ . edk2/edksetup.sh`
+
+ (This step _depends_ on **WORKSPACE** being set as per above.)
+1. Build BaseTools
+
+ `make -C edk2/BaseTools`
+
+ (BaseTools can currently not be built in parallel, so do not specify any `-j`
+ option, either on the command line or in a **MAKEFLAGS** environment
+ variable.)
+
+### Build options
+There are a number of options that can (or must) be specified at the point of
+building. Their default values are set in `edk2/Conf/target.txt`. If we are
+working only on a single platform, it makes sense to just update this file.
+
+target.txt option | command line | Description
+------------------|--------------|------------
+ACTIVE_PLATFORM | `-p` | Description file (.dsc) of platform.
+TARGET | `-b` | One of DEBUG, RELEASE or NOOPT.
+TARGET_ARCH | `-a` | Architecture to build for.
+TOOL_CHAIN_TAG | `-t` | Toolchain profile to use for building.
+
+There is also MAX_CONCURRENT_THREAD_NUMBER (`-n`), roughly equivalent to
+`make -j`.
+
+When specified on command line, `-b` can be repeated multiple times in order to
+build multiple targets sequentially.
+
+After a successful build, the resulting images can be found in
+`Build/{Platform Name}/{TARGET}_{TOOL_CHAIN_TAG}/FV`.
+
+### Build a platform
+The main build process _can_ run in parallel - so figure out how many threads we
+have available.
+
+```
+$ getconf _NPROCESSORS_ONLN
+8
+```
+OK, so we have 8 CPUs - let's tell the build to use a little more than that:
+```
+$ NUM_CPUS=$((`getconf _NPROCESSORS_ONLN` + 2))
+```
+For the toolchain tag, use GCC5 for gcc version 5 or later, GCC4x for
+earlier versions, or CLANG35/CLANG38 as appropriate when building with clang.
+```
+$ build -n $NUM_CPUS -a AARCH64 -t GCC5 -p Platform/ARM/JunoPkg/ArmJuno.dsc
+```
+(Note that the description file gets resolved by the build command through
+searching in all locations specified in **PACKAGES_PATH**.)
+
+#### If cross-compiling
+When cross-compiling, or building with a different version of the compiler than
+the default `gcc` or `clang`(/binutils), we additionally need to inform the
+build command which toolchain to use. We do this by setting the environment
+variable `{TOOL_CHAIN_TAG}_{TARGET_ARCH}_PREFIX` - in the case above,
+**GCC5_AARCH64_PREFIX**.
+
+So, referring to the cross compiler toolchain table above, we should prepend the `build` command line with `GCC5_AARCH64_PREFIX=aarch64-linux-gnu-`.
+
+## Using uefi-tools helper scripts
+uefi-tools is a completely unofficial set of helper-scripts developed by Linaro.
+They automate figuring out all of the manual options above, and store the paths
+to platform description files in a separate configuration file. Additionally,
+they simplify bulk-building large numbers of platforms.
+
+The (best effort) intent is to keep this configuration up to date with all
+platforms that exist in the edk2-platforms master branch.
+
+The equivalent of the manual example above would be
+```
+$ git clone https://git.linaro.org/uefi/uefi-tools.git
+...
+$ ./uefi-tools/edk2-build.sh juno
+...
+------------------------------------------------------------
+ aarch64 Juno (AARCH64) RELEASE pass
+------------------------------------------------------------
+pass 1
+fail 0
+```
+The build finishes with a summary of which platforms/targets were built, which
+succeeded and which failed (and the total number of either).
+
+Like the `build` command itself, `edk2-build.sh` it supports specifying multiple
+targets on a single command line, but it also lets you specify multiple
+platforms (or `all` for building all known platforms). So in order to build all
+platforms described by the configuration file, for both DEBUG and RELEASE
+targets:
+```
+$ ./uefi-tools/edk2-build.sh -b DEBUG -b RELEASE
+```
+
+# How To Build (Windows Environment)
+
+(I genuinely have no idea. Please help!)
+
+
+# Supported Platforms
+
+These are the platforms currently supported by this tree - grouped by
+Processor/SoC vendor, rather than platform vendor.
+
+If there are any additional build steps beyond the generic ones listed above,
+they will be documented with the platform.
+
+## AMD
+* [Cello](Platform/LeMaker/CelloBoard)
+* [Overdrive](Platform/AMD/OverdriveBoard)
+* [Overdrive 1000](Platform/SoftIron/Overdrive1000Board)
+
+## ARM
+* [Juno](Platform/ARM/JunoPkg)
+* [Versatile Express](Platform/ARM/VExpressPkg)
+
+## Hisilicon
+* [D02](Platform/Hisilicon/D02)
+* [D03](Platform/Hisilicon/D03)
+* [D05](Platform/Hisilicon/D05)
+* [HiKey](Platform/Hisilicon/HiKey)
+
+## Marvell
+* [Armada 70x0](Platform/Marvell/Armada)
+
+# Maintainers
+
+See [Maintainers.txt](Maintainers.txt).