Binary repository initial commit
This is the intial commit of the new Trusted Firmware binary repository.
It adds the readme file explaining the contribution guidelines (what we
previously discussed as "binary policy") for the repository as well as
the directory structure. Also adding the Permissive Binary License file
and an example of how to structure release notes.
Change-Id: I35061727ddeadb001cafebabef4524bc4cf25b54
Signed-off-by: Julius Werner <jwerner@chromium.org>
diff --git a/example-release-notes.rst b/example-release-notes.rst
new file mode 100644
index 0000000..e10a8cc
--- /dev/null
+++ b/example-release-notes.rst
@@ -0,0 +1,52 @@
+VendorA ExampleBlob Release Notes
+=============================
+
+.. section-numbering::
+ :suffix: .
+
+.. contents::
+
+Overview
+--------
+
+Files: ``exampleblob.bin``, ``exampleblob_sram.bin``
+
+Release Date: April 22nd, 2019
+
+Version: 1.3.0
+
+License: `Trusted Firmware Permissive Binary License`_
+
+Tested TF-A commit: b1349743a7949bb7b678fdf5aa681eb9d8d88081
+
+Supported Silicon: VendorA SoC1, VendorA SoC2, VendorA SoC2-R
+
+Notices
+-------
+
+.. Note: If this section get's too long, you can also link a separate file for it.
+
+::
+ Copyright 2018-2019 VendorA Inc. All rights reserved.
+ VendorA is a registered trademark of VendorA Inc.
+`Trusted Firmware Permissive Binary License`_
+
+::
+ Copyright 2000-2008 <author of third-party library dependency>
+SPDX-License-Identifier: `LGPL-3.0-or-later`_
+
+Release History
+---------------
+
+- 1.3.0 (April 22nd, 2019)
+ - Added SoC2-R support
+ - Fixed a power sequencing bug that could cause a crash on resume
+ - Tested with TF-A commit b1349743a7949bb7b678fdf5aa681eb9d8d88081
+- 1.2.0 (January 15th, 2019)
+ - Added SoC2 support
+ - Added PSCI hotplug support
+ - Tested with TF-A commit f0ea34206afae74987aeaf69a31616868a3fa693
+- ... (further history) ...
+
+.. _Trusted Firmware Permissive Binary License: licenses/permissive-binary-license.txt
+.. _LGPL-3.0-or-later: https://spdx.org/licenses/LGPL-3.0-or-later.html
diff --git a/licenses/permissive-binary-license.txt b/licenses/permissive-binary-license.txt
new file mode 100644
index 0000000..18d86ab
--- /dev/null
+++ b/licenses/permissive-binary-license.txt
@@ -0,0 +1,47 @@
+Trusted Firmware Permissive Binary License
+
+Version 1.0, April 2019
+(adapted for Trusted Firmware from Mbed Permissive Binary License 1.0
+ at https://www.mbed.com/en/licenses/permissive-binary-license/)
+
+Redistribution. Redistribution and use in binary form, without
+modification, are permitted provided that the following conditions are
+met:
+
+1) Redistributions must reproduce the copyright notice and the
+ following disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+2) Unless to the extent explicitly permitted by law, no reverse
+ engineering, decompilation, or disassembly of this software is
+ permitted.
+
+3) Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+Limited patent license. The copyright holders (and contributors) grant a
+worldwide, non-exclusive, no-charge, royalty-free patent license to
+make, have made, use, offer to sell, sell, import, and otherwise
+transfer this software, where such license applies only to those patent
+claims licensable by the copyright holders (and contributors) that are
+necessarily infringed by this software. This patent license shall not
+apply to any combinations that include this software. No hardware is
+licensed hereunder.
+
+If you institute patent litigation against any entity (including a
+cross-claim or counterclaim in a lawsuit) alleging that the software
+itself infringes your patent(s), then your rights granted under this
+license shall terminate as of the date such litigation is filed.
+
+DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS." 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
+HOLDERS 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/readme.rst b/readme.rst
new file mode 100644
index 0000000..e2003f2
--- /dev/null
+++ b/readme.rst
@@ -0,0 +1,147 @@
+Trusted Firmware binary repository
+==================================
+
+.. section-numbering::
+ :suffix: .
+
+.. contents::
+
+This repository hosts redistributable binary components that are needed with
+certain platform ports of trustedfirmware.org projects. All contributions to
+this repository must follow the rules and process laid out below as well as
+individual contribution guidelines of the respective project. License terms for
+individual binaries are described in the accompanying ``release-notes.rst``.
+
+Scope
+-----
+
+This repository is intended for cases where it's not possible to fully
+open-source a trustedfirmware.org project platform port. Binary components
+should be as minimal as possible, augmenting the more significant, open-source
+part of the platform port. Binary components that contain all meaningful
+functionality of a platform port and are merely linked into a boilerplate shell
+of open-source code will not be accepted.
+
+The trustedfirmware.org Technical Steering Committee or Governing Board will
+decide whether to host binary components in this repository on a case by case
+basis. Applications for inclusion can be sent to tsc@lists.trustedfirmware.org.
+
+Binary components must always be associated with a specific platform port. No
+generic code (i.e. any code outside the ``plat/<vendor>`` directory) may depend
+on a binary component.
+
+License
+-------
+
+All binary components must be accompanied by a distribution license. The license
+should:
+
+#. be irrevocable
+
+#. be royalty-free
+
+#. grant usage rights for both copyright and patents covering the binary
+
+#. allow unlimited redistribution under the same terms
+
+#. not restrict the ability to publish test results from the platform port
+
+To simplify legal review and avoid potential concerns, we recommend that the
+license should be as short and simple as possible. Special terms should be
+limited to what is absolutely necessary. The `Permissive Binary License`_
+adapted from the Arm Mbed project is a good example of a license that fulfills
+these requirements, and contributors are welcome to reuse it for their binaries.
+Reusing an already accepted license may greatly speed up and simplify the
+acceptance process for a new binary.
+
+When a binary is including third-party code (including open-source code) that is
+covered by separate license terms, all those licenses must be compatible with
+the distribution license.
+
+Notices
+-------
+
+All license and copyright notices covering the binary (including for linked
+third-party components) must be listed or linked to in the release notes. For
+licenses that are included in the `SPDX license list`_, please link to the
+appropriate SPDX license page rather than uploading a copy of the license to the
+binary repository.
+
+Release Notes
+-------------
+
+All binary components must be clearly versioned and accompanied by a release
+notes document that lists the following (updated for each version):
+
+#. version
+
+#. release date
+
+#. distribution license
+
+#. full list of license and copyright notices for (all parts of) the binary
+ (can be put into a separate file and linked from release notes if desired)
+
+#. supported silicon
+
+#. changes since the last version
+
+#. errata, known issues
+
+#. commit hash of the open-source trustedfirmware.org project it was tested with
+
+See the `example release notes`_ for suggestions on how to format these notes.
+
+Support
+-------
+
+As interfaces in open-source trustedfirmware.org projects change and get
+deprecated, it may not be possible to keep a platform port functional without
+updating the binary components it depends on. Contributors of binary components
+are expected to maintain them together with their platform ports and release
+updates as necessary. A binary component that no longer works with current
+builds of the open-source project and is not being kept up to date may be
+removed. Likewise, new binary component updates need to be tested with the
+latest version of the open-source platform port (and the latter needs to be
+updated if necessary) before they can be accepted.
+
+Directory Structure
+-------------------
+
+This repository contains binaries, license files and release notes. Release
+notes must always be placed in the same directory as the binary file(s) they
+apply to and should be called ``release-notes.rst``. Directories should be
+scoped by vendor and platform if necessary (e.g. a binary pertaining to a single
+platform should be placed under ``vendorname/platformname`` whereas a binary
+that can support multiple SoCs of a vendor can be placed directly under
+``vendorname``). Vendor-specific licenses should be placed in the ``licenses/``
+subdirectory of a vendor directory and referenced from the ``release-notes.rst``
+files of the binaries they apply to.
+
+Example layout::
+
+ - readme.rst
+ - licenses/
+ - permissive-binary-license.txt
+ - vendorA/
+ - licenses/
+ - vendor-specific-license.txt
+ - commonBinaryX/
+ - fileA.bin
+ - fileB.hex
+ - release-notes.rst
+ - platformA1/
+ - fileC.bin
+ - release-notes.rst
+ - platformA2
+ - binaryY/
+ - fileD.bin
+ - release-notes.rst
+ - binaryZ/
+ - fileE.elf
+ - fileF.bin
+ - release-notes.rst
+
+.. _Permissive Binary License: licenses/permissive-binary-license.txt
+.. _SPDX license list: https://spdx.org/licenses/
+.. _example release notes: example-release-notes.rst