diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..03d0a95
--- /dev/null
+++ b/.github/CODE_OF_CONDUCT.md
@@ -0,0 +1,12 @@
+<!--
+     Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
+
+     SPDX-License-Identifier: CC-BY-SA-4.0
+-->
+
+# Code of Conduct
+
+This repository and interactions with it fall under the [seL4 Code of Conduct][1] available from the [seL4 website][2].
+
+[1]: https://docs.sel4.systems/processes/conduct.html
+[2]: https://sel4.systems
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
new file mode 100644
index 0000000..d3a12db
--- /dev/null
+++ b/.github/CONTRIBUTING.md
@@ -0,0 +1,44 @@
+<!--
+     Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
+
+     SPDX-License-Identifier: CC-BY-SA-4.0
+-->
+
+# Contributions Welcome
+
+Please see the [seL4 contributing guidelines][1] on the [seL4 website][2] for
+details.
+
+[1]: https://docs.sel4.systems/processes/contributing.html
+[2]: https://sel4.systems
+
+
+## Contact
+
+If you have larger changes or additions, it is a good idea to get in contact
+with us as <devel@sel4.systems>, so we can help you get started.
+
+The people responsible for the technical direction, procedures, and quality
+control are the [Technical Steering Committee][3] (TSC) of the seL4
+foundation. You can contact them either on the developer mailing list or on
+directly via email available from their profile pages.
+
+[3]: https://sel4.systems/Foundation/TSC
+
+
+## Developer Certificate of Origin (DCO)
+
+This repository uses the same sign-off process as the Linux kernel. For every
+commit, use
+
+    git commit -s
+
+to add a sign-off line to your commit message, which will come out as:
+
+    Signed-off-by: name <email>
+
+By adding this line, you make the declaration that you have the right to make
+this contribution under the open source license the files use that you changed
+or contributed.
+
+The full text of the declaration is at <https://developercertificate.org>.
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
new file mode 100644
index 0000000..c0f5398
--- /dev/null
+++ b/.github/workflows/pr.yml
@@ -0,0 +1,28 @@
+# Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
+#
+# SPDX-License-Identifier: BSD-2-Clause
+
+# Actions to run on pull requests
+
+name: PR
+
+on: [pull_request]
+
+jobs:
+  gitlint:
+    name: Gitlint
+    runs-on: ubuntu-latest
+    steps:
+    - uses: seL4/ci-actions/gitlint@master
+
+  whitespace:
+    name: 'Trailing Whitespace'
+    runs-on: ubuntu-latest
+    steps:
+    - uses: seL4/ci-actions/git-diff-check@master
+
+  shell:
+    name: 'Portable Shell'
+    runs-on: ubuntu-latest
+    steps:
+    - uses: seL4/ci-actions/bashisms@master
diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml
new file mode 100644
index 0000000..76dbb0a
--- /dev/null
+++ b/.github/workflows/push.yml
@@ -0,0 +1,35 @@
+# Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
+#
+# SPDX-License-Identifier: BSD-2-Clause
+
+# Actions to run on Push and Pull Request
+name: CI
+
+on:
+  push:
+    branches:
+      - master
+  pull_request:
+
+jobs:
+  check:
+    name: License Check
+    runs-on: ubuntu-latest
+    steps:
+    - uses: seL4/ci-actions/license-check@master
+
+  links:
+    name: Links
+    runs-on: ubuntu-latest
+    steps:
+      - uses: seL4/ci-actions/link-check@master
+        with:
+          exclude: js/node_modules
+
+  style:
+    name: Style
+    runs-on: ubuntu-latest
+    steps:
+    - uses: seL4/ci-actions/style@master
+      with:
+        diff_only: true
diff --git a/.github/workflows/sel4test-sim.yml b/.github/workflows/sel4test-sim.yml
new file mode 100644
index 0000000..eaba34c
--- /dev/null
+++ b/.github/workflows/sel4test-sim.yml
@@ -0,0 +1,33 @@
+# Copyright 2021, Proofcraft Pty Ltd
+#
+# SPDX-License-Identifier: BSD-2-Clause
+
+# sel4test simulation runs
+#
+# See sel4test-sim/builds.yml in the repo seL4/ci-actions for configs.
+
+name: seL4Test
+
+on:
+  push:
+    branches: [master]
+  pull_request:
+
+jobs:
+  cparser:
+    name: Simulation
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        march: [armv7a, armv8a, nehalem, rv32imac, rv64imac]
+        compiler: [gcc, clang]
+        exclude:
+          - march: rv32imac
+            compiler: clang
+          - march: rv64imac
+            compiler: clang
+    steps:
+    - uses: seL4/ci-actions/sel4test-sim@master
+      with:
+        march: ${{ matrix.march }}
+        compiler: ${{ matrix.compiler }}
diff --git a/.github/workflows/trigger.yml b/.github/workflows/trigger.yml
new file mode 100644
index 0000000..8410b7e
--- /dev/null
+++ b/.github/workflows/trigger.yml
@@ -0,0 +1,19 @@
+# Copyright 2021, Proofcraft Pty Ltd
+#
+# SPDX-License-Identifier: BSD-2-Clause
+
+# Trigger repository dispatch on main test repos
+name: Trigger
+
+on:
+  push:
+    branches: [master]
+
+jobs:
+  trigger:
+    name: Repository Dispatch
+    runs-on: ubuntu-latest
+    steps:
+    - uses: seL4/ci-actions/trigger@master
+      with:
+        token: ${{ secrets.PRIV_REPO_TOKEN }}
diff --git a/.gitignore b/.gitignore
index bbf313b..8a6469a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,9 @@
+#
+# Copyright 2016, Data61, CSIRO (ABN 41 687 119 230)
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+
 # Object files
 *.o
 *.ko
diff --git a/.licenseignore b/.licenseignore
deleted file mode 100644
index f678ea7..0000000
--- a/.licenseignore
+++ /dev/null
@@ -1,6 +0,0 @@
-*LICENSE_BSD2.txt
-*LICENSE_GPLv2.txt
-LICENSE.txt
-.licenseignore
-.gitignore
-.git/*
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9a27dac..c7ef081 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 cmake_minimum_required(VERSION 3.7.2)
diff --git a/FindseL4_libs.cmake b/FindseL4_libs.cmake
index adf44d9..d555a6d 100644
--- a/FindseL4_libs.cmake
+++ b/FindseL4_libs.cmake
@@ -1,13 +1,7 @@
 #
-# Copyright 2019, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2019, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 set(SEL4_LIBS_DIR "${CMAKE_CURRENT_LIST_DIR}" CACHE STRING "")
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..b032007
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,21 @@
+<!--
+     Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
+
+     SPDX-License-Identifier: CC-BY-SA-4.0
+-->
+
+# License
+
+The files in this repository are released under standard open source licenses,
+identified by [SPDX license tags][1]. See the individual file headers for
+details, or use one of the publicly available SPDX tools to generate a bill of
+materials. The directory [`LICENSES`][2] contains the text for all licenses
+that are mentioned by files in this repository.
+
+Please see the individual library directories and source files for the licenses
+that apply to each library.
+
+For licensing an application, you must check each library that you link against.
+
+[1]: https://spdx.org
+[2]: LICENSES/
diff --git a/LICENSE.txt b/LICENSE.txt
deleted file mode 100644
index 64659d8..0000000
--- a/LICENSE.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Please see the individual library directories and source files for the licenses
-that apply to each library.
-
-For licensing an application using the libraries in each repository, you must
-check each library that you link against.
diff --git a/LICENSES/BSD-2-Clause.txt b/LICENSES/BSD-2-Clause.txt
new file mode 100644
index 0000000..baa80b5
--- /dev/null
+++ b/LICENSES/BSD-2-Clause.txt
@@ -0,0 +1,22 @@
+Copyright (c) <year> <owner> All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+
+2. 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/LICENSES/CC-BY-SA-4.0.txt b/LICENSES/CC-BY-SA-4.0.txt
new file mode 100644
index 0000000..4dfebb8
--- /dev/null
+++ b/LICENSES/CC-BY-SA-4.0.txt
@@ -0,0 +1,349 @@
+Creative Commons Attribution-ShareAlike 4.0 International
+
+Creative Commons Corporation (“Creative Commons”) is not a law firm and does
+not provide legal services or legal advice. Distribution of Creative Commons
+public licenses does not create a lawyer-client or other relationship. Creative
+Commons makes its licenses and related information available on an “as-is”
+basis. Creative Commons gives no warranties regarding its licenses, any material
+licensed under their terms and conditions, or any related information. Creative
+Commons disclaims all liability for damages resulting from their use to the
+fullest extent possible.
+
+Using Creative Commons Public Licenses
+
+Creative Commons public licenses provide a standard set of terms and conditions
+that creators and other rights holders may use to share original works of
+authorship and other material subject to copyright and certain other rights
+specified in the public license below. The following considerations are for
+informational purposes only, are not exhaustive, and do not form part of our
+licenses.
+
+Considerations for licensors: Our public licenses are intended for use by
+those authorized to give the public permission to use material in ways otherwise
+restricted by copyright and certain other rights. Our licenses are irrevocable.
+Licensors should read and understand the terms and conditions of the license
+they choose before applying it. Licensors should also secure all rights necessary
+before applying our licenses so that the public can reuse the material as
+expected. Licensors should clearly mark any material not subject to the license.
+This includes other CC-licensed material, or material used under an exception
+or limitation to copyright. More considerations for licensors.
+
+Considerations for the public: By using one of our public licenses, a licensor
+grants the public permission to use the licensed material under specified
+terms and conditions. If the licensor’s permission is not necessary for any
+reason–for example, because of any applicable exception or limitation to copyright–then
+that use is not regulated by the license. Our licenses grant only permissions
+under copyright and certain other rights that a licensor has authority to
+grant. Use of the licensed material may still be restricted for other reasons,
+including because others have copyright or other rights in the material. A
+licensor may make special requests, such as asking that all changes be marked
+or described.
+
+Although not required by our licenses, you are encouraged to respect those
+requests where reasonable. More considerations for the public.
+
+Creative Commons Attribution-ShareAlike 4.0 International Public License
+
+By exercising the Licensed Rights (defined below), You accept and agree to
+be bound by the terms and conditions of this Creative Commons Attribution-ShareAlike
+4.0 International Public License ("Public License"). To the extent this Public
+License may be interpreted as a contract, You are granted the Licensed Rights
+in consideration of Your acceptance of these terms and conditions, and the
+Licensor grants You such rights in consideration of benefits the Licensor
+receives from making the Licensed Material available under these terms and
+conditions.
+
+Section 1 – Definitions.
+
+a.	Adapted Material means material subject to Copyright and Similar Rights
+that is derived from or based upon the Licensed Material and in which the
+Licensed Material is translated, altered, arranged, transformed, or otherwise
+modified in a manner requiring permission under the Copyright and Similar
+Rights held by the Licensor. For purposes of this Public License, where the
+Licensed Material is a musical work, performance, or sound recording, Adapted
+Material is always produced where the Licensed Material is synched in timed
+relation with a moving image.
+
+b.	Adapter's License means the license You apply to Your Copyright and Similar
+Rights in Your contributions to Adapted Material in accordance with the terms
+and conditions of this Public License.
+
+c.	BY-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses,
+approved by Creative Commons as essentially the equivalent of this Public
+License.
+
+d.	Copyright and Similar Rights means copyright and/or similar rights closely
+related to copyright including, without limitation, performance, broadcast,
+sound recording, and Sui Generis Database Rights, without regard to how the
+rights are labeled or categorized. For purposes of this Public License, the
+rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
+
+e.	Effective Technological Measures means those measures that, in the absence
+of proper authority, may not be circumvented under laws fulfilling obligations
+under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996,
+and/or similar international agreements.
+
+f.	Exceptions and Limitations means fair use, fair dealing, and/or any other
+exception or limitation to Copyright and Similar Rights that applies to Your
+use of the Licensed Material.
+
+g.	License Elements means the license attributes listed in the name of a Creative
+Commons Public License. The License Elements of this Public License are Attribution
+and ShareAlike.
+
+h.	Licensed Material means the artistic or literary work, database, or other
+material to which the Licensor applied this Public License.
+
+i.	Licensed Rights means the rights granted to You subject to the terms and
+conditions of this Public License, which are limited to all Copyright and
+Similar Rights that apply to Your use of the Licensed Material and that the
+Licensor has authority to license.
+
+j.	Licensor means the individual(s) or entity(ies) granting rights under this
+Public License.
+
+k.	Share means to provide material to the public by any means or process that
+requires permission under the Licensed Rights, such as reproduction, public
+display, public performance, distribution, dissemination, communication, or
+importation, and to make material available to the public including in ways
+that members of the public may access the material from a place and at a time
+individually chosen by them.
+
+l.	Sui Generis Database Rights means rights other than copyright resulting
+from Directive 96/9/EC of the European Parliament and of the Council of 11
+March 1996 on the legal protection of databases, as amended and/or succeeded,
+as well as other essentially equivalent rights anywhere in the world.
+
+m.	You means the individual or entity exercising the Licensed Rights under
+this Public License. Your has a corresponding meaning.
+
+Section 2 – Scope.
+
+     a.	License grant.
+
+1. Subject to the terms and conditions of this Public License, the Licensor
+hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive,
+irrevocable license to exercise the Licensed Rights in the Licensed Material
+to:
+
+A. reproduce and Share the Licensed Material, in whole or in part; and
+
+               B. produce, reproduce, and Share Adapted Material.
+
+2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions
+and Limitations apply to Your use, this Public License does not apply, and
+You do not need to comply with its terms and conditions.
+
+3. Term. The term of this Public License is specified in Section 6(a).
+
+4. Media and formats; technical modifications allowed. The Licensor authorizes
+You to exercise the Licensed Rights in all media and formats whether now known
+or hereafter created, and to make technical modifications necessary to do
+so. The Licensor waives and/or agrees not to assert any right or authority
+to forbid You from making technical modifications necessary to exercise the
+Licensed Rights, including technical modifications necessary to circumvent
+Effective Technological Measures. For purposes of this Public License, simply
+making modifications authorized by this Section 2(a)(4) never produces Adapted
+Material.
+
+          5. Downstream recipients.
+
+A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed
+Material automatically receives an offer from the Licensor to exercise the
+Licensed Rights under the terms and conditions of this Public License.
+
+B. Additional offer from the Licensor – Adapted Material. Every recipient
+of Adapted Material from You automatically receives an offer from the Licensor
+to exercise the Licensed Rights in the Adapted Material under the conditions
+of the Adapter’s License You apply.
+
+C. No downstream restrictions. You may not offer or impose any additional
+or different terms or conditions on, or apply any Effective Technological
+Measures to, the Licensed Material if doing so restricts exercise of the Licensed
+Rights by any recipient of the Licensed Material.
+
+6. No endorsement. Nothing in this Public License constitutes or may be construed
+as permission to assert or imply that You are, or that Your use of the Licensed
+Material is, connected with, or sponsored, endorsed, or granted official status
+by, the Licensor or others designated to receive attribution as provided in
+Section 3(a)(1)(A)(i).
+
+     b.	Other rights.
+
+1. Moral rights, such as the right of integrity, are not licensed under this
+Public License, nor are publicity, privacy, and/or other similar personality
+rights; however, to the extent possible, the Licensor waives and/or agrees
+not to assert any such rights held by the Licensor to the limited extent necessary
+to allow You to exercise the Licensed Rights, but not otherwise.
+
+2. Patent and trademark rights are not licensed under this Public License.
+
+3. To the extent possible, the Licensor waives any right to collect royalties
+from You for the exercise of the Licensed Rights, whether directly or through
+a collecting society under any voluntary or waivable statutory or compulsory
+licensing scheme. In all other cases the Licensor expressly reserves any right
+to collect such royalties.
+
+Section 3 – License Conditions.
+
+Your exercise of the Licensed Rights is expressly made subject to the following
+conditions.
+
+     a.	Attribution.
+
+1. If You Share the Licensed Material (including in modified form), You must:
+
+A. retain the following if it is supplied by the Licensor with the Licensed
+Material:
+
+i.	identification of the creator(s) of the Licensed Material and any others
+designated to receive attribution, in any reasonable manner requested by the
+Licensor (including by pseudonym if designated);
+
+                    ii.	a copyright notice;
+
+                    iii. a notice that refers to this Public License;
+
+                    iv.	a notice that refers to the disclaimer of warranties;
+
+v.	a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
+
+B. indicate if You modified the Licensed Material and retain an indication
+of any previous modifications; and
+
+C. indicate the Licensed Material is licensed under this Public License, and
+include the text of, or the URI or hyperlink to, this Public License.
+
+2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner
+based on the medium, means, and context in which You Share the Licensed Material.
+For example, it may be reasonable to satisfy the conditions by providing a
+URI or hyperlink to a resource that includes the required information.
+
+3. If requested by the Licensor, You must remove any of the information required
+by Section 3(a)(1)(A) to the extent reasonably practicable.
+
+b.	ShareAlike.In addition to the conditions in Section 3(a), if You Share
+Adapted Material You produce, the following conditions also apply.
+
+1. The Adapter’s License You apply must be a Creative Commons license with
+the same License Elements, this version or later, or a BY-SA Compatible License.
+
+2. You must include the text of, or the URI or hyperlink to, the Adapter's
+License You apply. You may satisfy this condition in any reasonable manner
+based on the medium, means, and context in which You Share Adapted Material.
+
+3. You may not offer or impose any additional or different terms or conditions
+on, or apply any Effective Technological Measures to, Adapted Material that
+restrict exercise of the rights granted under the Adapter's License You apply.
+
+Section 4 – Sui Generis Database Rights.
+
+Where the Licensed Rights include Sui Generis Database Rights that apply to
+Your use of the Licensed Material:
+
+a.	for the avoidance of doubt, Section 2(a)(1) grants You the right to extract,
+reuse, reproduce, and Share all or a substantial portion of the contents of
+the database;
+
+b.	if You include all or a substantial portion of the database contents in
+a database in which You have Sui Generis Database Rights, then the database
+in which You have Sui Generis Database Rights (but not its individual contents)
+is Adapted Material, including for purposes of Section 3(b); and
+
+c.	You must comply with the conditions in Section 3(a) if You Share all or
+a substantial portion of the contents of the database.
+For the avoidance of doubt, this Section 4 supplements and does not replace
+Your obligations under this Public License where the Licensed Rights include
+other Copyright and Similar Rights.
+
+Section 5 – Disclaimer of Warranties and Limitation of Liability.
+
+a.	Unless otherwise separately undertaken by the Licensor, to the extent possible,
+the Licensor offers the Licensed Material as-is and as-available, and makes
+no representations or warranties of any kind concerning the Licensed Material,
+whether express, implied, statutory, or other. This includes, without limitation,
+warranties of title, merchantability, fitness for a particular purpose, non-infringement,
+absence of latent or other defects, accuracy, or the presence or absence of
+errors, whether or not known or discoverable. Where disclaimers of warranties
+are not allowed in full or in part, this disclaimer may not apply to You.
+
+b.	To the extent possible, in no event will the Licensor be liable to You
+on any legal theory (including, without limitation, negligence) or otherwise
+for any direct, special, indirect, incidental, consequential, punitive, exemplary,
+or other losses, costs, expenses, or damages arising out of this Public License
+or use of the Licensed Material, even if the Licensor has been advised of
+the possibility of such losses, costs, expenses, or damages. Where a limitation
+of liability is not allowed in full or in part, this limitation may not apply
+to You.
+
+c.	The disclaimer of warranties and limitation of liability provided above
+shall be interpreted in a manner that, to the extent possible, most closely
+approximates an absolute disclaimer and waiver of all liability.
+
+Section 6 – Term and Termination.
+
+a.	This Public License applies for the term of the Copyright and Similar Rights
+licensed here. However, if You fail to comply with this Public License, then
+Your rights under this Public License terminate automatically.
+
+b.	Where Your right to use the Licensed Material has terminated under Section
+6(a), it reinstates:
+
+1. automatically as of the date the violation is cured, provided it is cured
+within 30 days of Your discovery of the violation; or
+
+          2. upon express reinstatement by the Licensor.
+
+c.	For the avoidance of doubt, this Section 6(b) does not affect any right
+the Licensor may have to seek remedies for Your violations of this Public
+License.
+
+d.	For the avoidance of doubt, the Licensor may also offer the Licensed Material
+under separate terms or conditions or stop distributing the Licensed Material
+at any time; however, doing so will not terminate this Public License.
+
+     e.	Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
+
+Section 7 – Other Terms and Conditions.
+
+a.	The Licensor shall not be bound by any additional or different terms or
+conditions communicated by You unless expressly agreed.
+
+b.	Any arrangements, understandings, or agreements regarding the Licensed
+Material not stated herein are separate from and independent of the terms
+and conditions of this Public License.
+
+Section 8 – Interpretation.
+
+a.	For the avoidance of doubt, this Public License does not, and shall not
+be interpreted to, reduce, limit, restrict, or impose conditions on any use
+of the Licensed Material that could lawfully be made without permission under
+this Public License.
+
+b.	To the extent possible, if any provision of this Public License is deemed
+unenforceable, it shall be automatically reformed to the minimum extent necessary
+to make it enforceable. If the provision cannot be reformed, it shall be severed
+from this Public License without affecting the enforceability of the remaining
+terms and conditions.
+
+c.	No term or condition of this Public License will be waived and no failure
+to comply consented to unless expressly agreed to by the Licensor.
+
+d.	Nothing in this Public License constitutes or may be interpreted as a limitation
+upon, or waiver of, any privileges and immunities that apply to the Licensor
+or You, including from the legal processes of any jurisdiction or authority.
+
+Creative Commons is not a party to its public licenses. Notwithstanding, Creative
+Commons may elect to apply one of its public licenses to material it publishes
+and in those instances will be considered the “Licensor.” Except for the limited
+purpose of indicating that material is shared under a Creative Commons public
+license or as otherwise permitted by the Creative Commons policies published
+at creativecommons.org/policies, Creative Commons does not authorize the use
+of the trademark “Creative Commons” or any other trademark or logo of Creative
+Commons without its prior written consent including, without limitation, in
+connection with any unauthorized modifications to any of its public licenses
+or any other arrangements, understandings, or agreements concerning use of
+licensed material. For the avoidance of doubt, this paragraph does not form
+part of the public licenses.
+
+Creative Commons may be contacted at creativecommons.org.
diff --git a/README.md b/README.md
index 6a3459d..446c46d 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,7 @@
-<!---
-  Copyright 2017, Data61
-  Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-  ABN 41 687 119 230.
+<!--
+     Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 
-  This software may be distributed and modified according to the terms of
-  the BSD 2-Clause license. Note that NO WARRANTY is provided.
-  See "LICENSE_BSD2.txt" for details.
-
-    @TAG(DATA61_BSD)
+     SPDX-License-Identifier: CC-BY-SA-4.0
 -->
 
 seL4 Libraries
@@ -28,9 +22,3 @@
 * libsel4utils: a library OS - Commonly used stuff, actively maintained: implements threads, processes, elf loading, virtual memory management etc.
 * libsel4vka: an allocation interface for seL4.
 * libsel4vspace: a virtual memory management interface for seL4.
-
-License
-========
-
-The files in this repository are release under standard open source licenses.
-Please see individual file headers and the `LICENSE_BSD2`.txt file for details.
diff --git a/libsel4allocman/CMakeLists.txt b/libsel4allocman/CMakeLists.txt
index face790..9ebbce7 100644
--- a/libsel4allocman/CMakeLists.txt
+++ b/libsel4allocman/CMakeLists.txt
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 cmake_minimum_required(VERSION 3.7.2)
diff --git a/libsel4allocman/LICENSE_BSD2.txt b/libsel4allocman/LICENSE_BSD2.txt
deleted file mode 100644
index 3c78ecf..0000000
--- a/libsel4allocman/LICENSE_BSD2.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Files described as being under the "BSD 2-Clause" license fall under the
-following license.
-
------------------------------------------------------------------------
-
-Copyright (c) 2017 Data61 and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. 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 AUTHOR 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 AUTHOR 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/libsel4allocman/README.md b/libsel4allocman/README.md
index 707547e..0589a62 100644
--- a/libsel4allocman/README.md
+++ b/libsel4allocman/README.md
@@ -1,13 +1,7 @@
-<!---
-  Copyright 2017, Data61
-  Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-  ABN 41 687 119 230.
+<!--
+     Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 
-  This software may be distributed and modified according to the terms of
-  the BSD 2-Clause license. Note that NO WARRANTY is provided.
-  See "LICENSE_BSD2.txt" for details.
-
-    @TAG(DATA61_BSD)
+     SPDX-License-Identifier: CC-BY-SA-4.0
 -->
 
 libsel4allocman
diff --git a/libsel4allocman/arch/arm/allocman/arch/reservation.h b/libsel4allocman/arch/arm/allocman/arch/reservation.h
index 628d0f3..8690f84 100644
--- a/libsel4allocman/arch/arm/allocman/arch/reservation.h
+++ b/libsel4allocman/arch/arm/allocman/arch/reservation.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/arch/riscv/allocman/arch/reservation.h b/libsel4allocman/arch/riscv/allocman/arch/reservation.h
index 78eeb7f..7e24173 100644
--- a/libsel4allocman/arch/riscv/allocman/arch/reservation.h
+++ b/libsel4allocman/arch/riscv/allocman/arch/reservation.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/arch/x86/allocman/arch/reservation.h b/libsel4allocman/arch/x86/allocman/arch/reservation.h
index 628d0f3..8690f84 100644
--- a/libsel4allocman/arch/x86/allocman/arch/reservation.h
+++ b/libsel4allocman/arch/x86/allocman/arch/reservation.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/example_bootstrap.c b/libsel4allocman/example_bootstrap.c
index 0d9c782..8c8ecd5 100644
--- a/libsel4allocman/example_bootstrap.c
+++ b/libsel4allocman/example_bootstrap.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4allocman/include/allocman/allocman.h b/libsel4allocman/include/allocman/allocman.h
index 09ffa34..b26ff85 100644
--- a/libsel4allocman/include/allocman/allocman.h
+++ b/libsel4allocman/include/allocman/allocman.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 /**
diff --git a/libsel4allocman/include/allocman/bootstrap.h b/libsel4allocman/include/allocman/bootstrap.h
index cade990..4013d2b 100644
--- a/libsel4allocman/include/allocman/bootstrap.h
+++ b/libsel4allocman/include/allocman/bootstrap.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 /**
diff --git a/libsel4allocman/include/allocman/cspace/cspace.h b/libsel4allocman/include/allocman/cspace/cspace.h
index 34147dc..cd0547e 100644
--- a/libsel4allocman/include/allocman/cspace/cspace.h
+++ b/libsel4allocman/include/allocman/cspace/cspace.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/cspace/simple1level.h b/libsel4allocman/include/allocman/cspace/simple1level.h
index 2a277a7..97a6d56 100644
--- a/libsel4allocman/include/allocman/cspace/simple1level.h
+++ b/libsel4allocman/include/allocman/cspace/simple1level.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/cspace/single_level.h b/libsel4allocman/include/allocman/cspace/single_level.h
index dc6e401..dd313d1 100644
--- a/libsel4allocman/include/allocman/cspace/single_level.h
+++ b/libsel4allocman/include/allocman/cspace/single_level.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/cspace/two_level.h b/libsel4allocman/include/allocman/cspace/two_level.h
index 0020c96..35ee02b 100644
--- a/libsel4allocman/include/allocman/cspace/two_level.h
+++ b/libsel4allocman/include/allocman/cspace/two_level.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/cspace/vka.h b/libsel4allocman/include/allocman/cspace/vka.h
index 7f2eb8a..208a8d6 100644
--- a/libsel4allocman/include/allocman/cspace/vka.h
+++ b/libsel4allocman/include/allocman/cspace/vka.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/cspaceops.h b/libsel4allocman/include/allocman/cspaceops.h
index 40dc4e6..e357cc1 100644
--- a/libsel4allocman/include/allocman/cspaceops.h
+++ b/libsel4allocman/include/allocman/cspaceops.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/mspace/dual_pool.h b/libsel4allocman/include/allocman/mspace/dual_pool.h
index 914cd20..c934645 100644
--- a/libsel4allocman/include/allocman/mspace/dual_pool.h
+++ b/libsel4allocman/include/allocman/mspace/dual_pool.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/mspace/fixed_pool.h b/libsel4allocman/include/allocman/mspace/fixed_pool.h
index b8b2f95..e327523 100644
--- a/libsel4allocman/include/allocman/mspace/fixed_pool.h
+++ b/libsel4allocman/include/allocman/mspace/fixed_pool.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/mspace/k_r_malloc.h b/libsel4allocman/include/allocman/mspace/k_r_malloc.h
index 56a73dc..66afe4c 100644
--- a/libsel4allocman/include/allocman/mspace/k_r_malloc.h
+++ b/libsel4allocman/include/allocman/mspace/k_r_malloc.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/mspace/malloc.h b/libsel4allocman/include/allocman/mspace/malloc.h
index bcc3618..603ead6 100644
--- a/libsel4allocman/include/allocman/mspace/malloc.h
+++ b/libsel4allocman/include/allocman/mspace/malloc.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/mspace/mspace.h b/libsel4allocman/include/allocman/mspace/mspace.h
index 1322551..f6297f5 100644
--- a/libsel4allocman/include/allocman/mspace/mspace.h
+++ b/libsel4allocman/include/allocman/mspace/mspace.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/mspace/null.h b/libsel4allocman/include/allocman/mspace/null.h
index 1d2955d..91e0c8d 100644
--- a/libsel4allocman/include/allocman/mspace/null.h
+++ b/libsel4allocman/include/allocman/mspace/null.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/mspace/virtual_pool.h b/libsel4allocman/include/allocman/mspace/virtual_pool.h
index 190321a..204e3be 100644
--- a/libsel4allocman/include/allocman/mspace/virtual_pool.h
+++ b/libsel4allocman/include/allocman/mspace/virtual_pool.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/mspace/vspace_pool.h b/libsel4allocman/include/allocman/mspace/vspace_pool.h
index e99ec85..e0ed37f 100644
--- a/libsel4allocman/include/allocman/mspace/vspace_pool.h
+++ b/libsel4allocman/include/allocman/mspace/vspace_pool.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/properties.h b/libsel4allocman/include/allocman/properties.h
index 839541c..ed40d26 100644
--- a/libsel4allocman/include/allocman/properties.h
+++ b/libsel4allocman/include/allocman/properties.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/util.h b/libsel4allocman/include/allocman/util.h
index ca744c1..403a057 100644
--- a/libsel4allocman/include/allocman/util.h
+++ b/libsel4allocman/include/allocman/util.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/utspace/split.h b/libsel4allocman/include/allocman/utspace/split.h
index adebf3d..a8453a3 100644
--- a/libsel4allocman/include/allocman/utspace/split.h
+++ b/libsel4allocman/include/allocman/utspace/split.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/utspace/twinkle.h b/libsel4allocman/include/allocman/utspace/twinkle.h
index d761033..6f42e34 100644
--- a/libsel4allocman/include/allocman/utspace/twinkle.h
+++ b/libsel4allocman/include/allocman/utspace/twinkle.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/utspace/utspace.h b/libsel4allocman/include/allocman/utspace/utspace.h
index 12261a5..8267944 100644
--- a/libsel4allocman/include/allocman/utspace/utspace.h
+++ b/libsel4allocman/include/allocman/utspace/utspace.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/utspace/vka.h b/libsel4allocman/include/allocman/utspace/vka.h
index 72624af..b5b4dff 100644
--- a/libsel4allocman/include/allocman/utspace/vka.h
+++ b/libsel4allocman/include/allocman/utspace/vka.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/include/allocman/vka.h b/libsel4allocman/include/allocman/vka.h
index cd891e4..c939967 100644
--- a/libsel4allocman/include/allocman/vka.h
+++ b/libsel4allocman/include/allocman/vka.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/sel4_arch/aarch32/allocman/sel4_arch/reservation.h b/libsel4allocman/sel4_arch/aarch32/allocman/sel4_arch/reservation.h
index 78eeb7f..7e24173 100644
--- a/libsel4allocman/sel4_arch/aarch32/allocman/sel4_arch/reservation.h
+++ b/libsel4allocman/sel4_arch/aarch32/allocman/sel4_arch/reservation.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/sel4_arch/aarch64/allocman/sel4_arch/reservation.h b/libsel4allocman/sel4_arch/aarch64/allocman/sel4_arch/reservation.h
index 5aadaa8..84eb2df 100644
--- a/libsel4allocman/sel4_arch/aarch64/allocman/sel4_arch/reservation.h
+++ b/libsel4allocman/sel4_arch/aarch64/allocman/sel4_arch/reservation.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/sel4_arch/ia32/allocman/sel4_arch/reservation.h b/libsel4allocman/sel4_arch/ia32/allocman/sel4_arch/reservation.h
index 78eeb7f..7e24173 100644
--- a/libsel4allocman/sel4_arch/ia32/allocman/sel4_arch/reservation.h
+++ b/libsel4allocman/sel4_arch/ia32/allocman/sel4_arch/reservation.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/sel4_arch/x86_64/allocman/sel4_arch/reservation.h b/libsel4allocman/sel4_arch/x86_64/allocman/sel4_arch/reservation.h
index 4d6beca..4403f7e 100644
--- a/libsel4allocman/sel4_arch/x86_64/allocman/sel4_arch/reservation.h
+++ b/libsel4allocman/sel4_arch/x86_64/allocman/sel4_arch/reservation.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4allocman/src/allocman.c b/libsel4allocman/src/allocman.c
index e33dadd..605679f 100644
--- a/libsel4allocman/src/allocman.c
+++ b/libsel4allocman/src/allocman.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <allocman/allocman.h>
diff --git a/libsel4allocman/src/bootstrap.c b/libsel4allocman/src/bootstrap.c
index 19ada80..d5660b7 100644
--- a/libsel4allocman/src/bootstrap.c
+++ b/libsel4allocman/src/bootstrap.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4allocman/src/cspace/simple1level.c b/libsel4allocman/src/cspace/simple1level.c
index 49f7af2..086e17a 100644
--- a/libsel4allocman/src/cspace/simple1level.c
+++ b/libsel4allocman/src/cspace/simple1level.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <allocman/cspace/simple1level.h>
diff --git a/libsel4allocman/src/cspace/single_level.c b/libsel4allocman/src/cspace/single_level.c
index 73c35f7..4e01305 100644
--- a/libsel4allocman/src/cspace/single_level.c
+++ b/libsel4allocman/src/cspace/single_level.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <allocman/cspace/single_level.h>
diff --git a/libsel4allocman/src/cspace/two_level.c b/libsel4allocman/src/cspace/two_level.c
index 8967322..65e1623 100644
--- a/libsel4allocman/src/cspace/two_level.c
+++ b/libsel4allocman/src/cspace/two_level.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <allocman/cspace/two_level.h>
diff --git a/libsel4allocman/src/mspace/dual_pool.c b/libsel4allocman/src/mspace/dual_pool.c
index ec2617d..c8e2445 100644
--- a/libsel4allocman/src/mspace/dual_pool.c
+++ b/libsel4allocman/src/mspace/dual_pool.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <allocman/mspace/dual_pool.h>
diff --git a/libsel4allocman/src/mspace/fixed_pool.c b/libsel4allocman/src/mspace/fixed_pool.c
index 2d7946d..fba354e 100644
--- a/libsel4allocman/src/mspace/fixed_pool.c
+++ b/libsel4allocman/src/mspace/fixed_pool.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <allocman/mspace/fixed_pool.h>
diff --git a/libsel4allocman/src/mspace/k_r_malloc.c b/libsel4allocman/src/mspace/k_r_malloc.c
index 9f81f8c..8fccaf6 100644
--- a/libsel4allocman/src/mspace/k_r_malloc.c
+++ b/libsel4allocman/src/mspace/k_r_malloc.c
@@ -1,6 +1,10 @@
-/* @LICENSE(CUSTOM) */
-
-/* An implementation of malloc as described in the K&R C programming book */
+/*
+ * An implementation of malloc as described in the K&R C programming book
+ *
+ * Copyright 2014, Data61, CSIRO (ABN 41 687 119 230)
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
 
 #include <allocman/mspace/k_r_malloc.h>
 #include <stddef.h> /* For NULL */
diff --git a/libsel4allocman/src/mspace/malloc.c b/libsel4allocman/src/mspace/malloc.c
index 8eff2ad..94de06a 100644
--- a/libsel4allocman/src/mspace/malloc.c
+++ b/libsel4allocman/src/mspace/malloc.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <allocman/mspace/malloc.h>
diff --git a/libsel4allocman/src/mspace/virtual_pool.c b/libsel4allocman/src/mspace/virtual_pool.c
index 4280aa1..0bccef9 100644
--- a/libsel4allocman/src/mspace/virtual_pool.c
+++ b/libsel4allocman/src/mspace/virtual_pool.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <allocman/mspace/virtual_pool.h>
diff --git a/libsel4allocman/src/mspace/vspace_pool.c b/libsel4allocman/src/mspace/vspace_pool.c
index 3537b6e..3524038 100644
--- a/libsel4allocman/src/mspace/vspace_pool.c
+++ b/libsel4allocman/src/mspace/vspace_pool.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <allocman/mspace/vspace_pool.h>
diff --git a/libsel4allocman/src/utspace/split.c b/libsel4allocman/src/utspace/split.c
index 5eec0d1..141d0f6 100644
--- a/libsel4allocman/src/utspace/split.c
+++ b/libsel4allocman/src/utspace/split.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4allocman/src/utspace/twinkle.c b/libsel4allocman/src/utspace/twinkle.c
index 1068093..a4458ba 100644
--- a/libsel4allocman/src/utspace/twinkle.c
+++ b/libsel4allocman/src/utspace/twinkle.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4allocman/src/vka.c b/libsel4allocman/src/vka.c
index dce1252..f3337b7 100644
--- a/libsel4allocman/src/vka.c
+++ b/libsel4allocman/src/vka.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <allocman/allocman.h>
diff --git a/libsel4bench/CMakeLists.txt b/libsel4bench/CMakeLists.txt
index c932b33..fb3f275 100644
--- a/libsel4bench/CMakeLists.txt
+++ b/libsel4bench/CMakeLists.txt
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 cmake_minimum_required(VERSION 3.7.2)
diff --git a/libsel4bench/LICENSE_BSD2.txt b/libsel4bench/LICENSE_BSD2.txt
deleted file mode 100644
index 3c78ecf..0000000
--- a/libsel4bench/LICENSE_BSD2.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Files described as being under the "BSD 2-Clause" license fall under the
-following license.
-
------------------------------------------------------------------------
-
-Copyright (c) 2017 Data61 and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. 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 AUTHOR 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 AUTHOR 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/libsel4bench/arch_include/arm/armv/armv6/sel4bench/armv/sel4bench.h b/libsel4bench/arch_include/arm/armv/armv6/sel4bench/armv/sel4bench.h
deleted file mode 100644
index 416d077..0000000
--- a/libsel4bench/arch_include/arm/armv/armv6/sel4bench/armv/sel4bench.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
- *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
- */
-#pragma once
-
-#include <sel4bench/cpu/sel4bench.h>
-
-#define SEL4BENCH_READ_CCNT(var) do { \
-    asm volatile("b 2f\n\
-                1:mrc p15, 0, %[counter], c15, c12," SEL4BENCH_ARM1136_COUNTER_CCNT "\n\
-                  bx lr\n\
-                2:sub r8, pc, #16\n\
-                  .word 0xe7f000f0" \
-        : [counter] "=r"(var) \
-        : \
-        : "r8", "lr"); \
-} while(0)
diff --git a/libsel4bench/arch_include/arm/armv/armv7-a/sel4bench/armv/events.h b/libsel4bench/arch_include/arm/armv/armv7-a/sel4bench/armv/events.h
index 9be2662..3eac73b 100644
--- a/libsel4bench/arch_include/arm/armv/armv7-a/sel4bench/armv/events.h
+++ b/libsel4bench/arch_include/arm/armv/armv7-a/sel4bench/armv/events.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 //event definitions
diff --git a/libsel4bench/arch_include/arm/armv/armv7-a/sel4bench/armv/private.h b/libsel4bench/arch_include/arm/armv/armv7-a/sel4bench/armv/private.h
index 28ac259..111cd77 100644
--- a/libsel4bench/arch_include/arm/armv/armv7-a/sel4bench/armv/private.h
+++ b/libsel4bench/arch_include/arm/armv/armv7-a/sel4bench/armv/private.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4bench/arch_include/arm/armv/armv7-a/sel4bench/armv/sel4bench.h b/libsel4bench/arch_include/arm/armv/armv7-a/sel4bench/armv/sel4bench.h
index f5926ac..7945b94 100644
--- a/libsel4bench/arch_include/arm/armv/armv7-a/sel4bench/armv/sel4bench.h
+++ b/libsel4bench/arch_include/arm/armv/armv7-a/sel4bench/armv/sel4bench.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4bench/arch_include/arm/armv/armv8-a/sel4bench/armv/events.h b/libsel4bench/arch_include/arm/armv/armv8-a/sel4bench/armv/events.h
index db80b2b..1567448 100644
--- a/libsel4bench/arch_include/arm/armv/armv8-a/sel4bench/armv/events.h
+++ b/libsel4bench/arch_include/arm/armv/armv8-a/sel4bench/armv/events.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4bench/arch_include/arm/armv/armv8-a/sel4bench/armv/private.h b/libsel4bench/arch_include/arm/armv/armv8-a/sel4bench/armv/private.h
index 74318fd..29d006b 100644
--- a/libsel4bench/arch_include/arm/armv/armv8-a/sel4bench/armv/private.h
+++ b/libsel4bench/arch_include/arm/armv/armv8-a/sel4bench/armv/private.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4bench/arch_include/arm/armv/armv8-a/sel4bench/armv/sel4bench.h b/libsel4bench/arch_include/arm/armv/armv8-a/sel4bench/armv/sel4bench.h
index 09cfdfa..f438b9a 100644
--- a/libsel4bench/arch_include/arm/armv/armv8-a/sel4bench/armv/sel4bench.h
+++ b/libsel4bench/arch_include/arm/armv/armv8-a/sel4bench/armv/sel4bench.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
@@ -83,12 +77,7 @@
 static FASTFN ccnt_t sel4bench_get_cycle_count()
 {
     ccnt_t val;
-    uint32_t enable_word = sel4bench_private_read_cntens(); //store running state
-
-    sel4bench_private_write_cntenc(BIT(SEL4BENCH_ARMV8A_COUNTER_CCNT)); //stop CCNT
     SEL4BENCH_READ_CCNT(val); //read its value
-    sel4bench_private_write_cntens(enable_word); //start it again if it was running
-
     return val;
 }
 
diff --git a/libsel4bench/arch_include/arm/cpu/arm1136jf-s/sel4bench/cpu/events.h b/libsel4bench/arch_include/arm/cpu/arm1136jf-s/sel4bench/cpu/events.h
deleted file mode 100644
index bef92b8..0000000
--- a/libsel4bench/arch_include/arm/cpu/arm1136jf-s/sel4bench/cpu/events.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
- *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
- */
-#pragma once
-//event definitions
-
-/* generic events */
-#define SEL4BENCH_EVENT_CACHE_L1I_MISS          0x00
-#define SEL4BENCH_EVENT_CACHE_L1D_MISS          0x0B
-#define SEL4BENCH_EVENT_TLB_L1I_MISS            0x03
-#define SEL4BENCH_EVENT_TLB_L1D_MISS            0x04
-#define SEL4BENCH_EVENT_MEMORY_ACCESS           0x10
-#define SEL4BENCH_EVENT_EXECUTE_INSTRUCTION     0x07
-#define SEL4BENCH_EVENT_BRANCH_MISPREDICT       0x06
-
-/* specific events */
-#define SEL4BENCH_EVENT_STALL_INSTRUCTION       0x01
-#define SEL4BENCH_EVENT_STALL_DATA              0x02
-#define SEL4BENCH_EVENT_EXECUTE_BRANCH          0x05
-#define SEL4BENCH_EVENT_CACHE_L1D_HIT           0x09
-#define SEL4BENCH_EVENT_CACHE_L1D_ACCESS        0x0A
-#define SEL4BENCH_EVENT_CACHE_L1D_WRITEBACK_HL  0x0C
-#define SEL4BENCH_EVENT_SOFTWARE_PC_CHANGE      0x0D
-#define SEL4BENCH_EVENT_TLB_L2_MISS             0x0F
-#define SEL4BENCH_EVENT_STALL_LSU_BUSY          0x11
-#define SEL4BENCH_EVENT_WRITE_BUFFER_DRAIN      0x12
-#define SEL4BENCH_EVENT_ETMEXTOUT_0             0x20
-#define SEL4BENCH_EVENT_ETMEXTOUT_1             0x21
-#define SEL4BENCH_EVENT_ETMEXTOUT               0x22
-#define SEL4BENCH_EVENT_CCNT                    0xFF
diff --git a/libsel4bench/arch_include/arm/cpu/arm1136jf-s/sel4bench/cpu/private.h b/libsel4bench/arch_include/arm/cpu/arm1136jf-s/sel4bench/cpu/private.h
deleted file mode 100644
index bb0a81a..0000000
--- a/libsel4bench/arch_include/arm/cpu/arm1136jf-s/sel4bench/cpu/private.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
- *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
- */
-#pragma once
-
-#include <stdint.h>
-#include <sel4bench/cpu/events.h>
-
-//function attributes
-//functions that need to be forced inline
-#define FASTFN inline __attribute__((always_inline))
-
-//functions that must not cache miss
-#define CACHESENSFN __attribute__((noinline, aligned(32)))
-
-//functions that will be called through pointers, but need to be fast
-#define KERNELFN __attribute__((noinline, flatten))
-
-//counters and related constants
-#define SEL4BENCH_ARM1136_NUM_COUNTERS 2
-
-#define SEL4BENCH_ARM1136_COUNTER_CCNT "1"
-#define SEL4BENCH_ARM1136_COUNTER_PMN0 "2"
-#define SEL4BENCH_ARM1136_COUNTER_PMN1 "3"
-
-/*
- * PMNC: ARM1136 Performance Monitor Control Register
- *
- *  bits 31:28 = SBZ
- *  bits 27:20 = EvtCount1 = event monitored by counter 1
- *  bits 19:12 = EvtCount2 = event monitored by counter 2
- *  bit     11 = X         = export events to ETM
- *  bits 10: 8 = Flag      = read: determines if C0 (bit 8)/
- *                                 C1 (bit 9)/CCNT (bit 10)
- *                                 overflowed
- *                           write: clears overflow flag
- *  bit      7 = SBZ
- *  bits  6: 4 = IntEn     = Enable interrupt reporting for
- *                           C0 (bit 4)/C1 (bit 5)/CCNT (bit 6)
- *  bit      3 = D         = cycle counter divides by 64
- *  bit      2 = C         = write 1 to reset CCNT to zero
- *  bit      1 = P         = write 1 to reset C0 and C1 to zero
- *  bit      0 = E         = enable all three counters
- */
-typedef union {
-    struct {
-        uint32_t E         : 1;
-        uint32_t P         : 1;
-        uint32_t C         : 1;
-        uint32_t D         : 1;
-        uint32_t IntEn     : 3;
-        uint32_t SBZ1      : 1;
-        uint32_t Flag      : 3;
-        uint32_t X         : 1;
-        uint32_t EvtCount2 : 8;
-        uint32_t EvtCount1 : 8;
-        uint32_t SBZ2      : 4;
-    };
-    uint32_t raw;
-} sel4bench_arm1136_pmnc_t;
-
-static CACHESENSFN void sel4bench_private_set_pmnc(sel4bench_arm1136_pmnc_t val)
-{
-    /*
-     * The ARM1136 has a 3-cycle delay between changing the PMNC and the
-     * counters reacting. So we insert 3 nops to cover for that. Aligning on a
-     * cache line boundary guarantees that the nops won't cause anything
-     * interesting to happen.
-     */
-    asm volatile (
-        "mcr p15, 0, %0, c15, c12, 0;"
-        "nop;"
-        "nop;"
-        "nop;"
-        :
-        : "r"(val.raw)
-    );
-}
-static FASTFN sel4bench_arm1136_pmnc_t sel4bench_private_get_pmnc(void)
-{
-    sel4bench_arm1136_pmnc_t val;
-    asm volatile (
-        "mrc p15, 0, %0, c15, c12, 0"
-        : "=r"(val.raw)
-        :
-    );
-    return val;
-}
-
-/*
- * CCNT: cycle counter
- */
-static FASTFN uint32_t sel4bench_private_get_ccnt()
-{
-    uint32_t val;
-    asm volatile (
-        "mrc p15, 0, %0, c15, c12," SEL4BENCH_ARM1136_COUNTER_CCNT
-        : "=r"(val)
-    );
-    return val;
-}
-
-/*
- * PMN0: event count 0
- */
-static FASTFN uint32_t sel4bench_private_get_pmn0()
-{
-    uint32_t val;
-    asm volatile (
-        "mrc p15, 0, %0, c15, c12,"SEL4BENCH_ARM1136_COUNTER_PMN0
-        : "=r"(val)
-    );
-    return val;
-}
-static FASTFN void sel4bench_private_set_pmn0(uint32_t val)
-{
-    asm volatile (
-        "mcr p15, 0, %0, c15, c12,"SEL4BENCH_ARM1136_COUNTER_PMN0
-        : "=r"(val)
-    );
-}
-
-/*
- * PMN1: event count 1
- */
-static FASTFN uint32_t sel4bench_private_get_pmn1()
-{
-    uint32_t val;
-    asm volatile (
-        "mrc p15, 0, %0, c15, c12,"SEL4BENCH_ARM1136_COUNTER_PMN1
-        : "=r"(val)
-    );
-    return val;
-}
-static FASTFN void sel4bench_private_set_pmn1(uint32_t val)
-{
-    asm volatile (
-        "mcr p15, 0, %0, c15, c12,"SEL4BENCH_ARM1136_COUNTER_PMN1
-        : "=r"(val)
-    );
-}
diff --git a/libsel4bench/arch_include/arm/cpu/arm1136jf-s/sel4bench/cpu/sel4bench.h b/libsel4bench/arch_include/arm/cpu/arm1136jf-s/sel4bench/cpu/sel4bench.h
deleted file mode 100644
index d66bc1e..0000000
--- a/libsel4bench/arch_include/arm/cpu/arm1136jf-s/sel4bench/cpu/sel4bench.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
- *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
- */
-#pragma once
-
-#include <sel4bench/types.h>
-#include <sel4bench/cpu/private.h>
-#include <assert.h>
-#include <sel4/sel4.h>
-
-//begin system-mode stubs for sel4bench_* api functions
-static KERNELFN void sel4bench_private_init(void* data)
-{
-    sel4bench_arm1136_pmnc_t init_pmnc = {
-        {
-            .C = 1, //reset CCNT
-            .P = 1, //reset performance counters
-            .Flag = 0x7, //reset overflow flags
-            .E = 1, //start all counters
-        }
-    };
-
-    //reset and enable all counters
-    sel4bench_private_set_pmnc(init_pmnc);
-}
-
-static KERNELFN void sel4bench_private_destroy(void* data)
-{
-    sel4bench_arm1136_pmnc_t kill_pmnc = {
-        {
-            .C = 1, //reset CCNT
-            .P = 1, //reset performance counters
-            .Flag = 0x7, //reset overflow flags
-            .E = 0, //stop all counters
-        }
-    };
-
-    //disable and reset all counters
-    sel4bench_private_set_pmnc(kill_pmnc);
-}
-
-static KERNELFN void sel4bench_private_reset_gp_counters(void* data)
-{
-    sel4bench_arm1136_pmnc_t reset_pmnc = sel4bench_private_get_pmnc();
-    reset_pmnc.P = 1; //reset performance counters
-    reset_pmnc.Flag = 0x3; //clear overflow flags on C0 and C1
-    reset_pmnc.C = 0; //don't touch CCNT
-    reset_pmnc.SBZ1 = 0; //per spec
-    reset_pmnc.SBZ2 = 0; //per spec
-
-    //reset and enable all counters
-    sel4bench_private_set_pmnc(reset_pmnc);
-}
-
-static KERNELFN void sel4bench_private_get_cycle_count(void* data)
-{
-    //get contents of PMNC
-    sel4bench_arm1136_pmnc_t pmnc_contents = sel4bench_private_get_pmnc();
-    pmnc_contents.Flag = 0; //don't reset anything
-    pmnc_contents.SBZ1 = 0; //per spec
-    pmnc_contents.SBZ2 = 0; //per spec
-
-    //store current state
-    sel4bench_arm1136_pmnc_t pmnc_contents_restore = pmnc_contents;
-
-    //disable counters
-    pmnc_contents.E = 0;
-    sel4bench_private_set_pmnc(pmnc_contents);
-
-    //read value of specified counter
-    *(uint32_t*)data = sel4bench_private_get_ccnt();
-
-    //restore previous state
-    sel4bench_private_set_pmnc(pmnc_contents_restore);
-}
-
-static KERNELFN void sel4bench_private_get_counter(void* data)
-{
-    //get contents of PMNC
-    sel4bench_arm1136_pmnc_t pmnc_contents = sel4bench_private_get_pmnc();
-    pmnc_contents.Flag = 0; //don't reset anything
-    pmnc_contents.SBZ1 = 0; //per spec
-    pmnc_contents.SBZ2 = 0; //per spec
-
-    //store current state
-    sel4bench_arm1136_pmnc_t pmnc_contents_restore = pmnc_contents;
-
-    //disable counters
-    pmnc_contents.E = 0;
-    sel4bench_private_set_pmnc(pmnc_contents);
-
-    //read value of specified counter
-    *(uint32_t*)data = *(uint32_t*)data ? sel4bench_private_get_pmn1() : sel4bench_private_get_pmn0();
-
-    //restore previous state
-    sel4bench_private_set_pmnc(pmnc_contents_restore);
-}
-
-static KERNELFN void sel4bench_private_get_counters(void* data)
-{
-    //get contents of PMNC
-    sel4bench_arm1136_pmnc_t pmnc_contents = sel4bench_private_get_pmnc();
-    pmnc_contents.Flag = 0; //don't reset anything
-    pmnc_contents.SBZ1 = 0; //per spec
-    pmnc_contents.SBZ2 = 0; //per spec
-
-    //store current state
-    sel4bench_arm1136_pmnc_t pmnc_contents_restore = pmnc_contents;
-
-    //disable counters
-    pmnc_contents.E = 0;
-    sel4bench_private_set_pmnc(pmnc_contents);
-
-    uint32_t* args = (uint32_t*)data;
-    uint32_t mask = args[0];
-    ccnt_t* values = (ccnt_t*)args[1];
-
-    //read value of specified counters
-    if (mask & 1) {
-        values[0] = sel4bench_private_get_pmn0();
-    }
-    if (mask & 2) {
-        values[1] = sel4bench_private_get_pmn1();
-    }
-
-    //read CCNT
-    args[0] = sel4bench_private_get_ccnt();
-
-    //restore previous state
-    sel4bench_private_set_pmnc(pmnc_contents_restore);
-}
-
-static KERNELFN void sel4bench_private_set_count_event(void* data)
-{
-    //bring in arguments
-    uint32_t counter = ((uint32_t)data) >> 31;
-    uint32_t event = ((uint32_t)data) & ~(1U << 31);
-
-    //get contents of PMNC
-    sel4bench_arm1136_pmnc_t pmnc_contents = sel4bench_private_get_pmnc();
-    pmnc_contents.Flag = 0; //don't reset anything
-    pmnc_contents.SBZ1 = 0; //per spec
-    pmnc_contents.SBZ2 = 0; //per spec
-
-    //store current state
-    sel4bench_arm1136_pmnc_t pmnc_contents_restore = pmnc_contents;
-
-    //stop counters
-    pmnc_contents.E = 0;
-    sel4bench_private_set_pmnc(pmnc_contents);
-
-    //setup specified counter
-    if (counter) {
-        //setting counter 1
-        pmnc_contents_restore.EvtCount2 = event;
-        sel4bench_private_set_pmn1(0);
-    } else {
-        //setting counter 0
-        pmnc_contents_restore.EvtCount1 = event;
-        sel4bench_private_set_pmn0(0);
-
-    }
-
-    //restore previous state
-    sel4bench_private_set_pmnc(pmnc_contents_restore);
-}
-
-/* Silence warnings about including the following functions when seL4_DebugRun
- * is not enabled when we are not calling them. If we actually call these
- * functions without seL4_DebugRun enabled, we'll get a link failure, so this
- * should be OK.
- */
-void seL4_DebugRun(void (* userfn) (void *), void* userarg);
-
-//begin actual sel4bench_* api functions
-
-static FASTFN void sel4bench_init()
-{
-    seL4_DebugRun(&sel4bench_private_init, NULL);
-}
-
-static FASTFN void sel4bench_destroy()
-{
-    seL4_DebugRun(&sel4bench_private_destroy, NULL);
-}
-
-static FASTFN seL4_Word sel4bench_get_num_counters()
-{
-    return SEL4BENCH_ARM1136_NUM_COUNTERS;
-}
-
-static FASTFN ccnt_t sel4bench_get_cycle_count()
-{
-    uint32_t val = 0;
-    seL4_DebugRun(&sel4bench_private_get_cycle_count, &val);
-    return val;
-}
-
-static FASTFN ccnt_t sel4bench_get_counter(counter_t counter)
-{
-    assert(counter < sel4bench_get_num_counters()); //range check
-
-    uint32_t val = counter;
-    seL4_DebugRun(&sel4bench_private_get_counter, &val);
-    return val;
-}
-
-static FASTFN ccnt_t sel4bench_get_counters(counter_bitfield_t mask, ccnt_t* values)
-{
-    assert(mask & (sel4bench_get_num_counters() - 1)); //there are only two counters, so there should be no other 1 bits
-    assert(values);                                        //NULL guard -- because otherwise we'll get a kernel fault
-
-    uint32_t args[2] = {mask, (uint32_t)values};
-    //entry 0: in = mask, out = ccnt
-    //entry 1: in = values
-    seL4_DebugRun(&sel4bench_private_get_counters, args);
-    return args[0];
-}
-
-static FASTFN void sel4bench_set_count_event(counter_t counter, event_id_t event)
-{
-    assert(counter < sel4bench_get_num_counters()); //range check
-
-    seL4_DebugRun(&sel4bench_private_set_count_event, (void*)(event | ((counter & 1U) << 31)));
-}
-
-static FASTFN void sel4bench_stop_counters(counter_bitfield_t mask)
-{
-    /* all three ARM1136 counters have to start at the same time...
-     * so we just start them all at init time and make this a no-op
-     */
-}
-
-static FASTFN void sel4bench_reset_counters(void)
-{
-    seL4_DebugRun(&sel4bench_private_reset_gp_counters, NULL);
-}
-
-static FASTFN void sel4bench_start_counters(counter_bitfield_t mask)
-{
-    /* all three ARM1136 counters have to start at the same time...
-     * so we just start them all at init time and make this reset them
-     */
-    sel4bench_reset_counters();
-}
diff --git a/libsel4bench/arch_include/arm/cpu/cortex-a15/sel4bench/cpu/events.h b/libsel4bench/arch_include/arm/cpu/cortex-a15/sel4bench/cpu/events.h
index 40616b0..5f278e8 100644
--- a/libsel4bench/arch_include/arm/cpu/cortex-a15/sel4bench/cpu/events.h
+++ b/libsel4bench/arch_include/arm/cpu/cortex-a15/sel4bench/cpu/events.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 /*
diff --git a/libsel4bench/arch_include/arm/cpu/cortex-a35/sel4bench/cpu/events.h b/libsel4bench/arch_include/arm/cpu/cortex-a35/sel4bench/cpu/events.h
new file mode 100644
index 0000000..972f935
--- /dev/null
+++ b/libsel4bench/arch_include/arm/cpu/cortex-a35/sel4bench/cpu/events.h
@@ -0,0 +1,14 @@
+/*
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+/*
+ * Values from Cortex-A35 TRM. Table C2-3.
+ */
+#pragma once
+#define SEL4BENCH_EVENT_BUS_ACCESS_LD         0x60
+#define SEL4BENCH_EVENT_BUS_ACCESS_ST         0x61
+#define SEL4BENCH_EVENT_BR_INDIRECT_SPEC      0x7A
+#define SEL4BENCH_EVENT_EXC_IRQ               0x86
+#define SEL4BENCH_EVENT_EXC_FIQ               0x87
diff --git a/libsel4bench/arch_include/arm/cpu/cortex-a53/sel4bench/cpu/events.h b/libsel4bench/arch_include/arm/cpu/cortex-a53/sel4bench/cpu/events.h
index 8a22105..afd25ea 100644
--- a/libsel4bench/arch_include/arm/cpu/cortex-a53/sel4bench/cpu/events.h
+++ b/libsel4bench/arch_include/arm/cpu/cortex-a53/sel4bench/cpu/events.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 #define SEL4BENCH_EVENT_BUS_ACCESS_LD         0x60
diff --git a/libsel4bench/arch_include/arm/cpu/cortex-a57/sel4bench/cpu/events.h b/libsel4bench/arch_include/arm/cpu/cortex-a57/sel4bench/cpu/events.h
index 8a22105..afd25ea 100644
--- a/libsel4bench/arch_include/arm/cpu/cortex-a57/sel4bench/cpu/events.h
+++ b/libsel4bench/arch_include/arm/cpu/cortex-a57/sel4bench/cpu/events.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 #define SEL4BENCH_EVENT_BUS_ACCESS_LD         0x60
diff --git a/libsel4bench/arch_include/arm/cpu/cortex-a72/sel4bench/cpu/events.h b/libsel4bench/arch_include/arm/cpu/cortex-a72/sel4bench/cpu/events.h
new file mode 100644
index 0000000..0f3b6ab
--- /dev/null
+++ b/libsel4bench/arch_include/arm/cpu/cortex-a72/sel4bench/cpu/events.h
@@ -0,0 +1,26 @@
+/*
+ * ARM Cortex-A72 performance monitoring events
+ *
+ * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
+ * Copyright 2021, HENSOLDT Cyber GmbH
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#pragma once
+
+// Events are defined in the Cortex-A72 TRM. Most recent version as of today is
+// "ARM 100095_0003_06_en" (2016-Dec-01, "Second release for r0p3"),
+// section 11.8 "Performance Monitor Unit", "Events". The definitions for the
+// Cortex-A72 core are aligned with the ARM Architecture Reference Manual for
+// ARMv8. Most recent version as of today is "ARM DDI 0487G.a" (2021-Jan-22,
+// "Initial Armv8.7 EAC release"). See section K3.1 "Arm recommendations for
+// IMPLEMENTATION DEFINED event numbers"
+
+#define SEL4BENCH_EVENT_BUS_ACCESS_LD         0x60
+#define SEL4BENCH_EVENT_BUS_ACCESS_ST         0x61
+
+#define SEL4BENCH_EVENT_BR_INDIRECT_SPEC      0x7A
+
+#define SEL4BENCH_EVENT_EXC_IRQ               0x86
+#define SEL4BENCH_EVENT_EXC_FIQ               0x87
diff --git a/libsel4bench/arch_include/arm/cpu/cortex-a8/sel4bench/cpu/events.h b/libsel4bench/arch_include/arm/cpu/cortex-a8/sel4bench/cpu/events.h
index aa08bfd..91ad306 100644
--- a/libsel4bench/arch_include/arm/cpu/cortex-a8/sel4bench/cpu/events.h
+++ b/libsel4bench/arch_include/arm/cpu/cortex-a8/sel4bench/cpu/events.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 //event definitions
diff --git a/libsel4bench/arch_include/arm/cpu/cortex-a9/sel4bench/cpu/events.h b/libsel4bench/arch_include/arm/cpu/cortex-a9/sel4bench/cpu/events.h
index 98a656a..1d6ce8f 100644
--- a/libsel4bench/arch_include/arm/cpu/cortex-a9/sel4bench/cpu/events.h
+++ b/libsel4bench/arch_include/arm/cpu/cortex-a9/sel4bench/cpu/events.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 /*
diff --git a/libsel4bench/arch_include/arm/sel4bench/arch/sel4bench.h b/libsel4bench/arch_include/arm/sel4bench/arch/sel4bench.h
index 5a9856a..4346be9 100644
--- a/libsel4bench/arch_include/arm/sel4bench/arch/sel4bench.h
+++ b/libsel4bench/arch_include/arm/sel4bench/arch/sel4bench.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4bench/arch_include/riscv/sel4bench/arch/sel4bench.h b/libsel4bench/arch_include/riscv/sel4bench/arch/sel4bench.h
index 9882aa0..f42b54b 100644
--- a/libsel4bench/arch_include/riscv/sel4bench/arch/sel4bench.h
+++ b/libsel4bench/arch_include/riscv/sel4bench/arch/sel4bench.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2020, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
@@ -20,18 +14,19 @@
 #define FASTFN inline __attribute__((always_inline))
 
 #if __riscv_xlen == 32
-#define SEL4BENCH_READ_CCNT(var) {              \
-    uint32_t nH1, nL, nH2; \
-    asm volatile("rdcycleh %0\n" \
-                 "rdcycle %1\n" \
-                 "rdcycleh %2\n" \
-                 : "=r"(nH1), "=r"(nL), "=r"(nH2)); \
-    if (nH1 < nH2) { \
-      asm volatile("rdcycle %0" : "=r"(nL));    \
-        nH1 = nH2; \
-    } \
-    var = ((uint64_t)((uint64_t) nH1 << 32 | (nL))); \
-    }
+#define SEL4BENCH_READ_CCNT(var) \
+    do { \
+        uint32_t nH1, nL, nH2; \
+        asm volatile("rdcycleh %0\n" \
+                    "rdcycle %1\n" \
+                    "rdcycleh %2\n" \
+                    : "=r"(nH1), "=r"(nL), "=r"(nH2)); \
+        if (nH1 < nH2) { \
+            asm volatile("rdcycle %0" : "=r"(nL)); \
+            nH1 = nH2; \
+        } \
+        var = ((uint64_t)nH1 << 32) | nL; \
+    } while(0)
 #else
 #define SEL4BENCH_READ_CCNT(var) \
     asm volatile("rdcycle %0" :"=r"(var));
@@ -42,18 +37,19 @@
 } while(0)
 
 #if __riscv_xlen == 32
-#define SEL4BENCH_READ_PCNT(idx, var) {         \
-    uint32_t nH1, nL, nH2; \
-    asm volatile("csrr %0, hpmcounterh" #idx \
-                 "csrr %1, hpmcounter" #idx \
-                 "csrr %2, hpmcounterh" #idx \
-                 : "=r"(nH1), "=r"(nL), "=r"(nH2)); \
-    if (nH1 < nH2) { \
-      asm volatile("csrr %0, hpmcounter" #idx : "=r"(nL));  \
-      nH1 = nH2;                                            \
-    } \
-      var = ((uint64_t)((uint64_t) nH1 << 32 | (nL))); \
-      }
+#define SEL4BENCH_READ_PCNT(idx, var) \
+    do { \
+        uint32_t nH1, nL, nH2; \
+        asm volatile("csrr %0, hpmcounterh" #idx \
+                    "csrr %1, hpmcounter" #idx \
+                    "csrr %2, hpmcounterh" #idx \
+                    : "=r"(nH1), "=r"(nL), "=r"(nH2)); \
+        if (nH1 < nH2) { \
+            asm volatile("csrr %0, hpmcounter" #idx : "=r"(nL)); \
+            nH1 = nH2; \
+        } \
+        var = ((uint64_t)nH1 << 32) | nL; \
+    } while(0)
 #else
 #define SEL4BENCH_READ_PCNT(idx, var) \
     asm volatile("csrr %0, hpmcounter" #idx : "=r"(var));
diff --git a/libsel4bench/arch_include/x86/sel4bench/arch/events.h b/libsel4bench/arch_include/x86/sel4bench/arch/events.h
index d31b710..0d0664f 100644
--- a/libsel4bench/arch_include/x86/sel4bench/arch/events.h
+++ b/libsel4bench/arch_include/x86/sel4bench/arch/events.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4bench/arch_include/x86/sel4bench/arch/private.h b/libsel4bench/arch_include/x86/sel4bench/arch/private.h
index 1206185..7b1c622 100644
--- a/libsel4bench/arch_include/x86/sel4bench/arch/private.h
+++ b/libsel4bench/arch_include/x86/sel4bench/arch/private.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4bench/arch_include/x86/sel4bench/arch/sel4bench.h b/libsel4bench/arch_include/x86/sel4bench/arch/sel4bench.h
index e32a814..858c5a5 100644
--- a/libsel4bench/arch_include/x86/sel4bench/arch/sel4bench.h
+++ b/libsel4bench/arch_include/x86/sel4bench/arch/sel4bench.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4bench/include/sel4bench/kernel_logging.h b/libsel4bench/include/sel4bench/kernel_logging.h
index faa72ad..d5e8b1e 100644
--- a/libsel4bench/include/sel4bench/kernel_logging.h
+++ b/libsel4bench/include/sel4bench/kernel_logging.h
@@ -1,17 +1,12 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
 
+#include <sel4/config.h>
 #include <sel4/types.h>
 #include <sel4/arch/constants.h>
 #include <sel4/simple_types.h>
@@ -33,8 +28,7 @@
 unsigned int kernel_logging_sync_log(kernel_log_entry_t log[], unsigned int n);
 
 /* Returns the key field of a log entry. */
-static inline seL4_Word
-kernel_logging_entry_get_key(kernel_log_entry_t *entry)
+static inline seL4_Word kernel_logging_entry_get_key(kernel_log_entry_t *entry)
 {
 #if CONFIG_MAX_NUM_TRACE_POINTS > 0
     return entry->id;
@@ -44,8 +38,7 @@
 }
 
 /* Sets the key field of a log entry to a given value. */
-static inline void
-kernel_logging_entry_set_key(kernel_log_entry_t *entry, seL4_Word key)
+static inline void kernel_logging_entry_set_key(kernel_log_entry_t *entry, seL4_Word key)
 {
 #if CONFIG_MAX_NUM_TRACE_POINTS > 0
     entry->id = key;
@@ -53,8 +46,7 @@
 }
 
 /* Returns the data field of a log entry. */
-static inline seL4_Word
-kernel_logging_entry_get_data(kernel_log_entry_t *entry)
+static inline seL4_Word kernel_logging_entry_get_data(kernel_log_entry_t *entry)
 {
 #if CONFIG_MAX_NUM_TRACE_POINTS > 0
     return entry->duration;
@@ -64,8 +56,7 @@
 }
 
 /* Sets the data field of a log entry to a given value. */
-static inline void
-kernel_logging_entry_set_data(kernel_log_entry_t *entry, seL4_Word data)
+static inline void kernel_logging_entry_set_data(kernel_log_entry_t *entry, seL4_Word data)
 {
 #if CONFIG_MAX_NUM_TRACE_POINTS > 0
     entry->duration = data;
@@ -73,8 +64,7 @@
 }
 
 /* Resets the log buffer to contain no entries. */
-static inline void
-kernel_logging_reset_log(void)
+static inline void kernel_logging_reset_log(void)
 {
 #ifdef CONFIG_ENABLE_BENCHMARKS
     seL4_BenchmarkResetLog();
@@ -84,8 +74,7 @@
 /* Calls to kernel_logging_sync_log will extract entries created before
  * the most-recent call to this function. Call this function before calling
  * kernel_logging_sync_log. */
-static inline void
-kernel_logging_finalize_log(void)
+static inline void kernel_logging_finalize_log(void)
 {
 #ifdef CONFIG_ENABLE_BENCHMARKS
     seL4_BenchmarkFinalizeLog();
@@ -98,12 +87,11 @@
  *
  * @logBuffer_cap should be a cap of a large frame size.
  */
-static inline seL4_Error
-kernel_logging_set_log_buffer(seL4_CPtr logBuffer_cap)
+static inline seL4_Error kernel_logging_set_log_buffer(seL4_CPtr logBuffer_cap)
 {
-#ifdef CONFIG_BENCHMARK_USE_KERNEL_LOG_BUFFER
+#ifdef CONFIG_KERNEL_LOG_BUFFER
     return seL4_BenchmarkSetLogBuffer(logBuffer_cap);
 #else
     return seL4_NoError;
-#endif /* CONFIG_BENCHMARK_USE_KERNEL_LOG_BUFFER */
+#endif /* CONFIG_KERNEL_LOG_BUFFER */
 }
diff --git a/libsel4bench/include/sel4bench/logging.h b/libsel4bench/include/sel4bench/logging.h
index 4db488d..7cb9e42 100644
--- a/libsel4bench/include/sel4bench/logging.h
+++ b/libsel4bench/include/sel4bench/logging.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4bench/include/sel4bench/sel4bench.h b/libsel4bench/include/sel4bench/sel4bench.h
index f6eac71..6cb0ef9 100644
--- a/libsel4bench/include/sel4bench/sel4bench.h
+++ b/libsel4bench/include/sel4bench/sel4bench.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
@@ -28,9 +22,7 @@
  * can measure the performance of your software.  It will also work out whether
  * certain operations need to be done in kernel mode, and perform kernel code
  * injection calls to make them happen.  As a result, expect that any library
- * call could potentially result in a syscall.  (This is of particular note on
- * the KZM/ARM1136, for which even reading the cycle counter must be done in
- * kernel mode.)
+ * call could potentially result in a syscall.
  *
  * It also goes out of its way to ensure that there's always a cycle counter
  * available for use.  `sel4bench_init()` will start this running, and
@@ -168,8 +160,7 @@
 /**
  * Stop counting events on a set of performance counters.
  *
- * Note: Some processors (notably, the KZM/ARM1136) may not support this
- * operation.
+ * Note: Some processors may not support this operation.
  *
  * @param counters bitfield indicating which counter(s) to stop
  */
diff --git a/libsel4bench/include/sel4bench/types.h b/libsel4bench/include/sel4bench/types.h
index 0dc6913..db986cf 100644
--- a/libsel4bench/include/sel4bench/types.h
+++ b/libsel4bench/include/sel4bench/types.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4bench/sel4_arch_include/aarch32/sel4bench/sel4_arch/sel4bench.h b/libsel4bench/sel4_arch_include/aarch32/sel4bench/sel4_arch/sel4bench.h
index 5daf8af..d341336 100644
--- a/libsel4bench/sel4_arch_include/aarch32/sel4bench/sel4_arch/sel4bench.h
+++ b/libsel4bench/sel4_arch_include/aarch32/sel4bench/sel4_arch/sel4bench.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4bench/sel4_arch_include/aarch64/sel4bench/sel4_arch/sel4bench.h b/libsel4bench/sel4_arch_include/aarch64/sel4bench/sel4_arch/sel4bench.h
index b5d4f3b..e3163be 100644
--- a/libsel4bench/sel4_arch_include/aarch64/sel4bench/sel4_arch/sel4bench.h
+++ b/libsel4bench/sel4_arch_include/aarch64/sel4bench/sel4_arch/sel4bench.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4bench/src/arch/arm/armv/armv7-a/event_counters.c b/libsel4bench/src/arch/arm/armv/armv7-a/event_counters.c
index 2e3e052..ded5898 100644
--- a/libsel4bench/src/arch/arm/armv/armv7-a/event_counters.c
+++ b/libsel4bench/src/arch/arm/armv/armv7-a/event_counters.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <utils/util.h>
diff --git a/libsel4bench/src/arch/arm/armv/armv8-a/event_counters.c b/libsel4bench/src/arch/arm/armv/armv8-a/event_counters.c
index 7d74b69..c16fad1 100644
--- a/libsel4bench/src/arch/arm/armv/armv8-a/event_counters.c
+++ b/libsel4bench/src/arch/arm/armv/armv8-a/event_counters.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <utils/util.h>
diff --git a/libsel4bench/src/arch/arm/cpu/arm1136jf-s/event_counters.c b/libsel4bench/src/arch/arm/cpu/arm1136jf-s/event_counters.c
deleted file mode 100644
index 3b4cd9d..0000000
--- a/libsel4bench/src/arch/arm/cpu/arm1136jf-s/event_counters.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
- *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
- */
-
-#include <utils/util.h>
-
-#include "../../event_counters.h"
-
-const char* const sel4bench_arch_event_counter_data[] = {
-    NAME_EVENT(CACHE_L1I_MISS        , "CACHE_L1I_MISS"),
-    NAME_EVENT(STALL_INSTRUCTION     , "STALL_INSTRUCTION"),
-    NAME_EVENT(STALL_DATA            , "STALL_DATA"),
-    NAME_EVENT(TLB_L1I_MISS          , "TLB_L1I_MISS"),
-    NAME_EVENT(TLB_L1D_MISS          , "TLB_L1D_MISS"),
-    NAME_EVENT(EXECUTE_BRANCH        , "EXECUTE_BRANCH"),
-    NAME_EVENT(BRANCH_MISPREDICT     , "BRANCH_MISPREDICT"),
-    NAME_EVENT(EXECUTE_INSTRUCTION   , "EXECUTE_INSTRUCTION"),
-    NAME_EVENT(CACHE_L1D_HIT         , "CACHE_L1D_HIT"),
-    NAME_EVENT(CACHE_L1D_ACCESS      , "CACHE_L1D_ACCESS"),
-    NAME_EVENT(CACHE_L1D_MISS        , "CACHE_L1D_MISS"),
-    NAME_EVENT(CACHE_L1D_WRITEBACK_HL, "CACHE_L1D_WRITEBACK_HL"),
-    NAME_EVENT(SOFTWARE_PC_CHANGE    , "SOFTWARE_PC_CHANGE"),
-    NAME_EVENT(TLB_L2_MISS           , "TLB_L2_MISS"),
-    NAME_EVENT(MEMORY_ACCESS         , "MEMORY_ACCESS"),
-    NAME_EVENT(STALL_LSU_BUSY        , "STALL_LSU_BUSY"),
-    NAME_EVENT(WRITE_BUFFER_DRAIN    , "WRITE_BUFFER_DRAIN"),
-    NAME_EVENT(ETMEXTOUT_0           , "ETMEXTOUT_0"),
-    NAME_EVENT(ETMEXTOUT_1           , "ETMEXTOUT_1"),
-    NAME_EVENT(ETMEXTOUT             , "ETMEXTOUT"),
-    NAME_EVENT(CCNT                  , "CCNT")
-};
-
-const char* const sel4bench_cpu_event_counter_data[] = {
-};
-
-int
-sel4bench_arch_get_num_counters(void)
-{
-    return ARRAY_SIZE(sel4bench_arch_event_counter_data);
-}
-
-int
-sel4bench_cpu_get_num_counters(void)
-{
-    return ARRAY_SIZE(sel4bench_cpu_event_counter_data);
-}
diff --git a/libsel4bench/src/arch/arm/cpu/cortex-a15/event_counters.c b/libsel4bench/src/arch/arm/cpu/cortex-a15/event_counters.c
index 68bceeb..0725c8d 100644
--- a/libsel4bench/src/arch/arm/cpu/cortex-a15/event_counters.c
+++ b/libsel4bench/src/arch/arm/cpu/cortex-a15/event_counters.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include "../../event_counters.h"
diff --git a/libsel4bench/src/arch/arm/cpu/cortex-a53/event_counters.c b/libsel4bench/src/arch/arm/cpu/cortex-a53/event_counters.c
index e76500d..25565d1 100644
--- a/libsel4bench/src/arch/arm/cpu/cortex-a53/event_counters.c
+++ b/libsel4bench/src/arch/arm/cpu/cortex-a53/event_counters.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include "../../event_counters.h"
diff --git a/libsel4bench/src/arch/arm/cpu/cortex-a8/event_counters.c b/libsel4bench/src/arch/arm/cpu/cortex-a8/event_counters.c
index edef3fa..01f1884 100644
--- a/libsel4bench/src/arch/arm/cpu/cortex-a8/event_counters.c
+++ b/libsel4bench/src/arch/arm/cpu/cortex-a8/event_counters.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include "../../event_counters.h"
diff --git a/libsel4bench/src/arch/arm/cpu/cortex-a9/event_counters.c b/libsel4bench/src/arch/arm/cpu/cortex-a9/event_counters.c
index 6a24b90..72b9edd 100644
--- a/libsel4bench/src/arch/arm/cpu/cortex-a9/event_counters.c
+++ b/libsel4bench/src/arch/arm/cpu/cortex-a9/event_counters.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include "../../event_counters.h"
diff --git a/libsel4bench/src/arch/arm/event_counters.c b/libsel4bench/src/arch/arm/event_counters.c
index c18b44f..1d34b32 100644
--- a/libsel4bench/src/arch/arm/event_counters.c
+++ b/libsel4bench/src/arch/arm/event_counters.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #include "event_counters.h"
 
diff --git a/libsel4bench/src/arch/arm/event_counters.h b/libsel4bench/src/arch/arm/event_counters.h
index 8b9ce34..3fec28f 100644
--- a/libsel4bench/src/arch/arm/event_counters.h
+++ b/libsel4bench/src/arch/arm/event_counters.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4bench/src/arch/x86/event_counters.c b/libsel4bench/src/arch/x86/event_counters.c
index a337083..0f97e70 100644
--- a/libsel4bench/src/arch/x86/event_counters.c
+++ b/libsel4bench/src/arch/x86/event_counters.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4bench/sel4bench.h>
diff --git a/libsel4bench/src/event_counters.c b/libsel4bench/src/event_counters.c
index 00acf19..076d240 100644
--- a/libsel4bench/src/event_counters.c
+++ b/libsel4bench/src/event_counters.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4bench/sel4bench.h>
diff --git a/libsel4bench/src/event_counters.h b/libsel4bench/src/event_counters.h
index cd9c934..35aab37 100644
--- a/libsel4bench/src/event_counters.h
+++ b/libsel4bench/src/event_counters.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4bench/src/kernel_logging.c b/libsel4bench/src/kernel_logging.c
index 3493a8d..d0ef56f 100644
--- a/libsel4bench/src/kernel_logging.c
+++ b/libsel4bench/src/kernel_logging.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4bench/kernel_logging.h>
diff --git a/libsel4bench/src/logging.c b/libsel4bench/src/logging.c
index 1305217..2847a4f 100644
--- a/libsel4bench/src/logging.c
+++ b/libsel4bench/src/logging.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4bench/logging.h>
diff --git a/libsel4debug/CMakeLists.txt b/libsel4debug/CMakeLists.txt
index 850cc5a..9842bf1 100644
--- a/libsel4debug/CMakeLists.txt
+++ b/libsel4debug/CMakeLists.txt
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 cmake_minimum_required(VERSION 3.7.2)
diff --git a/libsel4debug/LICENSE_BSD2.txt b/libsel4debug/LICENSE_BSD2.txt
deleted file mode 100644
index 3c78ecf..0000000
--- a/libsel4debug/LICENSE_BSD2.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Files described as being under the "BSD 2-Clause" license fall under the
-following license.
-
------------------------------------------------------------------------
-
-Copyright (c) 2017 Data61 and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. 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 AUTHOR 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 AUTHOR 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/libsel4debug/README b/libsel4debug/README
index b228a04..cfb208b 100644
--- a/libsel4debug/README
+++ b/libsel4debug/README
@@ -1,13 +1,7 @@
-<!---
-  Copyright 2017, Data61
-  Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-  ABN 41 687 119 230.
+<!--
+     Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 
-  This software may be distributed and modified according to the terms of
-  the BSD 2-Clause license. Note that NO WARRANTY is provided.
-  See "LICENSE_BSD2.txt" for details.
-
-  @TAG(DATA61_BSD)
+     SPDX-License-Identifier: BSD-2-Clause
 -->
 
 This library is for debugging userspace applications. Feel free to extend as
diff --git a/libsel4debug/arch_include/arm/sel4debug/arch/registers.h b/libsel4debug/arch_include/arm/sel4debug/arch/registers.h
index 415b183..aa3e025 100644
--- a/libsel4debug/arch_include/arm/sel4debug/arch/registers.h
+++ b/libsel4debug/arch_include/arm/sel4debug/arch/registers.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4debug/arch_include/riscv/sel4debug/arch/registers.h b/libsel4debug/arch_include/riscv/sel4debug/arch/registers.h
index 93e88e4..cab82a7 100644
--- a/libsel4debug/arch_include/riscv/sel4debug/arch/registers.h
+++ b/libsel4debug/arch_include/riscv/sel4debug/arch/registers.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4debug/arch_include/x86/sel4debug/arch/registers.h b/libsel4debug/arch_include/x86/sel4debug/arch/registers.h
index 415b183..aa3e025 100644
--- a/libsel4debug/arch_include/x86/sel4debug/arch/registers.h
+++ b/libsel4debug/arch_include/x86/sel4debug/arch/registers.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4debug/include/sel4debug/debug.h b/libsel4debug/include/sel4debug/debug.h
index 53aac59..1e327f7 100644
--- a/libsel4debug/include/sel4debug/debug.h
+++ b/libsel4debug/include/sel4debug/debug.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
@@ -27,6 +21,7 @@
 
 void debug_cap_identify(seL4_CPtr cap);
 
+#ifdef CONFIG_DEBUG_BUILD
 static inline int debug_cap_is_valid(seL4_CPtr cap)
 {
 #ifdef CONFIG_DEBUG_BUILD
@@ -57,7 +52,7 @@
     return 0; /* fail check on non-debug kernels */
 #endif
 }
-
+#endif /* CONFIG_DEBUG_BUILD */
 
 void debug_print_bootinfo(seL4_BootInfo *info);
 
diff --git a/libsel4debug/include/sel4debug/execinfo.h b/libsel4debug/include/sel4debug/execinfo.h
index 47ce66d..1cd2054 100644
--- a/libsel4debug/include/sel4debug/execinfo.h
+++ b/libsel4debug/include/sel4debug/execinfo.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4debug/include/sel4debug/identity.h b/libsel4debug/include/sel4debug/identity.h
index c82d13e..6331b64 100644
--- a/libsel4debug/include/sel4debug/identity.h
+++ b/libsel4debug/include/sel4debug/identity.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 /* In the case of a fault or other unexpected error, your fault handler or the
diff --git a/libsel4debug/include/sel4debug/instrumentation.h b/libsel4debug/include/sel4debug/instrumentation.h
index 1cae55b..6bd09e8 100644
--- a/libsel4debug/include/sel4debug/instrumentation.h
+++ b/libsel4debug/include/sel4debug/instrumentation.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4debug/include/sel4debug/register_dump.h b/libsel4debug/include/sel4debug/register_dump.h
index 047ba51..01f06bd 100644
--- a/libsel4debug/include/sel4debug/register_dump.h
+++ b/libsel4debug/include/sel4debug/register_dump.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4debug/include/sel4debug/stack.h b/libsel4debug/include/sel4debug/stack.h
index 4ea2e2b..19741c0 100644
--- a/libsel4debug/include/sel4debug/stack.h
+++ b/libsel4debug/include/sel4debug/stack.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4debug/include/sel4debug/stack_trace.h b/libsel4debug/include/sel4debug/stack_trace.h
index e9c5a72..89de3a1 100644
--- a/libsel4debug/include/sel4debug/stack_trace.h
+++ b/libsel4debug/include/sel4debug/stack_trace.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4debug/include/sel4debug/strerror.h b/libsel4debug/include/sel4debug/strerror.h
index f814107..3daa731 100644
--- a/libsel4debug/include/sel4debug/strerror.h
+++ b/libsel4debug/include/sel4debug/strerror.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4debug/include/sel4debug/trampoline.h b/libsel4debug/include/sel4debug/trampoline.h
index 63265aa..a0e9dc7 100644
--- a/libsel4debug/include/sel4debug/trampoline.h
+++ b/libsel4debug/include/sel4debug/trampoline.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4debug/include/sel4debug/unknown_syscall.h b/libsel4debug/include/sel4debug/unknown_syscall.h
index eb5fc11..f5a929b 100644
--- a/libsel4debug/include/sel4debug/unknown_syscall.h
+++ b/libsel4debug/include/sel4debug/unknown_syscall.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4debug/include/sel4debug/user_exception.h b/libsel4debug/include/sel4debug/user_exception.h
index db08b5a..9ef2433 100644
--- a/libsel4debug/include/sel4debug/user_exception.h
+++ b/libsel4debug/include/sel4debug/user_exception.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4debug/sel4_arch_include/aarch32/sel4debug/sel4_arch/registers.h b/libsel4debug/sel4_arch_include/aarch32/sel4debug/sel4_arch/registers.h
index 79400c4..e95b340 100644
--- a/libsel4debug/sel4_arch_include/aarch32/sel4debug/sel4_arch/registers.h
+++ b/libsel4debug/sel4_arch_include/aarch32/sel4debug/sel4_arch/registers.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
@@ -33,8 +27,9 @@
     "r5",
     "r6",
     "r7",
-    "lr",
+    "r14",
     "tpidrurw",
+    "tpidruro"
 };
 
 /* assert that register_names correspond to seL4_UserContext */
@@ -56,4 +51,5 @@
 compile_time_assert(r7_correct_position, offsetof(seL4_UserContext, r7)     == 15 * sizeof(seL4_Word));
 compile_time_assert(r14_correct_position, offsetof(seL4_UserContext, r14)   == 16 * sizeof(seL4_Word));
 compile_time_assert(tpidrurw_correct_position, offsetof(seL4_UserContext, tpidrurw) == 17 * sizeof(seL4_Word));
+compile_time_assert(tpidruro_correct_position, offsetof(seL4_UserContext, tpidruro) == 18 * sizeof(seL4_Word));
 
diff --git a/libsel4debug/sel4_arch_include/aarch64/sel4debug/sel4_arch/registers.h b/libsel4debug/sel4_arch_include/aarch64/sel4debug/sel4_arch/registers.h
index 8235d7d..488cf0c 100644
--- a/libsel4debug/sel4_arch_include/aarch64/sel4debug/sel4_arch/registers.h
+++ b/libsel4debug/sel4_arch_include/aarch64/sel4debug/sel4_arch/registers.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4debug/sel4_arch_include/ia32/sel4debug/sel4_arch/registers.h b/libsel4debug/sel4_arch_include/ia32/sel4debug/sel4_arch/registers.h
index ba30047..1904bb4 100644
--- a/libsel4debug/sel4_arch_include/ia32/sel4debug/sel4_arch/registers.h
+++ b/libsel4debug/sel4_arch_include/ia32/sel4debug/sel4_arch/registers.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4debug/sel4_arch_include/x86_64/sel4debug/sel4_arch/registers.h b/libsel4debug/sel4_arch_include/x86_64/sel4debug/sel4_arch/registers.h
index 4fff4b1..5d430ff 100644
--- a/libsel4debug/sel4_arch_include/x86_64/sel4debug/sel4_arch/registers.h
+++ b/libsel4debug/sel4_arch_include/x86_64/sel4debug/sel4_arch/registers.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4debug/src/alloc.c b/libsel4debug/src/alloc.c
index 2bd5e05..93d1832 100644
--- a/libsel4debug/src/alloc.c
+++ b/libsel4debug/src/alloc.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 /* This file contains functionality for debugging heap corruption issues. It is
diff --git a/libsel4debug/src/backtrace.c b/libsel4debug/src/backtrace.c
index 1674f11..296e0d8 100644
--- a/libsel4debug/src/backtrace.c
+++ b/libsel4debug/src/backtrace.c
@@ -1,21 +1,22 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- *  @LICENSE(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #include <autoconf.h>
+#include <sel4/types.h>
+
+/* Don't instrument seL4_GetIPCBuffer as it's called in the __cyg_profile_func_*
+ * functions below and we don't want to recurse.
+ * This definition has to come before the definition that is included
+ * for the attribute to have effect.
+ */
+LIBSEL4_INLINE_FUNC seL4_IPCBuffer *seL4_GetIPCBuffer(void) __attribute__((no_instrument_function));
+
 #include <sel4debug/gen_config.h>
 #include <sel4/sel4.h>
 #include <sel4debug/instrumentation.h>
 
-/* Don't instrument seL4_GetIPCBuffer so we don't recurse. */
-seL4_IPCBuffer *seL4_GetIPCBuffer(void) __attribute__((no_instrument_function));
 
 /* We can't just store backtrace information in a single static area because it
  * needs to be tracked per-thread. To do this we assume each thread has a
diff --git a/libsel4debug/src/bootinfo.c b/libsel4debug/src/bootinfo.c
index a47b9d7..8d8b8b1 100644
--- a/libsel4debug/src/bootinfo.c
+++ b/libsel4debug/src/bootinfo.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4debug/src/caps.c b/libsel4debug/src/caps.c
index 4d7d8fc..84b2731 100644
--- a/libsel4debug/src/caps.c
+++ b/libsel4debug/src/caps.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
@@ -20,7 +14,7 @@
 {
 #ifdef CONFIG_DEBUG_BUILD
     int type = seL4_DebugCapIdentify(cap);
-    printf("Cap %d has type %d\n", cap, type);
+    printf("Cap %"SEL4_PRIu_word" has type %d\n", cap, type);
 #else
     printf("DEBUG_BUILD not set, can't get type of cap %d", cap);
 #endif
diff --git a/libsel4debug/src/identity-internal.h b/libsel4debug/src/identity-internal.h
index af945d2..32e87ce 100644
--- a/libsel4debug/src/identity-internal.h
+++ b/libsel4debug/src/identity-internal.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 /* See description in identity.h for the purpose of this function. */
diff --git a/libsel4debug/src/identity.c b/libsel4debug/src/identity.c
index 6f3a34b..fcc29a2 100644
--- a/libsel4debug/src/identity.c
+++ b/libsel4debug/src/identity.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4debug/identity.h>
diff --git a/libsel4debug/src/printf.c b/libsel4debug/src/printf.c
index 9b2101c..bc15524 100644
--- a/libsel4debug/src/printf.c
+++ b/libsel4debug/src/printf.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4debug/debug.h>
diff --git a/libsel4debug/src/register_dump.c b/libsel4debug/src/register_dump.c
index 36df23a..4d598a5 100644
--- a/libsel4debug/src/register_dump.c
+++ b/libsel4debug/src/register_dump.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- *  @LICENSE(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4/sel4.h>
@@ -24,18 +18,18 @@
 
 void sel4debug_dump_registers_prefix(seL4_CPtr tcb, char *prefix)
 {
-    seL4_UserContext context;
-    int error;
+    seL4_UserContext context; /* basically an array of seL4_Word */
     const int num_regs = sizeof(context) / sizeof(seL4_Word);
-
-    error = seL4_TCB_ReadRegisters(tcb, false, 0, num_regs, &context);
+    int error = seL4_TCB_ReadRegisters(tcb, false, 0, num_regs, &context);
     if (error) {
-        ZF_LOGE("Failed to read registers for tcb 0x%lx, error %d", (long) tcb, error);
+        ZF_LOGE("Failed to read registers for tcb 0x%"SEL4_PRIx_word", error %d",
+                tcb, error);
         return;
     }
 
     printf("%sRegister dump:\n", prefix);
-    for (int i = 0; i < num_regs; i++) {
-        printf("%s%s\t:0x%lx\n", prefix, register_names[i], (long) ((seL4_Word * )&context)[i]);
+    for (unsigned int i = 0; i < num_regs; i++) {
+        printf("%s%s:\t0x%"SEL4_PRIx_word"\n",
+               prefix, register_names[i], ((seL4_Word *)&context)[i]);
     }
 }
diff --git a/libsel4debug/src/sel4_arch/aarch32/trampoline.S b/libsel4debug/src/sel4_arch/aarch32/trampoline.S
index aa66774..6db591a 100644
--- a/libsel4debug/src/sel4_arch/aarch32/trampoline.S
+++ b/libsel4debug/src/sel4_arch/aarch32/trampoline.S
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 /* See trampoline.h for an explanation of this functionality. */
diff --git a/libsel4debug/src/sel4_arch/aarch32/unknown_syscall.c b/libsel4debug/src/sel4_arch/aarch32/unknown_syscall.c
index b1eef7d..b3ea119 100644
--- a/libsel4debug/src/sel4_arch/aarch32/unknown_syscall.c
+++ b/libsel4debug/src/sel4_arch/aarch32/unknown_syscall.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4/sel4.h>
diff --git a/libsel4debug/src/sel4_arch/aarch32/user_exception.c b/libsel4debug/src/sel4_arch/aarch32/user_exception.c
index c3a9d69..2859e0b 100644
--- a/libsel4debug/src/sel4_arch/aarch32/user_exception.c
+++ b/libsel4debug/src/sel4_arch/aarch32/user_exception.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4/sel4.h>
diff --git a/libsel4debug/src/sel4_arch/ia32/stack_trace.c b/libsel4debug/src/sel4_arch/ia32/stack_trace.c
index ac4ee0a..abe90e4 100644
--- a/libsel4debug/src/sel4_arch/ia32/stack_trace.c
+++ b/libsel4debug/src/sel4_arch/ia32/stack_trace.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <stdio.h>
diff --git a/libsel4debug/src/sel4_arch/ia32/trampoline.S b/libsel4debug/src/sel4_arch/ia32/trampoline.S
index 6d1ecba..4665e59 100644
--- a/libsel4debug/src/sel4_arch/ia32/trampoline.S
+++ b/libsel4debug/src/sel4_arch/ia32/trampoline.S
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 /* See trampoline.h for an explanation of this functionality. */
diff --git a/libsel4debug/src/sel4_arch/ia32/unknown_syscall.c b/libsel4debug/src/sel4_arch/ia32/unknown_syscall.c
index a7c18b9..6fdaea2 100644
--- a/libsel4debug/src/sel4_arch/ia32/unknown_syscall.c
+++ b/libsel4debug/src/sel4_arch/ia32/unknown_syscall.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4/sel4.h>
diff --git a/libsel4debug/src/sel4_arch/ia32/user_exception.c b/libsel4debug/src/sel4_arch/ia32/user_exception.c
index 5e6a9e1..4036423 100644
--- a/libsel4debug/src/sel4_arch/ia32/user_exception.c
+++ b/libsel4debug/src/sel4_arch/ia32/user_exception.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4/sel4.h>
diff --git a/libsel4debug/src/stack.c b/libsel4debug/src/stack.c
index feb3248..9ed1d10 100644
--- a/libsel4debug/src/stack.c
+++ b/libsel4debug/src/stack.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- *  @LICENSE(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4debug/stack.h>
diff --git a/libsel4debug/src/trace.c b/libsel4debug/src/trace.c
index ea92c41..fd76511 100644
--- a/libsel4debug/src/trace.c
+++ b/libsel4debug/src/trace.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4muslcsys/CMakeLists.txt b/libsel4muslcsys/CMakeLists.txt
index 731bc65..a7104b2 100644
--- a/libsel4muslcsys/CMakeLists.txt
+++ b/libsel4muslcsys/CMakeLists.txt
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 cmake_minimum_required(VERSION 3.7.2)
diff --git a/libsel4muslcsys/LICENSE_BSD2.txt b/libsel4muslcsys/LICENSE_BSD2.txt
deleted file mode 100644
index 3c78ecf..0000000
--- a/libsel4muslcsys/LICENSE_BSD2.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Files described as being under the "BSD 2-Clause" license fall under the
-following license.
-
------------------------------------------------------------------------
-
-Copyright (c) 2017 Data61 and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. 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 AUTHOR 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 AUTHOR 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/libsel4muslcsys/README b/libsel4muslcsys/README
index b0949d7..c705817 100644
--- a/libsel4muslcsys/README
+++ b/libsel4muslcsys/README
@@ -1,13 +1,7 @@
-<!---
-  Copyright 2017, Data61
-  Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-  ABN 41 687 119 230.
+<!--
+     Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 
-  This software may be distributed and modified according to the terms of
-  the BSD 2-Clause license. Note that NO WARRANTY is provided.
-  See "LICENSE_BSD2.txt" for details.
-
-  @TAG(DATA61_BSD)
+     SPDX-License-Identifier: BSD-2-Clause
 -->
 
 Minimal muslc syscall implementation for seL4.
diff --git a/libsel4muslcsys/include/arch_stdio.h b/libsel4muslcsys/include/arch_stdio.h
index 199c02a..0a46b82 100644
--- a/libsel4muslcsys/include/arch_stdio.h
+++ b/libsel4muslcsys/include/arch_stdio.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4muslcsys/include/muslcsys/io.h b/libsel4muslcsys/include/muslcsys/io.h
index 2c9a73f..1ed7960 100644
--- a/libsel4muslcsys/include/muslcsys/io.h
+++ b/libsel4muslcsys/include/muslcsys/io.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4muslcsys/include/muslcsys/vsyscall.h b/libsel4muslcsys/include/muslcsys/vsyscall.h
index c96871d..8a17296 100644
--- a/libsel4muslcsys/include/muslcsys/vsyscall.h
+++ b/libsel4muslcsys/include/muslcsys/vsyscall.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4muslcsys/src/sys_exit.c b/libsel4muslcsys/src/sys_exit.c
index 258e22a..6501476 100644
--- a/libsel4muslcsys/src/sys_exit.c
+++ b/libsel4muslcsys/src/sys_exit.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4muslcsys/src/sys_io.c b/libsel4muslcsys/src/sys_io.c
index 4544371..b221a03 100644
--- a/libsel4muslcsys/src/sys_io.c
+++ b/libsel4muslcsys/src/sys_io.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4muslcsys/src/sys_morecore.c b/libsel4muslcsys/src/sys_morecore.c
index fdd267b..bfe49ae 100644
--- a/libsel4muslcsys/src/sys_morecore.c
+++ b/libsel4muslcsys/src/sys_morecore.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 /* defining _GNU_SOURCE to make certain constants appear in muslc. This is rather hacky */
diff --git a/libsel4muslcsys/src/sys_thread.c b/libsel4muslcsys/src/sys_thread.c
index 3afc66f..369d03d 100644
--- a/libsel4muslcsys/src/sys_thread.c
+++ b/libsel4muslcsys/src/sys_thread.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <stdio.h>
diff --git a/libsel4muslcsys/src/sys_yield.c b/libsel4muslcsys/src/sys_yield.c
index 272f31e..9517e96 100644
--- a/libsel4muslcsys/src/sys_yield.c
+++ b/libsel4muslcsys/src/sys_yield.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <stdio.h>
diff --git a/libsel4muslcsys/src/syscalls.h b/libsel4muslcsys/src/syscalls.h
index 9101f8d..c8c788e 100644
--- a/libsel4muslcsys/src/syscalls.h
+++ b/libsel4muslcsys/src/syscalls.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4muslcsys/src/vsyscall.c b/libsel4muslcsys/src/vsyscall.c
index aa3ce88..4af1d26 100644
--- a/libsel4muslcsys/src/vsyscall.c
+++ b/libsel4muslcsys/src/vsyscall.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4platsupport/CMakeLists.txt b/libsel4platsupport/CMakeLists.txt
index b23531b..8f1e0b7 100644
--- a/libsel4platsupport/CMakeLists.txt
+++ b/libsel4platsupport/CMakeLists.txt
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 cmake_minimum_required(VERSION 3.7.2)
diff --git a/libsel4platsupport/LICENSE_BSD2.txt b/libsel4platsupport/LICENSE_BSD2.txt
deleted file mode 100644
index 3c78ecf..0000000
--- a/libsel4platsupport/LICENSE_BSD2.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Files described as being under the "BSD 2-Clause" license fall under the
-following license.
-
------------------------------------------------------------------------
-
-Copyright (c) 2017 Data61 and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. 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 AUTHOR 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 AUTHOR 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/libsel4platsupport/arch_include/arm/sel4platsupport/arch/io.h b/libsel4platsupport/arch_include/arm/sel4platsupport/arch/io.h
index da14c1b..c897182 100644
--- a/libsel4platsupport/arch_include/arm/sel4platsupport/arch/io.h
+++ b/libsel4platsupport/arch_include/arm/sel4platsupport/arch/io.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4platsupport/arch_include/x86/sel4platsupport/arch/io.h b/libsel4platsupport/arch_include/x86/sel4platsupport/arch/io.h
index 5da3bb4..b2662bc 100644
--- a/libsel4platsupport/arch_include/x86/sel4platsupport/arch/io.h
+++ b/libsel4platsupport/arch_include/x86/sel4platsupport/arch/io.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4platsupport/include/sel4platsupport/bootinfo.h b/libsel4platsupport/include/sel4platsupport/bootinfo.h
index 42dcfcb..3dc3fef 100644
--- a/libsel4platsupport/include/sel4platsupport/bootinfo.h
+++ b/libsel4platsupport/include/sel4platsupport/bootinfo.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4platsupport/include/sel4platsupport/device.h b/libsel4platsupport/include/sel4platsupport/device.h
index d4e3c2a..44557c1 100644
--- a/libsel4platsupport/include/sel4platsupport/device.h
+++ b/libsel4platsupport/include/sel4platsupport/device.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4platsupport/include/sel4platsupport/io.h b/libsel4platsupport/include/sel4platsupport/io.h
index fa33cba..fbfadcb 100644
--- a/libsel4platsupport/include/sel4platsupport/io.h
+++ b/libsel4platsupport/include/sel4platsupport/io.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4platsupport/include/sel4platsupport/irq.h b/libsel4platsupport/include/sel4platsupport/irq.h
index 2d40c79..0601414 100644
--- a/libsel4platsupport/include/sel4platsupport/irq.h
+++ b/libsel4platsupport/include/sel4platsupport/irq.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2019, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2019, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4platsupport/include/sel4platsupport/platsupport.h b/libsel4platsupport/include/sel4platsupport/platsupport.h
index 5b9edc7..7b329a4 100644
--- a/libsel4platsupport/include/sel4platsupport/platsupport.h
+++ b/libsel4platsupport/include/sel4platsupport/platsupport.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4platsupport/include/sel4platsupport/pmem.h b/libsel4platsupport/include/sel4platsupport/pmem.h
index f9b7c82..c30f907 100644
--- a/libsel4platsupport/include/sel4platsupport/pmem.h
+++ b/libsel4platsupport/include/sel4platsupport/pmem.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4platsupport/include/sel4platsupport/timer.h b/libsel4platsupport/include/sel4platsupport/timer.h
index 2f8fc76..eac328b 100644
--- a/libsel4platsupport/include/sel4platsupport/timer.h
+++ b/libsel4platsupport/include/sel4platsupport/timer.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4platsupport/src/arch/arm/device.c b/libsel4platsupport/src/arch/arm/device.c
index 2c7b005..71b4b99 100644
--- a/libsel4platsupport/src/arch/arm/device.c
+++ b/libsel4platsupport/src/arch/arm/device.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4platsupport/device.h>
diff --git a/libsel4platsupport/src/arch/arm/io_port_ops.c b/libsel4platsupport/src/arch/arm/io_port_ops.c
index ba7d0b7..a41810c 100644
--- a/libsel4platsupport/src/arch/arm/io_port_ops.c
+++ b/libsel4platsupport/src/arch/arm/io_port_ops.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4/sel4.h>
diff --git a/libsel4platsupport/src/arch/arm/pmem.c b/libsel4platsupport/src/arch/arm/pmem.c
index f41ac10..25a9847 100644
--- a/libsel4platsupport/src/arch/arm/pmem.c
+++ b/libsel4platsupport/src/arch/arm/pmem.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <stdint.h>
diff --git a/libsel4platsupport/src/arch/x86/io_port_ops.c b/libsel4platsupport/src/arch/x86/io_port_ops.c
index 9ac3906..66d9652 100644
--- a/libsel4platsupport/src/arch/x86/io_port_ops.c
+++ b/libsel4platsupport/src/arch/x86/io_port_ops.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4/sel4.h>
diff --git a/libsel4platsupport/src/arch/x86/pmem.c b/libsel4platsupport/src/arch/x86/pmem.c
index 013805b..93c021e 100644
--- a/libsel4platsupport/src/arch/x86/pmem.c
+++ b/libsel4platsupport/src/arch/x86/pmem.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <stdint.h>
diff --git a/libsel4platsupport/src/bootinfo.c b/libsel4platsupport/src/bootinfo.c
index d8d099c..e70ee91 100644
--- a/libsel4platsupport/src/bootinfo.c
+++ b/libsel4platsupport/src/bootinfo.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4/sel4.h>
diff --git a/libsel4platsupport/src/common.c b/libsel4platsupport/src/common.c
index 3958d85..7f8e604 100644
--- a/libsel4platsupport/src/common.c
+++ b/libsel4platsupport/src/common.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 /*
  * This file provides routines that can be called by other libraries to access
diff --git a/libsel4platsupport/src/device.c b/libsel4platsupport/src/device.c
index 084597f..9e9f2d4 100644
--- a/libsel4platsupport/src/device.c
+++ b/libsel4platsupport/src/device.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #include <autoconf.h>
 #include <sel4platsupport/gen_config.h>
diff --git a/libsel4platsupport/src/io.c b/libsel4platsupport/src/io.c
index 18377c4..59031d3 100644
--- a/libsel4platsupport/src/io.c
+++ b/libsel4platsupport/src/io.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4platsupport/src/irq.c b/libsel4platsupport/src/irq.c
index 27d09ef..555a393 100644
--- a/libsel4platsupport/src/irq.c
+++ b/libsel4platsupport/src/irq.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2019, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2019, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <assert.h>
diff --git a/libsel4platsupport/src/plat/pc99/device.c b/libsel4platsupport/src/plat/pc99/device.c
index d1592e3..e94c723 100644
--- a/libsel4platsupport/src/plat/pc99/device.c
+++ b/libsel4platsupport/src/plat/pc99/device.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #include <autoconf.h>
 #include <sel4platsupport/gen_config.h>
diff --git a/libsel4platsupport/src/plat_internal.h b/libsel4platsupport/src/plat_internal.h
index f99491f..85b6563 100644
--- a/libsel4platsupport/src/plat_internal.h
+++ b/libsel4platsupport/src/plat_internal.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4platsupport/src/sel4_arch/aarch32/crt0.S b/libsel4platsupport/src/sel4_arch/aarch32/crt0.S
index 50fe94f..9595e0e 100644
--- a/libsel4platsupport/src/sel4_arch/aarch32/crt0.S
+++ b/libsel4platsupport/src/sel4_arch/aarch32/crt0.S
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 /*
  * A default crt0 for ARM. It does the bare minimum required to get into
diff --git a/libsel4platsupport/src/sel4_arch/aarch64/crt0.S b/libsel4platsupport/src/sel4_arch/aarch64/crt0.S
index 8498839..3fb55d1 100644
--- a/libsel4platsupport/src/sel4_arch/aarch64/crt0.S
+++ b/libsel4platsupport/src/sel4_arch/aarch64/crt0.S
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4platsupport/src/sel4_arch/ia32/crt0.S b/libsel4platsupport/src/sel4_arch/ia32/crt0.S
index 0082b19..ebed0f4 100644
--- a/libsel4platsupport/src/sel4_arch/ia32/crt0.S
+++ b/libsel4platsupport/src/sel4_arch/ia32/crt0.S
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 /*
  * A default crt0 for ia32. It does the bare minimum required to get into
diff --git a/libsel4platsupport/src/sel4_arch/x86_64/crt0.S b/libsel4platsupport/src/sel4_arch/x86_64/crt0.S
index f0c3dd5..4bbfe62 100644
--- a/libsel4platsupport/src/sel4_arch/x86_64/crt0.S
+++ b/libsel4platsupport/src/sel4_arch/x86_64/crt0.S
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 /*
  * A default crt0 for ia32. It does the bare minimum required to get into
diff --git a/libsel4platsupport/src/serial.c b/libsel4platsupport/src/serial.c
index 635ba72..77d93be 100644
--- a/libsel4platsupport/src/serial.c
+++ b/libsel4platsupport/src/serial.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include "plat_internal.h"
diff --git a/libsel4platsupport/src/timer.c b/libsel4platsupport/src/timer.c
index d46d189..0e01d68 100644
--- a/libsel4platsupport/src/timer.c
+++ b/libsel4platsupport/src/timer.c
@@ -1,14 +1,8 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
-* @TAG(DATA61_BSD)
-*/
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
 
 #include <autoconf.h>
 #include <sel4platsupport/gen_config.h>
diff --git a/libsel4serialserver/CMakeLists.txt b/libsel4serialserver/CMakeLists.txt
index ec98110..6699d7c 100644
--- a/libsel4serialserver/CMakeLists.txt
+++ b/libsel4serialserver/CMakeLists.txt
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 cmake_minimum_required(VERSION 3.7.2)
diff --git a/libsel4serialserver/LICENSE_BSD2.txt b/libsel4serialserver/LICENSE_BSD2.txt
deleted file mode 100644
index 3c78ecf..0000000
--- a/libsel4serialserver/LICENSE_BSD2.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Files described as being under the "BSD 2-Clause" license fall under the
-following license.
-
------------------------------------------------------------------------
-
-Copyright (c) 2017 Data61 and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. 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 AUTHOR 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 AUTHOR 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/libsel4serialserver/README.md b/libsel4serialserver/README.md
index 5f227c1..1090c41 100644
--- a/libsel4serialserver/README.md
+++ b/libsel4serialserver/README.md
@@ -1,14 +1,9 @@
-<!---
-  Copyright 2017, Data61
-  Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-  ABN 41 687 119 230.
+<!--
+     Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 
-  This software may be distributed and modified according to the terms of
-  the BSD 2-Clause license. Note that NO WARRANTY is provided.
-  See "LICENSE_BSD2.txt" for details.
-
-    @TAG(DATA61_BSD)
+     SPDX-License-Identifier: CC-BY-SA-4.0
 -->
+
 # 1. MISSION STATEMENT AND CURRENT STATUS.
 
 The Serial Server thread is able to connect to a character device and act as a
@@ -139,7 +134,7 @@
         /* I'm not going to cover how to initialize vkas here. */
         SETUP_YOUR_CLIENT'S_VKA(&client_vkas[i]);
 
-        /* Ask the Serrver to Mint badged endpoints to the clients: the library
+        /* Ask the Server to Mint badged endpoints to the clients: the library
          * automatically both allocates a unique badge value and mints the
          * capability for us.
          *
diff --git a/libsel4serialserver/include/serial_server/client.h b/libsel4serialserver/include/serial_server/client.h
index eae5d33..8e10a98 100644
--- a/libsel4serialserver/include/serial_server/client.h
+++ b/libsel4serialserver/include/serial_server/client.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4serialserver/include/serial_server/parent.h b/libsel4serialserver/include/serial_server/parent.h
index b4ffaf3..f165f91 100644
--- a/libsel4serialserver/include/serial_server/parent.h
+++ b/libsel4serialserver/include/serial_server/parent.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4serialserver/include/serial_server/test.h b/libsel4serialserver/include/serial_server/test.h
index 57db900..d98cda7 100644
--- a/libsel4serialserver/include/serial_server/test.h
+++ b/libsel4serialserver/include/serial_server/test.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4serialserver/src/clientapi.c b/libsel4serialserver/src/clientapi.c
index ec7f9de..cdcf4d1 100644
--- a/libsel4serialserver/src/clientapi.c
+++ b/libsel4serialserver/src/clientapi.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #include <stdio.h>
 #include <string.h>
diff --git a/libsel4serialserver/src/parentapi.c b/libsel4serialserver/src/parentapi.c
index db51bfd..c1a2b8e 100644
--- a/libsel4serialserver/src/parentapi.c
+++ b/libsel4serialserver/src/parentapi.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #include <stdio.h>
 #include <string.h>
diff --git a/libsel4serialserver/src/serial_server.h b/libsel4serialserver/src/serial_server.h
index 93ecb2b..22b4950 100644
--- a/libsel4serialserver/src/serial_server.h
+++ b/libsel4serialserver/src/serial_server.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4serialserver/src/server.c b/libsel4serialserver/src/server.c
index c13c198..0170c60 100644
--- a/libsel4serialserver/src/server.c
+++ b/libsel4serialserver/src/server.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #include <autoconf.h>
 #include <sel4serialserver/gen_config.h>
diff --git a/libsel4serialserver/src/test.c b/libsel4serialserver/src/test.c
index 3c8cdcf..073f933 100644
--- a/libsel4serialserver/src/test.c
+++ b/libsel4serialserver/src/test.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <string.h>
diff --git a/libsel4simple-default/CMakeLists.txt b/libsel4simple-default/CMakeLists.txt
index bec383c..aea8916 100644
--- a/libsel4simple-default/CMakeLists.txt
+++ b/libsel4simple-default/CMakeLists.txt
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 cmake_minimum_required(VERSION 3.7.2)
diff --git a/libsel4simple-default/LICENSE_BSD2.txt b/libsel4simple-default/LICENSE_BSD2.txt
deleted file mode 100644
index 3c78ecf..0000000
--- a/libsel4simple-default/LICENSE_BSD2.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Files described as being under the "BSD 2-Clause" license fall under the
-following license.
-
------------------------------------------------------------------------
-
-Copyright (c) 2017 Data61 and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. 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 AUTHOR 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 AUTHOR 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/libsel4simple-default/include/simple-default/simple-default.h b/libsel4simple-default/include/simple-default/simple-default.h
index 7267170..efd4b36 100644
--- a/libsel4simple-default/include/simple-default/simple-default.h
+++ b/libsel4simple-default/include/simple-default/simple-default.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4simple-default/src/arch/arm/default.c b/libsel4simple-default/src/arch/arm/default.c
index a0b50c1..a7805c8 100644
--- a/libsel4simple-default/src/arch/arm/default.c
+++ b/libsel4simple-default/src/arch/arm/default.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
@@ -37,7 +31,7 @@
 #endif
 }
 
-#ifdef CONFIG_ARM_SMMU
+#ifdef CONFIG_TK1_SMMU
 seL4_Error simple_default_get_iospace_cap_count(void *data, int *count)
 {
     seL4_BootInfo *bi = data;
@@ -97,7 +91,7 @@
     simple->data = data;
     simple->irq = simple_default_get_irq;
     simple->irq_trigger = simple_default_get_irq_trigger;
-#ifdef CONFIG_ARM_SMMU
+#ifdef CONFIG_TK1_SMMU
     simple->iospace_cap_count = simple_default_get_iospace_cap_count;
     simple->iospace_get_nth_cap = simple_default_get_iospace_nth_cap;
 #endif
diff --git a/libsel4simple-default/src/arch/riscv/default.c b/libsel4simple-default/src/arch/riscv/default.c
index 2bf7157..8dc63f2 100644
--- a/libsel4simple-default/src/arch/riscv/default.c
+++ b/libsel4simple-default/src/arch/riscv/default.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #include <autoconf.h>
 
diff --git a/libsel4simple-default/src/arch/x86/default.c b/libsel4simple-default/src/arch/x86/default.c
index ceffeab..37cca6e 100644
--- a/libsel4simple-default/src/arch/x86/default.c
+++ b/libsel4simple-default/src/arch/x86/default.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4simple-default/src/libsel4simple-default.c b/libsel4simple-default/src/libsel4simple-default.c
index 9e13fb8..b432dde 100644
--- a/libsel4simple-default/src/libsel4simple-default.c
+++ b/libsel4simple-default/src/libsel4simple-default.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4simple/CMakeLists.txt b/libsel4simple/CMakeLists.txt
index 9a350de..146d042 100644
--- a/libsel4simple/CMakeLists.txt
+++ b/libsel4simple/CMakeLists.txt
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 cmake_minimum_required(VERSION 3.7.2)
diff --git a/libsel4simple/LICENSE_BSD2.txt b/libsel4simple/LICENSE_BSD2.txt
deleted file mode 100644
index 3c78ecf..0000000
--- a/libsel4simple/LICENSE_BSD2.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Files described as being under the "BSD 2-Clause" license fall under the
-following license.
-
------------------------------------------------------------------------
-
-Copyright (c) 2017 Data61 and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. 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 AUTHOR 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 AUTHOR 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/libsel4simple/arch_include/arm/simple/arch/simple.h b/libsel4simple/arch_include/arm/simple/arch/simple.h
index 01a8dac..dac7eb1 100644
--- a/libsel4simple/arch_include/arm/simple/arch/simple.h
+++ b/libsel4simple/arch_include/arm/simple/arch/simple.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
@@ -43,7 +37,7 @@
 typedef struct arch_simple {
     simple_get_IRQ_handler_fn irq;
     simple_get_IRQ_trigger_fn irq_trigger;
-#ifdef CONFIG_ARM_SMMU
+#ifdef CONFIG_TK1_SMMU
     simple_get_iospace_cap_count_fn iospace_cap_count;
     simple_get_nth_iospace_cap_fn   iospace_get_nth_cap;
 #endif
diff --git a/libsel4simple/arch_include/x86/simple/arch/simple.h b/libsel4simple/arch_include/x86/simple/arch/simple.h
index 627e4cf..b1d396e 100644
--- a/libsel4simple/arch_include/x86/simple/arch/simple.h
+++ b/libsel4simple/arch_include/x86/simple/arch/simple.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4simple/include/simple/simple.h b/libsel4simple/include/simple/simple.h
index e42b567..7e162b3 100644
--- a/libsel4simple/include/simple/simple.h
+++ b/libsel4simple/include/simple/simple.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
@@ -191,6 +185,7 @@
  */
 typedef seL4_CPtr(*simple_get_sched_ctrl_fn)(void *data, int core);
 
+
 /**
  *
  * Get simple to print all the information it has about its environment
@@ -516,7 +511,8 @@
 }
 #endif
 
-#ifdef CONFIG_ARM_SMMU
+
+#ifdef CONFIG_TK1_SMMU
 static inline seL4_Error simple_get_iospace_cap_count(simple_t *simple, int *count)
 {
     if (!simple) {
@@ -558,6 +554,18 @@
 }
 #endif
 
+#ifdef CONFIG_ARM_SMMU
+static inline seL4_CPtr simple_get_sid_ctrl(simple_t *simple)
+{
+    return simple_init_cap(simple, seL4_CapSMMUSIDControl);
+}
+
+static inline seL4_CPtr simple_get_cb_ctrl(simple_t *simple)
+{
+    return simple_init_cap(simple, seL4_CapSMMUCBControl);
+}
+#endif
+
 static inline void simple_print(simple_t *simple)
 {
     if (!simple) {
diff --git a/libsel4simple/include/simple/simple_helpers.h b/libsel4simple/include/simple/simple_helpers.h
index 86d9208..18c49b5 100644
--- a/libsel4simple/include/simple/simple_helpers.h
+++ b/libsel4simple/include/simple/simple_helpers.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4simple/src/simple.c b/libsel4simple/src/simple.c
index c901810..64a3cce 100644
--- a/libsel4simple/src/simple.c
+++ b/libsel4simple/src/simple.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <simple/simple_helpers.h>
diff --git a/libsel4sync/CMakeLists.txt b/libsel4sync/CMakeLists.txt
index 6e1b4ce..9768766 100644
--- a/libsel4sync/CMakeLists.txt
+++ b/libsel4sync/CMakeLists.txt
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 cmake_minimum_required(VERSION 3.7.2)
diff --git a/libsel4sync/LICENSE_BSD2.txt b/libsel4sync/LICENSE_BSD2.txt
deleted file mode 100644
index 3c78ecf..0000000
--- a/libsel4sync/LICENSE_BSD2.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Files described as being under the "BSD 2-Clause" license fall under the
-following license.
-
------------------------------------------------------------------------
-
-Copyright (c) 2017 Data61 and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. 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 AUTHOR 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 AUTHOR 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/libsel4sync/README.md b/libsel4sync/README.md
index 3e30a08..c6d76d9 100644
--- a/libsel4sync/README.md
+++ b/libsel4sync/README.md
@@ -1,14 +1,8 @@
-<!---
-  Copyright 2017, Data61
-  Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-  ABN 41 687 119 230.
+<!--
+     Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 
-  This software may be distributed and modified according to the terms of
-  the BSD 2-Clause license. Note that NO WARRANTY is provided.
-  See "LICENSE_BSD2.txt" for details.
-
-     @TAG(DATA61_BSD)
-  -->
+     SPDX-License-Identifier: CC-BY-SA-4.0
+-->
 
 # seL4 synchronisation library
 
diff --git a/libsel4sync/include/sync/bin_sem.h b/libsel4sync/include/sync/bin_sem.h
index caaaa2f..f4a187e 100644
--- a/libsel4sync/include/sync/bin_sem.h
+++ b/libsel4sync/include/sync/bin_sem.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4sync/include/sync/bin_sem_bare.h b/libsel4sync/include/sync/bin_sem_bare.h
index 7fc55e6..3069c8a 100644
--- a/libsel4sync/include/sync/bin_sem_bare.h
+++ b/libsel4sync/include/sync/bin_sem_bare.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4sync/include/sync/condition_var.h b/libsel4sync/include/sync/condition_var.h
index 160fff2..b3f8851 100644
--- a/libsel4sync/include/sync/condition_var.h
+++ b/libsel4sync/include/sync/condition_var.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4sync/include/sync/mutex.h b/libsel4sync/include/sync/mutex.h
index ff50903..aa93a3b 100644
--- a/libsel4sync/include/sync/mutex.h
+++ b/libsel4sync/include/sync/mutex.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4sync/include/sync/recursive_mutex.h b/libsel4sync/include/sync/recursive_mutex.h
index 3846dd8..6e8189a 100644
--- a/libsel4sync/include/sync/recursive_mutex.h
+++ b/libsel4sync/include/sync/recursive_mutex.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 /* An implementation of recursive mutexes. Assumptions are similar to pthread
diff --git a/libsel4sync/include/sync/sem-bare.h b/libsel4sync/include/sync/sem-bare.h
index 203a8a3..505e7fc 100644
--- a/libsel4sync/include/sync/sem-bare.h
+++ b/libsel4sync/include/sync/sem-bare.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4sync/include/sync/sem.h b/libsel4sync/include/sync/sem.h
index 1b98435..eb72027 100644
--- a/libsel4sync/include/sync/sem.h
+++ b/libsel4sync/include/sync/sem.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4sync/spin/binary-sem/Makefile b/libsel4sync/spin/binary-sem/Makefile
index e5bbcd8..0f8d178 100644
--- a/libsel4sync/spin/binary-sem/Makefile
+++ b/libsel4sync/spin/binary-sem/Makefile
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 all: safety
diff --git a/libsel4sync/spin/binary-sem/binary-sem.pml b/libsel4sync/spin/binary-sem/binary-sem.pml
index 7cede0f..184f86e 100644
--- a/libsel4sync/spin/binary-sem/binary-sem.pml
+++ b/libsel4sync/spin/binary-sem/binary-sem.pml
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #define send_enabled 1
diff --git a/libsel4sync/spin/condition-vars/Makefile b/libsel4sync/spin/condition-vars/Makefile
index 0808e0c..077431e 100644
--- a/libsel4sync/spin/condition-vars/Makefile
+++ b/libsel4sync/spin/condition-vars/Makefile
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 all: safety liveness
diff --git a/libsel4sync/spin/condition-vars/cv.pml b/libsel4sync/spin/condition-vars/cv.pml
index 4bfc92b..7d60976 100644
--- a/libsel4sync/spin/condition-vars/cv.pml
+++ b/libsel4sync/spin/condition-vars/cv.pml
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #define MAX_RES_VAL 2
diff --git a/libsel4sync/spin/notification-semaphore/Makefile b/libsel4sync/spin/notification-semaphore/Makefile
index 510ef95..fc615e7 100644
--- a/libsel4sync/spin/notification-semaphore/Makefile
+++ b/libsel4sync/spin/notification-semaphore/Makefile
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 all: safety liveness
diff --git a/libsel4sync/spin/notification-semaphore/semaphore.pml b/libsel4sync/spin/notification-semaphore/semaphore.pml
index 983d1b3..23798db 100644
--- a/libsel4sync/spin/notification-semaphore/semaphore.pml
+++ b/libsel4sync/spin/notification-semaphore/semaphore.pml
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #define MAX_SEM_VAL 1
diff --git a/libsel4sync/spin/sem/Makefile b/libsel4sync/spin/sem/Makefile
index 0f1095f..3ae4a8c 100644
--- a/libsel4sync/spin/sem/Makefile
+++ b/libsel4sync/spin/sem/Makefile
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 all: safety liveness
diff --git a/libsel4sync/spin/sem/sem.promela b/libsel4sync/spin/sem/sem.promela
index 1d20ece..ba68a73 100644
--- a/libsel4sync/spin/sem/sem.promela
+++ b/libsel4sync/spin/sem/sem.promela
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #define MAX_SEM_VAL 1
diff --git a/libsel4sync/src/recursive_mutex.c b/libsel4sync/src/recursive_mutex.c
index 9862354..46a2cda 100644
--- a/libsel4sync/src/recursive_mutex.c
+++ b/libsel4sync/src/recursive_mutex.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4test/CMakeLists.txt b/libsel4test/CMakeLists.txt
index b903f19..8824b26 100644
--- a/libsel4test/CMakeLists.txt
+++ b/libsel4test/CMakeLists.txt
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 cmake_minimum_required(VERSION 3.7.2)
diff --git a/libsel4test/LICENSE_BSD2.txt b/libsel4test/LICENSE_BSD2.txt
deleted file mode 100644
index 3c78ecf..0000000
--- a/libsel4test/LICENSE_BSD2.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Files described as being under the "BSD 2-Clause" license fall under the
-following license.
-
------------------------------------------------------------------------
-
-Copyright (c) 2017 Data61 and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. 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 AUTHOR 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 AUTHOR 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/libsel4test/README b/libsel4test/README
index 845765b..dc867e6 100644
--- a/libsel4test/README
+++ b/libsel4test/README
@@ -1,13 +1,7 @@
-<!---
-  Copyright 2017, Data61
-  Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-  ABN 41 687 119 230.
+<!--
+     Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 
-  This software may be distributed and modified according to the terms of
-  the BSD 2-Clause license. Note that NO WARRANTY is provided.
-  See "LICENSE_BSD2.txt" for details.
-
-  @TAG(DATA61_BSD)
+     SPDX-License-Identifier: BSD-2-Clause
 -->
 
 This library is for running tests and generating test output in either
diff --git a/libsel4test/include/sel4test/macros.h b/libsel4test/include/sel4test/macros.h
index e021983..391ba24 100644
--- a/libsel4test/include/sel4test/macros.h
+++ b/libsel4test/include/sel4test/macros.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4test/include/sel4test/test.h b/libsel4test/include/sel4test/test.h
index 6355bf0..bdfe9c1 100644
--- a/libsel4test/include/sel4test/test.h
+++ b/libsel4test/include/sel4test/test.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
@@ -65,7 +59,7 @@
 #ifdef CONFIG_IOMMU
     seL4_CPtr io_space;
 #endif /* CONFIG_IOMMU */
-#ifdef CONFIG_ARM_SMMU
+#ifdef CONFIG_TK1_SMMU
     seL4_SlotRegion io_space_caps;
 #endif
     seL4_Word cores;
diff --git a/libsel4test/include/sel4test/testutil.h b/libsel4test/include/sel4test/testutil.h
index c661206..32c47b9 100644
--- a/libsel4test/include/sel4test/testutil.h
+++ b/libsel4test/include/sel4test/testutil.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4test/src/testutil.c b/libsel4test/src/testutil.c
index 241ce9f..c9ffd65 100644
--- a/libsel4test/src/testutil.c
+++ b/libsel4test/src/testutil.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4test/tools/extract_results.py b/libsel4test/tools/extract_results.py
index ea36113..73155e3 100755
--- a/libsel4test/tools/extract_results.py
+++ b/libsel4test/tools/extract_results.py
@@ -1,14 +1,9 @@
 #!/usr/bin/env python3
 #
-#  Copyright 2020, Data61
-#  Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-#  ABN 41 687 119 230.
+# Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
 #
-#  This software may be distributed and modified according to the terms of
-#  the BSD 2-Clause license. Note that NO WARRANTY is provided.
-#  See "LICENSE_BSD2.txt" for details.
+# SPDX-License-Identifier: BSD-2-Clause
 #
-#  @TAG(DATA61_BSD)
 import argparse
 import bs4
 import functools
diff --git a/libsel4utils/CMakeLists.txt b/libsel4utils/CMakeLists.txt
index ed5363b..f6d0a58 100644
--- a/libsel4utils/CMakeLists.txt
+++ b/libsel4utils/CMakeLists.txt
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 cmake_minimum_required(VERSION 3.7.2)
diff --git a/libsel4utils/LICENSE_BSD2.txt b/libsel4utils/LICENSE_BSD2.txt
deleted file mode 100644
index 3c78ecf..0000000
--- a/libsel4utils/LICENSE_BSD2.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Files described as being under the "BSD 2-Clause" license fall under the
-following license.
-
------------------------------------------------------------------------
-
-Copyright (c) 2017 Data61 and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. 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 AUTHOR 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 AUTHOR 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/libsel4utils/README.md b/libsel4utils/README.md
index a6fe4c4..f61a63f 100644
--- a/libsel4utils/README.md
+++ b/libsel4utils/README.md
@@ -1,13 +1,7 @@
-<!---
-  Copyright 2017, Data61
-  Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-  ABN 41 687 119 230.
+<!--
+     Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 
-  This software may be distributed and modified according to the terms of
-  the BSD 2-Clause license. Note that NO WARRANTY is provided.
-  See "LICENSE_BSD2.txt" for details.
-
-    @TAG(DATA61_BSD)
+     SPDX-License-Identifier: CC-BY-SA-4.0
 -->
 
 libsel4utils
@@ -64,9 +58,3 @@
 * `SEL4UTILS_STACK_SIZE` -- the default stack size to use for processes and threads.
 * `SEL4UTILS_CSPACE_SIZE_BITS` -- the default cspace size for new processes (threads use the current
                                 cspace).
-
-License
-========
-
-The files in this repository are release under standard open source licenses.
-Please see individual file headers and the `LICENSE_BSD2`.txt file for details.
diff --git a/libsel4utils/arch_include/arm/sel4utils/arch/cache.h b/libsel4utils/arch_include/arm/sel4utils/arch/cache.h
index c995488..2212670 100644
--- a/libsel4utils/arch_include/arm/sel4utils/arch/cache.h
+++ b/libsel4utils/arch_include/arm/sel4utils/arch/cache.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/arch_include/arm/sel4utils/arch/page.h b/libsel4utils/arch_include/arm/sel4utils/arch/page.h
index 68ba48b..27da53e 100644
--- a/libsel4utils/arch_include/arm/sel4utils/arch/page.h
+++ b/libsel4utils/arch_include/arm/sel4utils/arch/page.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/arch_include/arm/sel4utils/arch/util.h b/libsel4utils/arch_include/arm/sel4utils/arch/util.h
index 35d511d..d97ad98 100644
--- a/libsel4utils/arch_include/arm/sel4utils/arch/util.h
+++ b/libsel4utils/arch_include/arm/sel4utils/arch/util.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/arch_include/arm/sel4utils/arch/vspace.h b/libsel4utils/arch_include/arm/sel4utils/arch/vspace.h
index 5767e14..93e2093 100644
--- a/libsel4utils/arch_include/arm/sel4utils/arch/vspace.h
+++ b/libsel4utils/arch_include/arm/sel4utils/arch/vspace.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/arch_include/riscv/sel4utils/arch/cache.h b/libsel4utils/arch_include/riscv/sel4utils/arch/cache.h
index 9efeda1..eec593b 100644
--- a/libsel4utils/arch_include/riscv/sel4utils/arch/cache.h
+++ b/libsel4utils/arch_include/riscv/sel4utils/arch/cache.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/arch_include/riscv/sel4utils/arch/page.h b/libsel4utils/arch_include/riscv/sel4utils/arch/page.h
index 6ca3c06..b00bc83 100644
--- a/libsel4utils/arch_include/riscv/sel4utils/arch/page.h
+++ b/libsel4utils/arch_include/riscv/sel4utils/arch/page.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/arch_include/riscv/sel4utils/arch/util.h b/libsel4utils/arch_include/riscv/sel4utils/arch/util.h
index bdb03c3..a8b64fc 100644
--- a/libsel4utils/arch_include/riscv/sel4utils/arch/util.h
+++ b/libsel4utils/arch_include/riscv/sel4utils/arch/util.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/arch_include/riscv/sel4utils/arch/vspace.h b/libsel4utils/arch_include/riscv/sel4utils/arch/vspace.h
index 1bcd4db..43e6e57 100644
--- a/libsel4utils/arch_include/riscv/sel4utils/arch/vspace.h
+++ b/libsel4utils/arch_include/riscv/sel4utils/arch/vspace.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/arch_include/x86/sel4utils/arch/cache.h b/libsel4utils/arch_include/x86/sel4utils/arch/cache.h
index 89d088a..5cbe781 100644
--- a/libsel4utils/arch_include/x86/sel4utils/arch/cache.h
+++ b/libsel4utils/arch_include/x86/sel4utils/arch/cache.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/arch_include/x86/sel4utils/arch/page.h b/libsel4utils/arch_include/x86/sel4utils/arch/page.h
index 68ba48b..27da53e 100644
--- a/libsel4utils/arch_include/x86/sel4utils/arch/page.h
+++ b/libsel4utils/arch_include/x86/sel4utils/arch/page.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/arch_include/x86/sel4utils/arch/tsc.h b/libsel4utils/arch_include/x86/sel4utils/arch/tsc.h
index 66a1b1a..1cd20c0 100644
--- a/libsel4utils/arch_include/x86/sel4utils/arch/tsc.h
+++ b/libsel4utils/arch_include/x86/sel4utils/arch/tsc.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/arch_include/x86/sel4utils/arch/util.h b/libsel4utils/arch_include/x86/sel4utils/arch/util.h
index 3ef490b..3c45d7b 100644
--- a/libsel4utils/arch_include/x86/sel4utils/arch/util.h
+++ b/libsel4utils/arch_include/x86/sel4utils/arch/util.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/arch_include/x86/sel4utils/arch/vspace.h b/libsel4utils/arch_include/x86/sel4utils/arch/vspace.h
index c4fb989..ef72301 100644
--- a/libsel4utils/arch_include/x86/sel4utils/arch/vspace.h
+++ b/libsel4utils/arch_include/x86/sel4utils/arch/vspace.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/include/sel4utils/api.h b/libsel4utils/include/sel4utils/api.h
index b447d02..25847d0 100644
--- a/libsel4utils/include/sel4utils/api.h
+++ b/libsel4utils/include/sel4utils/api.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/include/sel4utils/benchmark.h b/libsel4utils/include/sel4utils/benchmark.h
index 31a0696..936090e 100644
--- a/libsel4utils/include/sel4utils/benchmark.h
+++ b/libsel4utils/include/sel4utils/benchmark.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/include/sel4utils/benchmark_track.h b/libsel4utils/include/sel4utils/benchmark_track.h
index 199542d..8dd9bc8 100644
--- a/libsel4utils/include/sel4utils/benchmark_track.h
+++ b/libsel4utils/include/sel4utils/benchmark_track.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 #include <autoconf.h>
diff --git a/libsel4utils/include/sel4utils/elf.h b/libsel4utils/include/sel4utils/elf.h
index deb720b..cfc81ea 100644
--- a/libsel4utils/include/sel4utils/elf.h
+++ b/libsel4utils/include/sel4utils/elf.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
@@ -70,7 +64,7 @@
  */
 void *
 sel4utils_elf_load_record_regions(vspace_t *loadee, vspace_t *loader, vka_t *loadee_vka,
-                                  vka_t *loader_vka, elf_t *elf, sel4utils_elf_region_t *regions, int mapanywhere);
+                                  vka_t *loader_vka, const elf_t *elf, sel4utils_elf_region_t *regions, int mapanywhere);
 
 /**
  * Wrapper for sel4utils_elf_load_record_regions. Does not record/perform reservations and
@@ -86,7 +80,7 @@
  */
 void *
 sel4utils_elf_load(vspace_t *loadee, vspace_t *loader, vka_t *loadee_vka,
-                   vka_t *loader_vka, elf_t *elf);
+                   vka_t *loader_vka, const elf_t *elf);
 
 /**
  * Parses an elf file but does not actually load it. Merely reserves the regions in the vspace
@@ -100,7 +94,7 @@
  * @return The entry point of the elf, NULL on error
  */
 void *
-sel4utils_elf_reserve(vspace_t *loadee, elf_t *elf, sel4utils_elf_region_t *regions);
+sel4utils_elf_reserve(vspace_t *loadee, const  elf_t *elf, sel4utils_elf_region_t *regions);
 
 /**
  * Parses an elf file and returns the number of loadable regions. The result of this
@@ -111,7 +105,7 @@
  * @return Number of loadable regions in the elf
  */
 int
-sel4utils_elf_num_regions(elf_t *elf);
+sel4utils_elf_num_regions(const elf_t *elf);
 
 /**
  * Looks for the __vsyscall section in an elf file and returns the value. This
@@ -121,7 +115,7 @@
  *
  * @return Address of vsyscall function or 0 if not found
  */
-uintptr_t sel4utils_elf_get_vsyscall(elf_t *elf);
+uintptr_t sel4utils_elf_get_vsyscall(const elf_t *elf);
 
 /**
  * Finds the section_name section in an elf file and returns the address.
@@ -134,7 +128,7 @@
  *
  * @return Address of section or 0 if not found
  */
-uintptr_t sel4utils_elf_get_section(elf_t *elf, const char *section_name, uint64_t *section_size);
+uintptr_t sel4utils_elf_get_section(const elf_t *elf, const char *section_name, uint64_t *section_size);
 
 /**
  * Parses an elf file and returns the number of phdrs. The result of this
@@ -143,7 +137,7 @@
  * @param image_name name of the image in the cpio archive to inspect
  * @return Number of phdrs in the elf
  */
-uint32_t sel4utils_elf_num_phdrs(elf_t *elf);
+uint32_t sel4utils_elf_num_phdrs(const elf_t *elf);
 
 /**
  * Parse an elf file and retrieve all the phdrs
@@ -154,5 +148,5 @@
  *
  * @return Number of phdrs retrieved
  */
-void sel4utils_elf_read_phdrs(elf_t *elf, size_t max_phdrs, Elf_Phdr *phdrs);
+void sel4utils_elf_read_phdrs(const elf_t *elf, size_t max_phdrs, Elf_Phdr *phdrs);
 
diff --git a/libsel4utils/include/sel4utils/helpers.h b/libsel4utils/include/sel4utils/helpers.h
index 4cb3539..b706f93 100644
--- a/libsel4utils/include/sel4utils/helpers.h
+++ b/libsel4utils/include/sel4utils/helpers.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/include/sel4utils/iommu_dma.h b/libsel4utils/include/sel4utils/iommu_dma.h
index 1ab3a43..53ec1bb 100644
--- a/libsel4utils/include/sel4utils/iommu_dma.h
+++ b/libsel4utils/include/sel4utils/iommu_dma.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/include/sel4utils/irq_server.h b/libsel4utils/include/sel4utils/irq_server.h
index 2b948ea..86cd404 100644
--- a/libsel4utils/include/sel4utils/irq_server.h
+++ b/libsel4utils/include/sel4utils/irq_server.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2019, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2019, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 /**
diff --git a/libsel4utils/include/sel4utils/mapping.h b/libsel4utils/include/sel4utils/mapping.h
index e45b97d..8cfa356 100644
--- a/libsel4utils/include/sel4utils/mapping.h
+++ b/libsel4utils/include/sel4utils/mapping.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
@@ -73,11 +67,11 @@
  */
 void sel4utils_unmap_dup(vka_t *vka, vspace_t *vspace, void *mapping, size_t size_bits);
 
-#if defined(CONFIG_IOMMU) || defined(CONFIG_ARM_SMMU)
+#if defined(CONFIG_IOMMU) || defined(CONFIG_TK1_SMMU)
 int sel4utils_map_iospace_page(vka_t *vka, seL4_CPtr iospace, seL4_CPtr frame, seL4_Word vaddr,
                                seL4_CapRights_t rights, int cacheable, seL4_Word size_bits,
                                vka_object_t *pts, int *num_pts);
-#endif /* defined(CONFIG_IOMMU) || defined(CONFIG_ARM_SMMU) */
+#endif /* defined(CONFIG_IOMMU) || defined(CONFIG_TK1_SMMU) */
 
 #ifdef CONFIG_VTX
 int sel4utils_map_ept_page(vka_t *vka, seL4_CPtr pd, seL4_CPtr frame, seL4_Word vaddr,
diff --git a/libsel4utils/include/sel4utils/mcs_api.h b/libsel4utils/include/sel4utils/mcs_api.h
index 1ce3186..7340fab 100644
--- a/libsel4utils/include/sel4utils/mcs_api.h
+++ b/libsel4utils/include/sel4utils/mcs_api.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/include/sel4utils/page.h b/libsel4utils/include/sel4utils/page.h
index 372e38a..0792ecc 100644
--- a/libsel4utils/include/sel4utils/page.h
+++ b/libsel4utils/include/sel4utils/page.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/include/sel4utils/page_dma.h b/libsel4utils/include/sel4utils/page_dma.h
index 7249efc..262c398 100644
--- a/libsel4utils/include/sel4utils/page_dma.h
+++ b/libsel4utils/include/sel4utils/page_dma.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/include/sel4utils/process.h b/libsel4utils/include/sel4utils/process.h
index a9e0f1b..e836ea9 100644
--- a/libsel4utils/include/sel4utils/process.h
+++ b/libsel4utils/include/sel4utils/process.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/include/sel4utils/process_config.h b/libsel4utils/include/sel4utils/process_config.h
index ffbc34d..124411b 100644
--- a/libsel4utils/include/sel4utils/process_config.h
+++ b/libsel4utils/include/sel4utils/process_config.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/include/sel4utils/profile.h b/libsel4utils/include/sel4utils/profile.h
index 91ced88..5c222a7 100644
--- a/libsel4utils/include/sel4utils/profile.h
+++ b/libsel4utils/include/sel4utils/profile.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/include/sel4utils/sel4_zf_logif.h b/libsel4utils/include/sel4utils/sel4_zf_logif.h
index 10ca4c8..50317f0 100644
--- a/libsel4utils/include/sel4utils/sel4_zf_logif.h
+++ b/libsel4utils/include/sel4utils/sel4_zf_logif.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/include/sel4utils/slab.h b/libsel4utils/include/sel4utils/slab.h
index 23dbfbe..fa1f2ec 100644
--- a/libsel4utils/include/sel4utils/slab.h
+++ b/libsel4utils/include/sel4utils/slab.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/include/sel4utils/stack.h b/libsel4utils/include/sel4utils/stack.h
index b482875..079e85f 100644
--- a/libsel4utils/include/sel4utils/stack.h
+++ b/libsel4utils/include/sel4utils/stack.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/include/sel4utils/strerror.h b/libsel4utils/include/sel4utils/strerror.h
index 23eff52..6d5b06d 100644
--- a/libsel4utils/include/sel4utils/strerror.h
+++ b/libsel4utils/include/sel4utils/strerror.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/include/sel4utils/thread.h b/libsel4utils/include/sel4utils/thread.h
index 1d745b2..2c06d98 100644
--- a/libsel4utils/include/sel4utils/thread.h
+++ b/libsel4utils/include/sel4utils/thread.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 /**
diff --git a/libsel4utils/include/sel4utils/thread_config.h b/libsel4utils/include/sel4utils/thread_config.h
index 7ea6e9e..aa7a96a 100644
--- a/libsel4utils/include/sel4utils/thread_config.h
+++ b/libsel4utils/include/sel4utils/thread_config.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/include/sel4utils/time_server/client.h b/libsel4utils/include/sel4utils/time_server/client.h
index ed69738..b62f351 100644
--- a/libsel4utils/include/sel4utils/time_server/client.h
+++ b/libsel4utils/include/sel4utils/time_server/client.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/include/sel4utils/util.h b/libsel4utils/include/sel4utils/util.h
index 96a0604..16367ac 100644
--- a/libsel4utils/include/sel4utils/util.h
+++ b/libsel4utils/include/sel4utils/util.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/include/sel4utils/vspace.h b/libsel4utils/include/sel4utils/vspace.h
index 4e4a1b0..9422a79 100644
--- a/libsel4utils/include/sel4utils/vspace.h
+++ b/libsel4utils/include/sel4utils/vspace.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 /*
@@ -198,9 +192,9 @@
  *
  * @param vspace                  uninitialised vspace struct to populate.
  * @param data                    uninitialised vspace data struct to populate.
+ * @param vspace_root             root object for the new vspace.
  * @param vka                     initialised vka that this virtual memory allocator will use to
  *                                allocate pages and pagetables. This allocator will never invoke free.
- * @param vspace_root             root object for the new vspace.
  * @param allocated_object_fn     function to call when objects are allocated. Can be null.
  * @param allocated_object_cookie cookie passed when the above function is called. Can be null.
  * @param existing_frames         a NULL terminated list of virtual addresses for 4K frames that are
@@ -222,10 +216,10 @@
  *
  * @param vspace                  uninitialised vspace struct to populate.
  * @param data                    uninitialised vspace data struct to populate.
+ * @param vspace_root             root object for the new vspace.
  * @param vka                     initialised vka that this virtual memory allocator will use to
  *                                allocate pages and pagetables. This allocator will never invoke free.
  * @param info                    seL4 boot info
- * @param vspace_root             root object for the new vspace.
  * @param allocated_object_fn     function to call when objects are allocated. Can be null.
  * @param allocated_object_cookie cookie passed when the above function is called. Can be null.
  *
diff --git a/libsel4utils/include/sel4utils/vspace_internal.h b/libsel4utils/include/sel4utils/vspace_internal.h
index 47c961f..5a3db58 100644
--- a/libsel4utils/include/sel4utils/vspace_internal.h
+++ b/libsel4utils/include/sel4utils/vspace_internal.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/sel4_arch_include/aarch32/sel4utils/sel4_arch/cache.h b/libsel4utils/sel4_arch_include/aarch32/sel4utils/sel4_arch/cache.h
index aa71851..1fd01d7 100644
--- a/libsel4utils/sel4_arch_include/aarch32/sel4utils/sel4_arch/cache.h
+++ b/libsel4utils/sel4_arch_include/aarch32/sel4utils/sel4_arch/cache.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/sel4_arch_include/aarch32/sel4utils/sel4_arch/util.h b/libsel4utils/sel4_arch_include/aarch32/sel4utils/sel4_arch/util.h
index c52971a..9db275f 100644
--- a/libsel4utils/sel4_arch_include/aarch32/sel4utils/sel4_arch/util.h
+++ b/libsel4utils/sel4_arch_include/aarch32/sel4utils/sel4_arch/util.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/sel4_arch_include/aarch32/sel4utils/sel4_arch/vspace.h b/libsel4utils/sel4_arch_include/aarch32/sel4utils/sel4_arch/vspace.h
index a9167e6..05b69b1 100644
--- a/libsel4utils/sel4_arch_include/aarch32/sel4utils/sel4_arch/vspace.h
+++ b/libsel4utils/sel4_arch_include/aarch32/sel4utils/sel4_arch/vspace.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/sel4_arch_include/aarch64/sel4utils/sel4_arch/cache.h b/libsel4utils/sel4_arch_include/aarch64/sel4utils/sel4_arch/cache.h
index a277f99..3b92bb2 100644
--- a/libsel4utils/sel4_arch_include/aarch64/sel4utils/sel4_arch/cache.h
+++ b/libsel4utils/sel4_arch_include/aarch64/sel4utils/sel4_arch/cache.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/sel4_arch_include/aarch64/sel4utils/sel4_arch/util.h b/libsel4utils/sel4_arch_include/aarch64/sel4utils/sel4_arch/util.h
index 72c976a..6f77f3a 100644
--- a/libsel4utils/sel4_arch_include/aarch64/sel4utils/sel4_arch/util.h
+++ b/libsel4utils/sel4_arch_include/aarch64/sel4utils/sel4_arch/util.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/sel4_arch_include/aarch64/sel4utils/sel4_arch/vspace.h b/libsel4utils/sel4_arch_include/aarch64/sel4utils/sel4_arch/vspace.h
index f68d018..5190c9e 100644
--- a/libsel4utils/sel4_arch_include/aarch64/sel4utils/sel4_arch/vspace.h
+++ b/libsel4utils/sel4_arch_include/aarch64/sel4utils/sel4_arch/vspace.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/sel4_arch_include/ia32/sel4utils/sel4_arch/util.h b/libsel4utils/sel4_arch_include/ia32/sel4utils/sel4_arch/util.h
index cc4004f..b3a0487 100644
--- a/libsel4utils/sel4_arch_include/ia32/sel4utils/sel4_arch/util.h
+++ b/libsel4utils/sel4_arch_include/ia32/sel4utils/sel4_arch/util.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/sel4_arch_include/ia32/sel4utils/sel4_arch/vspace.h b/libsel4utils/sel4_arch_include/ia32/sel4utils/sel4_arch/vspace.h
index 1399802..334cbea 100644
--- a/libsel4utils/sel4_arch_include/ia32/sel4utils/sel4_arch/vspace.h
+++ b/libsel4utils/sel4_arch_include/ia32/sel4utils/sel4_arch/vspace.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/sel4_arch_include/x86_64/sel4utils/sel4_arch/util.h b/libsel4utils/sel4_arch_include/x86_64/sel4utils/sel4_arch/util.h
index c02c437..78e8962 100644
--- a/libsel4utils/sel4_arch_include/x86_64/sel4utils/sel4_arch/util.h
+++ b/libsel4utils/sel4_arch_include/x86_64/sel4utils/sel4_arch/util.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4utils/sel4_arch_include/x86_64/sel4utils/sel4_arch/vspace.h b/libsel4utils/sel4_arch_include/x86_64/sel4utils/sel4_arch/vspace.h
index 6136ccf..8f081ec 100644
--- a/libsel4utils/sel4_arch_include/x86_64/sel4utils/sel4_arch/vspace.h
+++ b/libsel4utils/sel4_arch_include/x86_64/sel4utils/sel4_arch/vspace.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4utils/src/arch/riscv/arch.c b/libsel4utils/src/arch/riscv/arch.c
index 45303f4..ec66660 100644
--- a/libsel4utils/src/arch/riscv/arch.c
+++ b/libsel4utils/src/arch/riscv/arch.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #include <autoconf.h>
 #include <sel4utils/gen_config.h>
diff --git a/libsel4utils/src/elf.c b/libsel4utils/src/elf.c
index eb0d93b..ab2570a 100644
--- a/libsel4utils/src/elf.c
+++ b/libsel4utils/src/elf.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #include <autoconf.h>
 #include <sel4utils/gen_config.h>
@@ -37,7 +31,7 @@
 
 static int load_segment(vspace_t *loadee_vspace, vspace_t *loader_vspace,
                         vka_t *loadee_vka, vka_t *loader_vka,
-                        char *src, size_t file_size, int num_regions,
+                        const char *src, size_t file_size, int num_regions,
                         sel4utils_elf_region_t regions[num_regions], int region_index)
 {
     int error = seL4_NoError;
@@ -73,14 +67,16 @@
             //  Have to use reservation from adjacent region
             if ((region_index - 1) < 0) {
                 ZF_LOGE("Invalid regions: bad elf file.");
-                return 1;
+                error = seL4_InvalidArgument;
+                continue;
             }
             reservation = regions[region_index - 1].reservation;
         } else if (loadee_vaddr + (MIN(segment_size - pos, PAGE_SIZE_4K)) >
                    (region.reservation_vstart + region.reservation_size)) {
             if ((region_index + 1) >= num_regions) {
                 ZF_LOGE("Invalid regions: bad elf file.");
-                return 1;
+                error = seL4_InvalidArgument;
+                continue;
             }
             reservation = regions[region_index + 1].reservation;
         } else {
@@ -169,12 +165,12 @@
  * @return 0 on success.
  */
 static int load_segments(vspace_t *loadee_vspace, vspace_t *loader_vspace,
-                         vka_t *loadee_vka, vka_t *loader_vka, elf_t *elf_file,
+                         vka_t *loadee_vka, vka_t *loader_vka, const elf_t *elf_file,
                          int num_regions, sel4utils_elf_region_t regions[num_regions])
 {
     for (int i = 0; i < num_regions; i++) {
         int segment_index = regions[i].segment_index;
-        char *source_addr = elf_getProgramSegment(elf_file, segment_index);
+        const char *source_addr = elf_getProgramSegment(elf_file, segment_index);
         if (source_addr == NULL) {
             return 1;
         }
@@ -189,12 +185,12 @@
     return 0;
 }
 
-static bool is_loadable_section(elf_t *elf_file, int index)
+static bool is_loadable_section(const elf_t *elf_file, int index)
 {
     return elf_getProgramHeaderType(elf_file, index) == PT_LOAD;
 }
 
-static int count_loadable_regions(elf_t *elf_file)
+static int count_loadable_regions(const elf_t *elf_file)
 {
     int num_headers = elf_getNumProgramHeaders(elf_file);
     int loadable_headers = 0;
@@ -208,7 +204,7 @@
     return loadable_headers;
 }
 
-int sel4utils_elf_num_regions(elf_t *elf_file)
+int sel4utils_elf_num_regions(const elf_t *elf_file)
 {
     return count_loadable_regions(elf_file);
 }
@@ -354,7 +350,7 @@
  *
  * @return 0 on success.
  */
-static int read_regions(elf_t *elf_file, size_t total_regions, sel4utils_elf_region_t regions[total_regions])
+static int read_regions(const elf_t *elf_file, size_t total_regions, sel4utils_elf_region_t regions[total_regions])
 {
     int num_headers = elf_getNumProgramHeaders(elf_file);
     int region_id = 0;
@@ -420,7 +416,7 @@
  *
  * @return 0 on success.
  */
-static int elf_reserve_regions_in_vspace(vspace_t *loadee, elf_t *elf_file,
+static int elf_reserve_regions_in_vspace(vspace_t *loadee, const elf_t *elf_file,
                                          int num_regions, sel4utils_elf_region_t regions[num_regions], int mapanywhere)
 {
     int error = read_regions(elf_file, num_regions, regions);
@@ -445,7 +441,7 @@
     return 0;
 }
 
-static void *entry_point(elf_t *elf_file)
+static void *entry_point(const elf_t *elf_file)
 {
     uint64_t entry_point = elf_getEntryPoint(elf_file);
     if ((uint32_t)(entry_point >> 32) != 0) {
@@ -458,7 +454,7 @@
 }
 
 
-void *sel4utils_elf_reserve(vspace_t *loadee, elf_t *elf_file, sel4utils_elf_region_t *regions)
+void *sel4utils_elf_reserve(vspace_t *loadee, const elf_t *elf_file, sel4utils_elf_region_t *regions)
 {
     /* Count number of loadable segments */
     int num_regions = count_loadable_regions(elf_file);
@@ -475,7 +471,7 @@
 }
 
 void *sel4utils_elf_load_record_regions(vspace_t *loadee, vspace_t *loader, vka_t *loadee_vka, vka_t *loader_vka,
-                                        elf_t *elf_file, sel4utils_elf_region_t *regions, int mapanywhere)
+                                        const elf_t *elf_file, sel4utils_elf_region_t *regions, int mapanywhere)
 {
     /* Calculate number of loadable regions.  Use stack array if one wasn't passed in */
     int num_regions = count_loadable_regions(elf_file);
@@ -513,7 +509,7 @@
     return entry_point(elf_file);
 }
 
-uintptr_t sel4utils_elf_get_vsyscall(elf_t *elf_file)
+uintptr_t sel4utils_elf_get_vsyscall(const elf_t *elf_file)
 {
     uintptr_t *addr = (uintptr_t *)sel4utils_elf_get_section(elf_file, "__vsyscall", NULL);
     if (addr) {
@@ -523,11 +519,11 @@
     }
 }
 
-uintptr_t sel4utils_elf_get_section(elf_t *elf_file, const char *section_name, uint64_t *section_size)
+uintptr_t sel4utils_elf_get_section(const elf_t *elf_file, const char *section_name, uint64_t *section_size)
 {
     /* See if we can find the section */
     size_t section_id;
-    void *addr = elf_getSectionNamed(elf_file, section_name, &section_id);
+    const void *addr = elf_getSectionNamed(elf_file, section_name, &section_id);
     if (addr) {
         if (section_size != NULL) {
             *section_size = elf_getSectionSize(elf_file, section_id);
@@ -538,17 +534,18 @@
     }
 }
 
-void *sel4utils_elf_load(vspace_t *loadee, vspace_t *loader, vka_t *loadee_vka, vka_t *loader_vka, elf_t *elf_file)
+void *sel4utils_elf_load(vspace_t *loadee, vspace_t *loader, vka_t *loadee_vka, vka_t *loader_vka,
+                         const elf_t *elf_file)
 {
     return sel4utils_elf_load_record_regions(loadee, loader, loadee_vka, loader_vka, elf_file, NULL, 0);
 }
 
-uint32_t sel4utils_elf_num_phdrs(elf_t *elf_file)
+uint32_t sel4utils_elf_num_phdrs(const elf_t *elf_file)
 {
     return elf_getNumProgramHeaders(elf_file);
 }
 
-void sel4utils_elf_read_phdrs(elf_t *elf_file, size_t max_phdrs, Elf_Phdr *phdrs)
+void sel4utils_elf_read_phdrs(const elf_t *elf_file, size_t max_phdrs, Elf_Phdr *phdrs)
 {
     size_t num_phdrs = elf_getNumProgramHeaders(elf_file);
     for (size_t i = 0; i < num_phdrs && i < max_phdrs; i++) {
diff --git a/libsel4utils/src/iommu_dma.c b/libsel4utils/src/iommu_dma.c
index 9282113..f88abef 100644
--- a/libsel4utils/src/iommu_dma.c
+++ b/libsel4utils/src/iommu_dma.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4utils/src/irq_server/irq_server.c b/libsel4utils/src/irq_server/irq_server.c
index 952cdcd..8364c0e 100644
--- a/libsel4utils/src/irq_server/irq_server.c
+++ b/libsel4utils/src/irq_server/irq_server.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2019, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2019, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4utils/irq_server.h>
diff --git a/libsel4utils/src/mapping.c b/libsel4utils/src/mapping.c
index 99b5059..f315be8 100644
--- a/libsel4utils/src/mapping.c
+++ b/libsel4utils/src/mapping.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
@@ -37,6 +31,19 @@
     seL4_ARCH_VMAttributes attr = cacheable ? seL4_ARCH_Default_VMAttributes :
                                   seL4_ARCH_Uncached_VMAttributes;
 
+    /* EPT attributes are different than a standard page table. Previously, a kernel bug
+     * masked the problem by always setting EPT mappings to WriteBack. Once the bug was
+     * fixed, every page became uncached, killing VM performance.
+     *
+     * This check ensure the pages are properly cached
+     */
+#ifdef CONFIG_VTX
+    if (seL4_X86_Page_MapEPT == map_page_fn) {
+        attr = cacheable ? seL4_X86_EPT_Default_VMAttributes :
+               seL4_X86_EPT_Uncached_VMAttributes;
+    }
+#endif
+
     *num_objects = 0;
     int error = map_page_fn(frame, root, (seL4_Word) vaddr, rights, attr);
     while (error == seL4_FailedLookup) {
diff --git a/libsel4utils/src/page_dma.c b/libsel4utils/src/page_dma.c
index f63ca47..40fafd4 100644
--- a/libsel4utils/src/page_dma.c
+++ b/libsel4utils/src/page_dma.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4utils/src/process.c b/libsel4utils/src/process.c
index 2ee9fd0..aafafd6 100644
--- a/libsel4utils/src/process.c
+++ b/libsel4utils/src/process.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #include <autoconf.h>
 #include <sel4utils/gen_config.h>
@@ -561,7 +555,7 @@
     if (config.is_elf) {
         unsigned long size;
         unsigned long cpio_len = _cpio_archive_end - _cpio_archive;
-        char *file = cpio_get_file(_cpio_archive, cpio_len, config.image_name, &size);
+        char const *file = cpio_get_file(_cpio_archive, cpio_len, config.image_name, &size);
         elf_t elf;
         elf_newFile(file, size, &elf);
 
diff --git a/libsel4utils/src/profile.c b/libsel4utils/src/profile.c
index 5c62b61..bb4d389 100644
--- a/libsel4utils/src/profile.c
+++ b/libsel4utils/src/profile.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4utils/profile.h>
diff --git a/libsel4utils/src/sel4_arch/aarch32/arch.c b/libsel4utils/src/sel4_arch/aarch32/arch.c
index 46d1723..4f9af8c 100644
--- a/libsel4utils/src/sel4_arch/aarch32/arch.c
+++ b/libsel4utils/src/sel4_arch/aarch32/arch.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #include <autoconf.h>
 #include <sel4utils/gen_config.h>
diff --git a/libsel4utils/src/sel4_arch/aarch64/arch.c b/libsel4utils/src/sel4_arch/aarch64/arch.c
index d0b950e..8c18c00 100644
--- a/libsel4utils/src/sel4_arch/aarch64/arch.c
+++ b/libsel4utils/src/sel4_arch/aarch64/arch.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4utils/src/sel4_arch/ia32/arch.c b/libsel4utils/src/sel4_arch/ia32/arch.c
index f086206..b4df325 100644
--- a/libsel4utils/src/sel4_arch/ia32/arch.c
+++ b/libsel4utils/src/sel4_arch/ia32/arch.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #include <autoconf.h>
 #include <sel4utils/gen_config.h>
diff --git a/libsel4utils/src/sel4_arch/x86_64/arch.c b/libsel4utils/src/sel4_arch/x86_64/arch.c
index 8d1653a..f30caf8 100644
--- a/libsel4utils/src/sel4_arch/x86_64/arch.c
+++ b/libsel4utils/src/sel4_arch/x86_64/arch.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #include <autoconf.h>
 #include <sel4utils/gen_config.h>
diff --git a/libsel4utils/src/slab.c b/libsel4utils/src/slab.c
index bf242a2..ea530d0 100644
--- a/libsel4utils/src/slab.c
+++ b/libsel4utils/src/slab.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4utils/slab.h>
diff --git a/libsel4utils/src/stack.c b/libsel4utils/src/stack.c
index b50db33..4d6a6aa 100644
--- a/libsel4utils/src/stack.c
+++ b/libsel4utils/src/stack.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <errno.h>
diff --git a/libsel4utils/src/strerror.c b/libsel4utils/src/strerror.c
index 139b4dd..370e925 100644
--- a/libsel4utils/src/strerror.c
+++ b/libsel4utils/src/strerror.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <stdio.h> /* For fprintf() */
diff --git a/libsel4utils/src/thread.c b/libsel4utils/src/thread.c
index 0dc13ab..eecccca 100644
--- a/libsel4utils/src/thread.c
+++ b/libsel4utils/src/thread.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
diff --git a/libsel4utils/src/time_server/client.c b/libsel4utils/src/time_server/client.c
index bb11a3b..69ccfae 100644
--- a/libsel4utils/src/time_server/client.c
+++ b/libsel4utils/src/time_server/client.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <sel4/sel4.h>
diff --git a/libsel4utils/src/vspace/bootstrap.c b/libsel4utils/src/vspace/bootstrap.c
index ef81d41..6d9d80b 100644
--- a/libsel4utils/src/vspace/bootstrap.c
+++ b/libsel4utils/src/vspace/bootstrap.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
@@ -465,7 +459,10 @@
 #ifdef CONFIG_ARCH_ARM
         seL4_ARM_Page_Unify_Instruction(dest.capPtr, 0, PAGE_SIZE_4K);
         seL4_ARM_Page_Unify_Instruction(cap, 0, PAGE_SIZE_4K);
-#endif /* CONFIG_ARCH_ARM */
+#elif CONFIG_ARCH_RISCV
+        /* Ensure that the writes to memory that may be executed become visible */
+        asm volatile("fence.i" ::: "memory");
+#endif
 
         /* unmap our copy */
         vspace_unmap_pages(current, dest_addr, 1, seL4_PageBits, VSPACE_PRESERVE);
diff --git a/libsel4utils/src/vspace/vspace.c b/libsel4utils/src/vspace/vspace.c
index 63f15b4..dfccc14 100644
--- a/libsel4utils/src/vspace/vspace.c
+++ b/libsel4utils/src/vspace/vspace.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 /* see sel4utils/vspace.h for details */
diff --git a/libsel4vka/CMakeLists.txt b/libsel4vka/CMakeLists.txt
index 9f472a4..34536cd 100644
--- a/libsel4vka/CMakeLists.txt
+++ b/libsel4vka/CMakeLists.txt
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 cmake_minimum_required(VERSION 3.7.2)
diff --git a/libsel4vka/LICENSE_BSD2.txt b/libsel4vka/LICENSE_BSD2.txt
deleted file mode 100644
index 3c78ecf..0000000
--- a/libsel4vka/LICENSE_BSD2.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Files described as being under the "BSD 2-Clause" license fall under the
-following license.
-
------------------------------------------------------------------------
-
-Copyright (c) 2017 Data61 and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. 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 AUTHOR 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 AUTHOR 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/libsel4vka/arch_include/arm/vka/arch/kobject_t.h b/libsel4vka/arch_include/arm/vka/arch/kobject_t.h
index 2dc4a50..e2b463f 100644
--- a/libsel4vka/arch_include/arm/vka/arch/kobject_t.h
+++ b/libsel4vka/arch_include/arm/vka/arch/kobject_t.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/arch_include/arm/vka/arch/object.h b/libsel4vka/arch_include/arm/vka/arch/object.h
index f7b032d..152312f 100644
--- a/libsel4vka/arch_include/arm/vka/arch/object.h
+++ b/libsel4vka/arch_include/arm/vka/arch/object.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
@@ -27,7 +21,7 @@
 LEAKY(vcpu)
 #endif
 
-#ifdef CONFIG_ARM_SMMU
+#ifdef CONFIG_TK1_SMMU
 static inline int vka_alloc_io_page_table(vka_t *vka, vka_object_t *result)
 {
     return vka_alloc_object(vka, seL4_ARM_IOPageTableObject, seL4_IOPageTableBits, result);
@@ -54,7 +48,7 @@
         return seL4_PageDirBits;
     case seL4_ARM_VCPUObject:
         return seL4_ARM_VCPUBits;
-#ifdef CONFIG_ARM_SMMU
+#ifdef CONFIG_TK1_SMMU
     case seL4_ARM_IOPageTableObject:
         return seL4_IOPageTableBits;
 #endif
diff --git a/libsel4vka/arch_include/riscv/vka/arch/kobject_t.h b/libsel4vka/arch_include/riscv/vka/arch/kobject_t.h
index 1be3976..5425932 100644
--- a/libsel4vka/arch_include/riscv/vka/arch/kobject_t.h
+++ b/libsel4vka/arch_include/riscv/vka/arch/kobject_t.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4vka/arch_include/riscv/vka/arch/object.h b/libsel4vka/arch_include/riscv/vka/arch/object.h
index 7cc61ef..4030561 100644
--- a/libsel4vka/arch_include/riscv/vka/arch/object.h
+++ b/libsel4vka/arch_include/riscv/vka/arch/object.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4vka/arch_include/x86/vka/arch/kobject_t.h b/libsel4vka/arch_include/x86/vka/arch/kobject_t.h
index ee3f31e..63b649a 100644
--- a/libsel4vka/arch_include/x86/vka/arch/kobject_t.h
+++ b/libsel4vka/arch_include/x86/vka/arch/kobject_t.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/arch_include/x86/vka/arch/object.h b/libsel4vka/arch_include/x86/vka/arch/object.h
index 4a8801f..fb3f0ce 100644
--- a/libsel4vka/arch_include/x86/vka/arch/object.h
+++ b/libsel4vka/arch_include/x86/vka/arch/object.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/include/vka/capops.h b/libsel4vka/include/vka/capops.h
index 42b1958..c146357 100644
--- a/libsel4vka/include/vka/capops.h
+++ b/libsel4vka/include/vka/capops.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/include/vka/cspacepath_t.h b/libsel4vka/include/vka/cspacepath_t.h
index beebbb3..f095b19 100644
--- a/libsel4vka/include/vka/cspacepath_t.h
+++ b/libsel4vka/include/vka/cspacepath_t.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/include/vka/debug-vka.h b/libsel4vka/include/vka/debug-vka.h
index 0146b83..46d0d47 100644
--- a/libsel4vka/include/vka/debug-vka.h
+++ b/libsel4vka/include/vka/debug-vka.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/include/vka/ipcbuffer.h b/libsel4vka/include/vka/ipcbuffer.h
index 3156280..81d23b6 100644
--- a/libsel4vka/include/vka/ipcbuffer.h
+++ b/libsel4vka/include/vka/ipcbuffer.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/include/vka/kobject_t.h b/libsel4vka/include/vka/kobject_t.h
index 370bc8d..5c1b5eb 100644
--- a/libsel4vka/include/vka/kobject_t.h
+++ b/libsel4vka/include/vka/kobject_t.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/include/vka/null-vka.h b/libsel4vka/include/vka/null-vka.h
index 34a2f8a..71d1ef3 100644
--- a/libsel4vka/include/vka/null-vka.h
+++ b/libsel4vka/include/vka/null-vka.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/include/vka/object.h b/libsel4vka/include/vka/object.h
index 5c948c8..994e26d 100644
--- a/libsel4vka/include/vka/object.h
+++ b/libsel4vka/include/vka/object.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
@@ -101,7 +95,7 @@
 static inline seL4_CPtr vka_alloc_object_leaky(vka_t *vka, seL4_Word type, seL4_Word size_bits) WARN_UNUSED_RESULT;
 static inline seL4_CPtr vka_alloc_object_leaky(vka_t *vka, seL4_Word type, seL4_Word size_bits)
 {
-    vka_object_t result = {.cptr = 0, .ut = 0, .type = 0, size_bits = 0};
+    vka_object_t result = {.cptr = 0, .ut = 0, .type = 0, .size_bits = 0};
     return vka_alloc_object(vka, type, size_bits, &result) == -1 ? 0 : result.cptr;
 }
 
diff --git a/libsel4vka/include/vka/object_capops.h b/libsel4vka/include/vka/object_capops.h
index 3e1f668..9a9ac8a 100644
--- a/libsel4vka/include/vka/object_capops.h
+++ b/libsel4vka/include/vka/object_capops.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4vka/include/vka/vka.h b/libsel4vka/include/vka/vka.h
index 7542489..651995e 100644
--- a/libsel4vka/include/vka/vka.h
+++ b/libsel4vka/include/vka/vka.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/sel4_arch_include/aarch32/vka/sel4_arch/kobject_t.h b/libsel4vka/sel4_arch_include/aarch32/vka/sel4_arch/kobject_t.h
index 17b5d37..1533e7a 100644
--- a/libsel4vka/sel4_arch_include/aarch32/vka/sel4_arch/kobject_t.h
+++ b/libsel4vka/sel4_arch_include/aarch32/vka/sel4_arch/kobject_t.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/sel4_arch_include/aarch32/vka/sel4_arch/object.h b/libsel4vka/sel4_arch_include/aarch32/vka/sel4_arch/object.h
index 783722a..5ddcb7e 100644
--- a/libsel4vka/sel4_arch_include/aarch32/vka/sel4_arch/object.h
+++ b/libsel4vka/sel4_arch_include/aarch32/vka/sel4_arch/object.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/sel4_arch_include/aarch64/vka/sel4_arch/kobject_t.h b/libsel4vka/sel4_arch_include/aarch64/vka/sel4_arch/kobject_t.h
index 46aab67..08d811e 100644
--- a/libsel4vka/sel4_arch_include/aarch64/vka/sel4_arch/kobject_t.h
+++ b/libsel4vka/sel4_arch_include/aarch64/vka/sel4_arch/kobject_t.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/sel4_arch_include/aarch64/vka/sel4_arch/object.h b/libsel4vka/sel4_arch_include/aarch64/vka/sel4_arch/object.h
index 623db04..ba2647d 100644
--- a/libsel4vka/sel4_arch_include/aarch64/vka/sel4_arch/object.h
+++ b/libsel4vka/sel4_arch_include/aarch64/vka/sel4_arch/object.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/sel4_arch_include/ia32/vka/sel4_arch/kobject_t.h b/libsel4vka/sel4_arch_include/ia32/vka/sel4_arch/kobject_t.h
index 78b3894..02cc3a7 100644
--- a/libsel4vka/sel4_arch_include/ia32/vka/sel4_arch/kobject_t.h
+++ b/libsel4vka/sel4_arch_include/ia32/vka/sel4_arch/kobject_t.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/sel4_arch_include/ia32/vka/sel4_arch/object.h b/libsel4vka/sel4_arch_include/ia32/vka/sel4_arch/object.h
index 5de1950..96bfc5f 100644
--- a/libsel4vka/sel4_arch_include/ia32/vka/sel4_arch/object.h
+++ b/libsel4vka/sel4_arch_include/ia32/vka/sel4_arch/object.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/sel4_arch_include/x86_64/vka/sel4_arch/kobject_t.h b/libsel4vka/sel4_arch_include/x86_64/vka/sel4_arch/kobject_t.h
index 1d92939..1f0d68d 100644
--- a/libsel4vka/sel4_arch_include/x86_64/vka/sel4_arch/kobject_t.h
+++ b/libsel4vka/sel4_arch_include/x86_64/vka/sel4_arch/kobject_t.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/sel4_arch_include/x86_64/vka/sel4_arch/object.h b/libsel4vka/sel4_arch_include/x86_64/vka/sel4_arch/object.h
index 8cf9eae..36ef6c3 100644
--- a/libsel4vka/sel4_arch_include/x86_64/vka/sel4_arch/object.h
+++ b/libsel4vka/sel4_arch_include/x86_64/vka/sel4_arch/object.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vka/src/debug-vka.c b/libsel4vka/src/debug-vka.c
index 4fda2d3..1953db2 100644
--- a/libsel4vka/src/debug-vka.c
+++ b/libsel4vka/src/debug-vka.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <assert.h>
diff --git a/libsel4vka/src/null-vka.c b/libsel4vka/src/null-vka.c
index 35bebc8..d46cdb7 100644
--- a/libsel4vka/src/null-vka.c
+++ b/libsel4vka/src/null-vka.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <assert.h>
diff --git a/libsel4vspace/CMakeLists.txt b/libsel4vspace/CMakeLists.txt
index 02dd4e4..7e24107 100644
--- a/libsel4vspace/CMakeLists.txt
+++ b/libsel4vspace/CMakeLists.txt
@@ -1,13 +1,7 @@
 #
-# Copyright 2017, Data61
-# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
-# ABN 41 687 119 230.
+# Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 #
-# This software may be distributed and modified according to the terms of
-# the BSD 2-Clause license. Note that NO WARRANTY is provided.
-# See "LICENSE_BSD2.txt" for details.
-#
-# @TAG(DATA61_BSD)
+# SPDX-License-Identifier: BSD-2-Clause
 #
 
 cmake_minimum_required(VERSION 3.7.2)
diff --git a/libsel4vspace/LICENSE_BSD2.txt b/libsel4vspace/LICENSE_BSD2.txt
deleted file mode 100644
index 3c78ecf..0000000
--- a/libsel4vspace/LICENSE_BSD2.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Files described as being under the "BSD 2-Clause" license fall under the
-following license.
-
------------------------------------------------------------------------
-
-Copyright (c) 2017 Data61 and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. 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 AUTHOR 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 AUTHOR 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/libsel4vspace/arch_include/arm/vspace/arch/page.h b/libsel4vspace/arch_include/arm/vspace/arch/page.h
index feb9ac8..396182b 100644
--- a/libsel4vspace/arch_include/arm/vspace/arch/page.h
+++ b/libsel4vspace/arch_include/arm/vspace/arch/page.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4vspace/arch_include/riscv/vspace/arch/page.h b/libsel4vspace/arch_include/riscv/vspace/arch/page.h
index 376519c..ccf007d 100644
--- a/libsel4vspace/arch_include/riscv/vspace/arch/page.h
+++ b/libsel4vspace/arch_include/riscv/vspace/arch/page.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4vspace/arch_include/x86/vspace/arch/page.h b/libsel4vspace/arch_include/x86/vspace/arch/page.h
index 095f7e6..153b2d2 100644
--- a/libsel4vspace/arch_include/x86/vspace/arch/page.h
+++ b/libsel4vspace/arch_include/x86/vspace/arch/page.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
diff --git a/libsel4vspace/include/vspace/mapping.h b/libsel4vspace/include/vspace/mapping.h
index dcb5d80..5ce2e87 100644
--- a/libsel4vspace/include/vspace/mapping.h
+++ b/libsel4vspace/include/vspace/mapping.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 #pragma once
 
@@ -25,7 +19,7 @@
 static inline seL4_Error vspace_iospace_map_page(seL4_CPtr cap, seL4_CPtr root, seL4_Word vaddr,
                                                  seL4_CapRights_t rights, UNUSED seL4_Word attr)
 {
-#if defined(CONFIG_IOMMU) || defined(CONFIG_ARM_SMMU)
+#if defined(CONFIG_IOMMU) || defined(CONFIG_TK1_SMMU)
     return seL4_ARCH_Page_MapIO(cap, root, rights, vaddr);
 #else
     return -1;
diff --git a/libsel4vspace/include/vspace/page.h b/libsel4vspace/include/vspace/page.h
index c235711..bbca402 100644
--- a/libsel4vspace/include/vspace/page.h
+++ b/libsel4vspace/include/vspace/page.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vspace/include/vspace/vspace.h b/libsel4vspace/include/vspace/vspace.h
index 6f046f5..8a39dce 100644
--- a/libsel4vspace/include/vspace/vspace.h
+++ b/libsel4vspace/include/vspace/vspace.h
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #pragma once
diff --git a/libsel4vspace/src/arch/arm/mapping.c b/libsel4vspace/src/arch/arm/mapping.c
index 67f2aa0..e3c9003 100644
--- a/libsel4vspace/src/arch/arm/mapping.c
+++ b/libsel4vspace/src/arch/arm/mapping.c
@@ -1,31 +1,26 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
 #include <vspace/mapping.h>
 
-#ifdef CONFIG_ARM_SMMU
-static seL4_Error vspace_map_io(seL4_CPtr cap, seL4_CPtr iospace_root, seL4_Word vaddr, UNUSED seL4_Word attr)
+#ifdef CONFIG_TK1_SMMU
+static seL4_Error vspace_map_io(seL4_CPtr cap, seL4_CPtr iospace_root,
+                                seL4_Word vaddr, UNUSED seL4_Word attr)
 {
     return seL4_ARM_IOPageTable_Map(cap, iospace_root, vaddr);
 }
-#endif
+#endif /* CONFIG_TK1_SMMU */
 
 int vspace_get_iospace_map_obj(UNUSED seL4_Word failed_bits, vspace_map_obj_t *obj)
 {
-    if (unlikely(obj == NULL) || !config_set(CONFIG_ARM_SMMU)) {
+    if (unlikely(obj == NULL) || !config_set(CONFIG_TK1_SMMU)) {
         return EINVAL;
     }
-#ifdef CONFIG_ARM_SMMU
+#ifdef CONFIG_TK1_SMMU
     obj->size_bits = seL4_IOPageTableBits;
     obj->type = seL4_ARM_IOPageTableObject;
     obj->map_fn = vspace_map_io;
diff --git a/libsel4vspace/src/arch/riscv/mapping.c b/libsel4vspace/src/arch/riscv/mapping.c
index dea31da..e3ea786 100644
--- a/libsel4vspace/src/arch/riscv/mapping.c
+++ b/libsel4vspace/src/arch/riscv/mapping.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <vspace/mapping.h>
diff --git a/libsel4vspace/src/arch/x86/mapping.c b/libsel4vspace/src/arch/x86/mapping.c
index 7e6dc7a..436d343 100644
--- a/libsel4vspace/src/arch/x86/mapping.c
+++ b/libsel4vspace/src/arch/x86/mapping.c
@@ -1,25 +1,20 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
 #include <vspace/mapping.h>
 #include <sel4/arch/mapping.h>
 
-static seL4_Error vspace_map_io(seL4_CPtr cap, seL4_CPtr iospace_root, seL4_Word vaddr, UNUSED seL4_Word attr)
-{
 #ifdef CONFIG_IOMMU
+static seL4_Error vspace_map_io(seL4_CPtr cap, seL4_CPtr iospace_root,
+                                seL4_Word vaddr, UNUSED seL4_Word attr)
+{
     return seL4_X86_IOPageTable_Map(cap, iospace_root, vaddr);
-#endif
 }
+#endif /* CONFIG_TK1_SMMU */
 
 int vspace_get_iospace_map_obj(UNUSED seL4_Word failed_bits, vspace_map_obj_t *obj)
 {
diff --git a/libsel4vspace/src/sel4_arch/aarch32/mapping.c b/libsel4vspace/src/sel4_arch/aarch32/mapping.c
index ea8d5e2..e429d45 100644
--- a/libsel4vspace/src/sel4_arch/aarch32/mapping.c
+++ b/libsel4vspace/src/sel4_arch/aarch32/mapping.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <vspace/mapping.h>
diff --git a/libsel4vspace/src/sel4_arch/aarch64/mapping.c b/libsel4vspace/src/sel4_arch/aarch64/mapping.c
index 49bf5eb..0e91f3e 100644
--- a/libsel4vspace/src/sel4_arch/aarch64/mapping.c
+++ b/libsel4vspace/src/sel4_arch/aarch64/mapping.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <vspace/mapping.h>
diff --git a/libsel4vspace/src/sel4_arch/ia32/mapping.c b/libsel4vspace/src/sel4_arch/ia32/mapping.c
index eea8b65..1337095 100644
--- a/libsel4vspace/src/sel4_arch/ia32/mapping.c
+++ b/libsel4vspace/src/sel4_arch/ia32/mapping.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <vspace/mapping.h>
diff --git a/libsel4vspace/src/sel4_arch/x86_64/mapping.c b/libsel4vspace/src/sel4_arch/x86_64/mapping.c
index b86edca..df2a87e 100644
--- a/libsel4vspace/src/sel4_arch/x86_64/mapping.c
+++ b/libsel4vspace/src/sel4_arch/x86_64/mapping.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2018, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <vspace/mapping.h>
diff --git a/libsel4vspace/src/vspace.c b/libsel4vspace/src/vspace.c
index 58a0998..a7596fb 100644
--- a/libsel4vspace/src/vspace.c
+++ b/libsel4vspace/src/vspace.c
@@ -1,13 +1,7 @@
 /*
- * Copyright 2017, Data61
- * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- * ABN 41 687 119 230.
+ * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
  *
- * This software may be distributed and modified according to the terms of
- * the BSD 2-Clause license. Note that NO WARRANTY is provided.
- * See "LICENSE_BSD2.txt" for details.
- *
- * @TAG(DATA61_BSD)
+ * SPDX-License-Identifier: BSD-2-Clause
  */
 
 #include <autoconf.h>
