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
