diff options
author | Leif Lindholm <leif.lindholm@linaro.org> | 2017-08-03 12:23:55 +0100 |
---|---|---|
committer | Leif Lindholm <leif.lindholm@linaro.org> | 2017-08-03 12:23:55 +0100 |
commit | 5b849a6397d51607098cb4d0cf8b9b3f88731912 (patch) | |
tree | bbb62449a10d57f6b9830b49e6173e46f1bf91d7 | |
download | edk2-platforms-5b849a6397d51607098cb4d0cf8b9b3f88731912.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.0
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
-rw-r--r-- | Contributions.txt | 174 | ||||
-rw-r--r-- | License.txt | 25 | ||||
-rw-r--r-- | Maintainers.txt | 47 | ||||
-rw-r--r-- | Readme.md | 224 |
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). |