From 1558779cccad9a1a552b4b0148cd390240cf5e3c Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Wed, 3 May 2017 17:53:19 +0100 Subject: 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 --- Contributions.txt | 174 ++++++++++++++++++++++++++++++++++++++++++ License.txt | 25 ++++++ Maintainers.txt | 47 ++++++++++++ Readme.md | 224 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 470 insertions(+) create mode 100644 Contributions.txt create mode 100644 License.txt create mode 100644 Maintainers.txt create mode 100644 Readme.md 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 +M: Michael D Kinney + +Silicon +M: Leif Lindholm +M: Michael D Kinney 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). -- cgit v1.2.3