ci: remove hold-over files from legacy CI

Everything this commit removes is unused by the current incarnation of
the Open CI, and hasn't been used in several years either by the Open CI
or the local CI.

Change-Id: I0c5f8bbc7e08031d979c172111e52ac4eb7ab15b
Signed-off-by: Chris Kay <chris.kay@arm.com>
(cherry picked from commit 1a34d57f749818445bffcc34a00e9ea7f565cdad)
diff --git a/docs/cov.dot b/docs/cov.dot
deleted file mode 100644
index 4002db1..0000000
--- a/docs/cov.dot
+++ /dev/null
@@ -1,29 +0,0 @@
-/* View this file with xdot */
-digraph coverity {
-	"cov-config" -> "golden-cov-build";
-	"golden-setup" -> "golden-cov-build";
-
-	"cov-config" -> "branch-cov-build";
-	"branch-setup" -> "branch-cov-build";
-
-	"golden-cov-build" -> "golden-cov-analyze";
-	"branch-cov-build" -> "branch-cov-analyze";
-
-	"stream-setup" -> "golden-cov-commit-defects";
-	"golden-cov-analyze" -> "golden-cov-commit-defects";
-
-	"stream-setup" -> "branch-cov-commit-defects";
-	"branch-cov-analyze" -> "branch-cov-commit-defects";
-
-	"golden-cov-commit-defects" -> "branch-report-compare";
-	"branch-cov-analyze" -> "branch-report-compare";
-
-	"stream-setup" -> "branch-report-full";
-	"branch-cov-analyze" -> "branch-report-full";
-	"branch-cov-commit-defects" -> "branch-report-full";
-
-	/* Useful Coverity analysis targets */
-	"branch-cov-commit-defects" [color=red style=dotted];
-	"branch-report-compare" [color=red];
-	"branch-report-full" [color=red];
-}
diff --git a/docs/jobs_seq.txt b/docs/jobs_seq.txt
deleted file mode 100644
index 5a5346b..0000000
--- a/docs/jobs_seq.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-# This is to be pasted on to websequencediagrams.com to get the sequence
-# diagram of current ARM CI setup
-
-title Trusted Firmware CI core jobs
-
-participant tf-ci-gateway
-note over tf-ci-gateway: clones all repositories
-note over tf-ci-gateway: generates test files
-tf-ci-gateway->+tf-worker: triggers for each test file
-activate tf-ci-gateway
-
-alt Juno run
-tf-worker->+tf-build-for-lava: triggers build
-note over tf-build-for-lava: archives artefacts
-tf-build-for-lava->-tf-worker: build complete
-
-note over tf-worker: copies artefacts
-tf-worker->+LAVA: submit job
-LAVA->-tf-worker: completes
-else FVP run
-note over tf-worker: Build package
-note over tf-worker: Run package
-end
-
-tf-worker->-tf-ci-gateway: test complete
-deactivate tf-ci-gateway
-
-note over tf-ci-gateway: generate test report
-note over tf-ci-gateway: clean up checkouts
diff --git a/job/README b/job/README
deleted file mode 100644
index 1462b5b..0000000
--- a/job/README
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-This directory contains snippets that are to be run from Jenkins jobs
-
diff --git a/job/clean_filer_ws.sh b/job/clean_filer_ws.sh
deleted file mode 100755
index 722ac49..0000000
--- a/job/clean_filer_ws.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-set -e
-
-# Clean up filer work space if we had cloned the repository ourselves
-
-# On Jenkins v2, $SCRATCH_OWNER will be set to the job name and build number. If
-# that matches with that of the current job, then remove the scratch space.
-if [ "$SCRATCH_OWNER" = "${JOB_NAME:?}-${BUILD_NUMBER:?}" ]; then
-	rm -rf "${SCRATCH_OWNER_SPACE?:}"
-	exit 0
-fi
-
-# On Jenkins v1, $FILER_WS will be unset if we don't need to clean up
-if [ -z "$FILER_WS" ]; then
-	exit 0
-fi
-
-rm -rf "$FILER_WS"
diff --git a/job/tf-build-for-lava/build_test.sh b/job/tf-build-for-lava/build_test.sh
deleted file mode 100755
index 6ca2775..0000000
--- a/job/tf-build-for-lava/build_test.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-set -e
-
-"$CI_ROOT/script/build_package.sh"
diff --git a/job/tf-ci-gateway/generate_tests.sh b/job/tf-ci-gateway/generate_tests.sh
deleted file mode 100755
index 815de09..0000000
--- a/job/tf-ci-gateway/generate_tests.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-set -e
-
-# Generate test descriptions
-"$CI_ROOT/script/gen_test_desc.py"
diff --git a/job/tf-coverity/should_run_tf_coverity.sh b/job/tf-coverity/should_run_tf_coverity.sh
deleted file mode 100755
index b3dd90d..0000000
--- a/job/tf-coverity/should_run_tf_coverity.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# This script checks if the current patch modifies scripts which run
-# Coverity Online Scan in tf-coverity jenkins job.
-
-set -e
-
-cd $CI_ROOT
-current_commit=$(git rev-parse --short HEAD)
-modified_files=$(git diff-tree --no-commit-id --name-only -r $current_commit)
-
-hit=$(echo $modified_files|grep "script/tf-coverity/"|wc -l)
-cd -
-
-if [ $hit -gt 0 ]; then
-	echo "Coverity scripts modified in this patch. tf-coverity will be triggered"
-	exit 0
-fi
-
-echo "No coverity scripts modified"
-exit 1
diff --git a/job/tf-gerrit-bot/gerrit_bot.py b/job/tf-gerrit-bot/gerrit_bot.py
deleted file mode 100644
index 9ec3a2f..0000000
--- a/job/tf-gerrit-bot/gerrit_bot.py
+++ /dev/null
@@ -1,232 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#
-# Assigns reviewers according to maintainers file.
-
-import argparse
-import os
-from pygerrit2 import GerritRestAPI, HTTPBasicAuth
-import re
-
-DEFAULT_GERRIT_URL = 'https://review.trustedfirmware.org'
-DEFAULT_GERRIT_PROJECT_NAME = 'TF-A/trusted-firmware-a'
-DEFAULT_MAINTAINERS_FILE_NAME = 'maintainers.rst'
-
-# Commit message is returned in a file list, ignore it
-COMMIT_MSG_FILE = '/COMMIT_MSG'
-
-def connect_to_gerrit(gerrit_url, gerrit_user, gerrit_password):
-    '''
-    Connect to Gerrit server.
-    The password is not a plaintext password,
-    it can be obtained from Profile/Settings/HTTP Password page.
-    Returns GerritRestAPI class.
-    '''
-
-    auth = HTTPBasicAuth(gerrit_user, gerrit_password)
-    return GerritRestAPI(url=gerrit_url, auth=auth)
-
-
-def get_open_changes(rest_api, project_name):
-    '''
-    Get list of open reviews for the project.
-    '''
-
-    # Pass DETAILED_ACCOUNTS to get owner username
-    return rest_api.get("/changes/?q=status:open%20project:" + project_name + "&o=DETAILED_ACCOUNTS")
-
-
-def get_files(rest_api, change_id):
-    '''
-    Get list of changed files for the review.
-    Commit message is removed from the list.
-    '''
-
-    files_list = rest_api.get("/changes/" + change_id + "/revisions/current/files/")
-    del files_list[COMMIT_MSG_FILE]
-
-    return files_list
-
-
-def add_reviewer(rest_api, change_id, username, dry_run):
-    '''
-    Add reviewer to the review.
-    '''
-
-    endpoint = "/changes/" + change_id + "/reviewers"
-    kwargs = {"data": {"reviewer": username}}
-
-    # Exception is thrown if username is wrong, so just print it
-    try:
-        if not dry_run:
-            rest_api.post(endpoint, **kwargs)
-    except Exception as e:
-        print("  Add reviewer failed, username: " + str(username))
-        print("  " + str(e))
-    else:
-        print("  Reviewer added, username: " + str(username))
-
-
-def parse_maintainers_file(file_path):
-    '''
-    Parse maintainers file.
-    Returns a dictionary {file_path:set{user1, user2, ...}}
-    '''
-
-    f = open(file_path, encoding='utf8')
-    file_text = f.read()
-    f.close()
-
-    FILE_PREFIX = "\n:F: "
-
-    regex = r"^:G: `(?P<user>.*)`_$(?P<paths>(" + FILE_PREFIX + r".*$)+)"
-    matches = re.finditer(regex, file_text, re.MULTILINE)
-
-    # Create a dictionary {file_path:set{user1, user2, ...}} for faster search
-    result_dict = {}
-
-    for match in matches:
-        user_name = match.group("user")
-
-        paths = match.group("paths").split(FILE_PREFIX)
-        paths.remove("")
-
-        # Fill the dictionary
-        for path in paths:
-            if path not in result_dict:
-                result_dict[path] = set()
-
-            result_dict[path].add(user_name)
-
-    return result_dict
-
-
-def get_file_maintainers(file_path, maintainers_dictionary):
-    '''
-    Returns a set of usernames(mainteiners) for the file.
-    '''
-
-    maintainers = set()
-
-    file = file_path
-
-    # Get maintainers of the file
-    maintainers_set = maintainers_dictionary.get(file)
-    if maintainers_set:
-        maintainers.update(maintainers_set)
-
-    # Get maintainers of the directories
-    while (file > "/"):
-        # Get upper directory on each step.
-        file = os.path.dirname(file)
-        path_to_check = file + "/"
-
-        maintainers_set = maintainers_dictionary.get(path_to_check)
-        if maintainers_set:
-            maintainers.update(maintainers_set)
-
-    return maintainers
-
-
-def assign_reviewers(rest_api, maintainers_dictionary, change, dry_run):
-    '''
-    Assign maintainers to the review.
-    '''
-
-    # It looks like some accounts may not have username
-    owner_username = None
-    if ('username' in change['owner']):
-        owner_username = change['owner']['username']
-
-    print("\nChange: " + str(change['id']))
-    print("  Topic: " + str(change.get('topic')))
-    print("  Owner: " + str(owner_username))
-
-    change_maintainers = set()
-
-    # Get list of all files in the change
-    files = get_files(rest_api, change['id'])
-
-    for file in files:
-        # Get all maintainers of the file
-        file_maintainers = get_file_maintainers(file, maintainers_dictionary)
-
-        if (len(file_maintainers) > 0):
-            print("  File: " + file + " maintainers: " + str(file_maintainers))
-
-        change_maintainers.update(file_maintainers)
-
-    # Don't add owner even if he is a maintainer
-    change_maintainers.discard(owner_username)
-
-    for maintainer in change_maintainers:
-        add_reviewer(rest_api, change['id'], maintainer, dry_run)
-
-
-def parse_cmd_line():
-
-    parser = argparse.ArgumentParser(
-        description="Gerrit bot",
-        epilog="""
-            Assigns reviewers according to maintainers file.
-        """
-    )
-
-    required_group = parser.add_argument_group('required arguments')
-
-    parser.add_argument("--url", "-u",
-                        help = """
-                        Gerrit URL (default: %(default)s)
-                        """,
-                        default = DEFAULT_GERRIT_URL)
-
-    parser.add_argument("--project", "-p",
-                        help = """
-                        Project name (default: %(default)s).
-                        """,
-                        default = DEFAULT_GERRIT_PROJECT_NAME)
-
-    parser.add_argument("--maintainers", "-m",
-                        help = """
-                        Path to maintainers file (default: %(default)s).
-                        """,
-                        default = DEFAULT_MAINTAINERS_FILE_NAME)
-
-    parser.add_argument("--dry-run",
-                        help = """
-                        Check maintainers, but don't add them (default: %(default)s).
-                        """,
-                        action='store_true',
-                        default = False)
-
-    required_group.add_argument("--user",
-                        help = """
-                        Gerrit user.
-                        """,
-                        required = True)
-
-    required_group.add_argument("--password",
-                        help="""
-                        Gerrit HTTP password.
-                        This is NOT a plaintext password.
-                        But the value from Profile/Settings/HTTP Password
-                        """,
-                        required = True)
-
-    return parser.parse_args()
-
-
-if __name__ == '__main__':
-
-    args = parse_cmd_line()
-
-    maintainers_dict = parse_maintainers_file(args.maintainers)
-    rest = connect_to_gerrit(args.url, args.user, args.password)
-    changes = get_open_changes(rest, args.project)
-
-    for change in changes:
-        assign_reviewers(rest, maintainers_dict, change, args.dry_run)
diff --git a/job/tf-gerrit-bot/requirements.txt b/job/tf-gerrit-bot/requirements.txt
deleted file mode 100644
index 69f5187..0000000
--- a/job/tf-gerrit-bot/requirements.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# Gerrit bot requires:
-
-pygerrit2>=2.0.9
diff --git a/job/tf-gerrit-bot/run_gerrit_bot.sh b/job/tf-gerrit-bot/run_gerrit_bot.sh
deleted file mode 100755
index ce4b03b..0000000
--- a/job/tf-gerrit-bot/run_gerrit_bot.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# Install pygerrit2 if needed
-python3 -c "from pygerrit2 import GerritRestAPI, HTTPBasicAuth"
-if [ $? != 0 ]
-then
-	yes | pip3 install pygerrit2
-fi
-
-# Run bot
-cd $(dirname "$0")
-python3 gerrit_bot.py --user $1 --password $2 --maintainers $3
diff --git a/job/tf-github-autoreply/github_pr_bot.py b/job/tf-github-autoreply/github_pr_bot.py
deleted file mode 100755
index b21da50..0000000
--- a/job/tf-github-autoreply/github_pr_bot.py
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright (c) 2019-2020, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-import argparse
-import datetime
-import sys
-import os.path
-import logging
-
-try:
-    from github import Github
-except ImportError:
-    print(
-        "Can not import from github. PyGitHub may be missing. Check requirements.txt."
-    )
-    sys.exit(1)
-
-SCRIPT_DIR = os.path.dirname(__file__)
-logger = logging.getLogger()
-
-
-def commented_already(comments, bots):
-    """Check if our bots have left a comment."""
-    return any(comment.user.login in bots for comment in comments)
-
-
-def readfile(path):
-    """Read a file into a python string"""
-    with open(os.path.join(SCRIPT_DIR, path), "r") as textfile:
-        return textfile.read()
-
-
-def reply_to_issues(repo, bots, dry_run):
-    """Reply to all new issues without a bot reply"""
-    body = readfile("issue_comment.md")
-    logging.info("Replying to new issues on {}/{}".format(repo.owner.login, repo.name))
-    for issue in repo.get_issues(since=datetime.datetime(2019, 10, 17, 12)):
-        if not commented_already(issue.get_comments(), bots):
-            logging.info("Repliyng to issue #{}: {}".format(issue.number, issue.title))
-            if not dry_run:
-                issue.create_comment(body.format(user_name=issue.user.login))
-
-
-def reply_to_pull_requests(repo, bots, dry_run):
-    """Reply to all new Pull Requests without a bot reply"""
-    body = readfile("pull_comment.md")
-    logging.info("Replying to PRs on {}/{}".format(repo.owner.login, repo.name))
-    for pr in repo.get_pulls("status=open"):
-        # get_issue_comments() returns top-level PR comments.
-        # While get_comments() or get_review_comments()
-        # return comments against diff in the PR.
-        if not commented_already(pr.get_issue_comments(), bots):
-            logging.info("Repling to pull request #{}: {}".format(pr.number, pr.title))
-            if not dry_run:
-                pr.create_issue_comment(body.format(user_name=pr.user.login))
-
-
-def to_repo(gh, owner, name):
-    """Construct a Repo from a logged in Github object an owner and a repo name"""
-    return gh.get_user(owner).get_repo(name)
-
-
-if __name__ == "__main__":
-    parser = argparse.ArgumentParser()
-    parser.add_argument("user", help="Username to login to GitHub")
-    parser.add_argument("pass", help="Password of the GitHub user")
-    parser.add_argument(
-        "--dry-run",
-        help="Just print what would be done",
-        default=False,
-        action="store_true",
-    )
-    parser.add_argument('--verbose', '-v', action='count', default=0, help="Increase verbosity of the printing")
-    args = parser.parse_args()
-
-    if args.verbose <= 0:
-        logger.setLevel(logging.ERROR)
-    elif args.verbose <= 1:
-        logger.setLevel(logging.INFO)
-    else:
-        logger.setLevel(logging.DEBUG)
-
-    repository_owner = "ARM-software"
-    repository_name = "arm-trusted-firmware"
-    issues_name = "tf-issues"
-    bots = {"arm-tf-bot", "ssg-bot", args.user}
-
-    gh = Github(args.user, getattr(args, "pass"))
-    pr_repo = to_repo(gh, repository_owner, repository_name)
-    reply_to_pull_requests(pr_repo, bots, args.dry_run)
-    issue_repo = to_repo(gh, repository_owner, issues_name)
-    reply_to_pull_requests(issue_repo, bots, args.dry_run)
-    reply_to_issues(issue_repo, bots, args.dry_run)
diff --git a/job/tf-github-autoreply/issue_comment.md b/job/tf-github-autoreply/issue_comment.md
deleted file mode 100644
index fb4d721..0000000
--- a/job/tf-github-autoreply/issue_comment.md
+++ /dev/null
@@ -1,15 +0,0 @@
-Hello @{user_name}!
-
-
-Thank you for raising an issue for **Trusted Firmware-A**.
-
-The TF-A project has now migrated to www.trustedfirmware.org. This issue tracker will still remain accessible for some time, but only for historical reasons. From now on you should raise new issues on trustedfirmware.org.
-
-If it is a query or a design discussion it is better discussed via the [mailing list](https://lists.trustedfirmware.org/mailman/listinfo/tf-a). If it is issue/bug which need to be tracked, raise an issue in the [issue tracking board](https://developer.trustedfirmware.org/maniphest/query/open/) and also send an email to the [mailing list](https://lists.trustedfirmware.org/mailman/listinfo/tf-a) to notify the TF-A community.
-
-## How do I raise issues for TF-A?
-Please use our new [issue tracking board](https://developer.trustedfirmware.org/maniphest/query/open/). For this you just need to login with your existing GitHub account. We also have a [guide](https://developer.trustedfirmware.org/dashboard/view/6/) to help you raise the issue with the appropriate labels and tags. This way it will be easier for both you and us to track and address the issue most effectively.
-
-We are looking forward to seeing you in trustedfirmware.org!
-
-The **Trusted Firmware-A** team
\ No newline at end of file
diff --git a/job/tf-github-autoreply/pull_comment.md b/job/tf-github-autoreply/pull_comment.md
deleted file mode 100644
index 0418224..0000000
--- a/job/tf-github-autoreply/pull_comment.md
+++ /dev/null
@@ -1,24 +0,0 @@
-Hello @{user_name}!
-
-
-Thank you for your contribution to **Trusted Firmware-A**!
-
-The TF-A project has now migrated to www.trustedfirmware.org. Our GitHub repo will remain accessible as a Read-Only mirror but we have changed the way we accept contributions for the project.
-
-## How do I contribute patches to TF-A?
-We have a [Getting started](https://developer.trustedfirmware.org/w/tf_a/gerrit-getting-started/) article which we hope will make everything very straightforward! And if you would like more details you can always refer to the [contributing guidelines](https://trustedfirmware-a.readthedocs.io/en/latest/process/contributing.html).
-
-A quick overview:
-1. Go to review.trustedfirmware.org
-2. Register with your existing GitHub account
-3. Submit your patches!
-
-## What if I face any problems?
-We have many channels through which you can contact us:
-
- * **Our mailing lists**
-   You can send us an email in the [public TF-A mailing list](https://lists.trustedfirmware.org/mailman/listinfo/tf-a). [Here](https://lists.trustedfirmware.org/mailman/listinfo) you can also find all the mailing lists for all the projects hosted under trustedfirmware.org.
-
-We are looking forward to seeing your patch submitted to trustedfirmware.org!
-
-The **Trusted Firmware-A** team
diff --git a/job/tf-github-autoreply/requirements.txt b/job/tf-github-autoreply/requirements.txt
deleted file mode 100644
index 5aeecd4..0000000
--- a/job/tf-github-autoreply/requirements.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-#github_pr_bot.py requires:
-
-pygithub>=1.44
diff --git a/job/tf-github-autoreply/run_github_autoreply.sh b/job/tf-github-autoreply/run_github_autoreply.sh
deleted file mode 100755
index fec34d2..0000000
--- a/job/tf-github-autoreply/run_github_autoreply.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2020, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# Install PyGitHub if needed
-python3 -c "import github"
-if [ $? != 0 ]
-then
-	yes | pip3 install pygithub
-fi
-
-# Run bot
-python3 $(dirname "${BASH_SOURCE[0]}")/github_pr_bot.py $@
diff --git a/job/tf-github-pr/should_run_nominations.sh b/job/tf-github-pr/should_run_nominations.sh
deleted file mode 100755
index 0f05af4..0000000
--- a/job/tf-github-pr/should_run_nominations.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-nom_file="$WORKSPACE/nominations"
-rules_file="$CI_ROOT/script/trusted-firmware.nomination.py"
-if [ -f "$rules_file" ]; then
-	cd "$TF_CHECKOUT_LOC"
-	"$CI_ROOT/script/gen_nomination.py" "$rules_file" > "$nom_file"
-	if [ -s "$nom_file" ]; then
-		exit 0
-	else
-		# No nominations
-		exit 1
-	fi
-fi
-
-exit 1
diff --git a/job/tf-main/run_fast_forward_master.sh b/job/tf-main/run_fast_forward_master.sh
deleted file mode 100755
index 1610986..0000000
--- a/job/tf-main/run_fast_forward_master.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2020, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-set -e
-
-if [[ $MULTIJOB_FAILED -eq 0 ]]; then
-	echo "Proceed with integration->master fast-forward merge"
-	bash /arm/projectscratch/ssg/trusted-fw/ci-scripts/fast-forward-master.sh
-        exit 0
-else
-	echo "Do not proceed with integration->master merge as sub-jobs failed"
-        exit 1
-fi
-
diff --git a/job/tf-main/should_execute_static.sh b/job/tf-main/should_execute_static.sh
deleted file mode 100755
index ecfdf76..0000000
--- a/job/tf-main/should_execute_static.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-set -e
-
-if [ "$SKIP_STATIC" = "true" ]; then
-	exit 1
-else
-	exit 0
-fi
diff --git a/job/tf-merge-watcher/check_scratch.sh b/job/tf-merge-watcher/check_scratch.sh
deleted file mode 100755
index 8b1fbc1..0000000
--- a/job/tf-merge-watcher/check_scratch.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-ci_root="$(readlink -f "$(dirname "$0")/../..")"
-source "$ci_root/utils.sh"
-
-if ! diff $project_filer/ci-scripts/ $ci_root/script/scratch_scripts/
-then
-	echo "scripts in scratch folder don't match scripts in repository" >&2
-	exit 1
-fi
diff --git a/job/tf-merge-watcher/update_reference_repo.sh b/job/tf-merge-watcher/update_reference_repo.sh
deleted file mode 100755
index 2393246..0000000
--- a/job/tf-merge-watcher/update_reference_repo.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-set -e
-
-ci_root="$(readlink -f "$(dirname "$0")/../..")"
-source "$ci_root/utils.sh"
-
-declare -A repo_urls=(
-[pdcs-platforms/ap/tf-topics]="name=trusted-firmware url=$tf_src_repo_url"
-[trusted-firmware/tf-a-tests]="name=trusted-firmware-tf url=$tftf_src_repo_url"
-[pdswinf/ci/pdcs-platforms/platform-ci]="name=trusted-firmware-ci url=$tf_ci_repo_url"
-)
-
-project="${GERRIT_PROJECT:-$PROJECT}"
-eval "${repo_urls[$project]?}"
-ref_dir="$project_filer/ref-repos/$name"
-
-# Create/update reference repository.
-mkdir -p "$ref_dir"
-if [ ! -d "$ref_dir" ]; then
-	# Clone afresh
-	mkdir -p "$ref_dir"
-	git clone -q "$url" "$ref_dir"
-else
-	# Update master
-	cd "$ref_dir"
-	git fetch -q origin master
-	git reset -q --hard origin/master
-fi
-
-echo "Updated $name"
diff --git a/job/tf-optee-build/build_optee.sh b/job/tf-optee-build/build_optee.sh
deleted file mode 100755
index f8c755f..0000000
--- a/job/tf-optee-build/build_optee.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-ci_root="$(readlink -f "$(dirname "$0")/../..")"
-source "$ci_root/utils.sh"
-
-cd optee
-
-# Setting up Python virtual environment with pyelftools and pycrypto
-python3 -m venv python_virtualenv
-source python_virtualenv/bin/activate
-
-# wheel is not specified as pycrypto dependency but it is necessary for
-# installing it.
-pip install wheel
-pip install pyelftools pycrypto
-
-make PLATFORM=vexpress \
-	PLATFORM_FLAVOR="${PLATFORM_FLAVOR:?}" \
-	CFG_ARM64_core=y \
-	CROSS_COMPILE32=arm-none-eabi-
-
-# Deactivating Python virtual environment
-deactivate
-
-# Remove header from tee.bin
-aarch64-none-elf-objcopy -O binary \
-	out/arm-plat-vexpress/core/tee.elf out/arm-plat-vexpress/core/tee.bin
-
-# Gather files to export in a single directory
-mkdir -p "$workspace/artefacts"
-cp out/arm-plat-vexpress/core/tee.bin "$workspace/artefacts"
diff --git a/job/tf-static-checks/run_static_checks.sh b/job/tf-static-checks/run_static_checks.sh
deleted file mode 100644
index 36f8d29..0000000
--- a/job/tf-static-checks/run_static_checks.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# This script runs the static checks in tf-static-checks
-# jenkins job.
-
-if [ "$REPO_UNDER_TEST" = "trusted-firmware" ]; then
-	cd "$TF_CHECKOUT_LOC"
-else
-	cd "$TFTF_CHECKOUT_LOC"
-fi
-
-export IS_CONTINUOUS_INTEGRATION=1
-static_fail=0
-
-if ! "$CI_ROOT/script/static-checks/static-checks.sh"; then
-	static_fail=1
-fi
-
-if [ -f "static-checks.log" ]; then
-	mv "static-checks.log" "$WORKSPACE"
-fi
-
-exit "$static_fail"
diff --git a/job/tf-sync-repos/sync.sh b/job/tf-sync-repos/sync.sh
deleted file mode 100755
index c96eb43..0000000
--- a/job/tf-sync-repos/sync.sh
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# Push the updated master from local to the selected remote
-#
-# $1 = git remote human readable name
-# $2 = git remote URL
-sync_repo()
-{
-	local result
-
-	echo Pushing to "$1"...
-	git push --tags $2 master
-	result=$?
-	if [ $result != 0 ]
-	then
-		echo Pushing to $1 FAILED!
-	else
-		echo Pushing to $1 SUCCEEDED!
-	fi
-	return $result
-}
-
-# Clone the selected repo from tf.org
-#
-# Some variables utilised inside this function come from utils.sh
-#
-# $1 = repo to clone
-clone_repo()
-{
-	local repo_url
-	local repo_name
-
-	case $1 in
-		trusted-firmware-a)
-			repo_url=$tf_src_repo_url
-			repo_name="TF-A"
-			;;
-		tf-a-tests)
-			repo_url=$tftf_src_repo_url
-			repo_name="TF-A-Tests"
-			;;
-		tf-a-ci-scripts)
-			repo_url=$ci_src_repo_url
-			repo_name="TF-A-CI-Scripts"
-			;;
-		*)
-			echo "ERROR: Unknown repo to be cloned. sync.sh failed!"
-			exit 1
-			;;
-	esac
-	
-	# Remove old tree if it exists
-	if [ -d $1 ]; then
-		rm -rf "$1"
-	fi
-	# Fresh clone
-	echo Cloning $repo_name from trustedfirmware.org...
-	git clone $repo_url
-}
-
-# Pull changes from tf.org to the local repo
-#
-# $1 = repo to update. It must be the same with the directory name
-pull_changes()
-{
-	cd $1
-	echo Pulling $1 from trustedfirmware.org...
-	git remote update --prune
-	git checkout master
-	git merge --ff-only origin/master
-	cd - > /dev/null
-}
-
-# exit if anything fails
-set -e
-
-# Source this file to get TF-A and TF-A-Tests repo URLs
-source "$CI_ROOT/utils.sh"
-
-clone_repo trusted-firmware-a
-clone_repo tf-a-tests
-clone_repo tf-a-ci-scripts
-
-pull_changes trusted-firmware-a
-pull_changes tf-a-tests
-pull_changes tf-a-ci-scripts
-
-# stop exiting automatically
-set +e
-
-# Update TF-A remotes
-cd trusted-firmware-a
-sync_repo GitHub https://$GH_USER:$GH_PASSWORD@github.com/ARM-software/arm-trusted-firmware.git
-github=$?
-sync_repo "internal TF-A Gerrit" $tf_arm_gerrit_repo
-tfa_gerrit=$?
-
-# Update TF-A-Tests
-cd ../tf-a-tests
-sync_repo "internal TF-A-Tests Gerrit" $tftf_arm_gerrit_repo
-tftf_gerrit=$?
-
-cd ../tf-a-ci-scripts
-sync_repo "internal TF-A-CI-Scripts Gerrit" $ci_arm_gerrit_repo
-ci_gerrit=$?
-
-if [ $github != 0 -o $tfa_gerrit != 0 -o $tftf_gerrit != 0 -o $ci_gerrit != 0 ]
-then
-	exit 1
-fi
diff --git a/job/tf-worker/generate_yaml.sh b/job/tf-worker/generate_yaml.sh
deleted file mode 100755
index 99ab597..0000000
--- a/job/tf-worker/generate_yaml.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-set -e
-
-if echo "$RUN_CONFIG" | grep -iq 'tftf'; then
-	payload_type="tftf"
-else
-	payload_type="linux"
-fi
-
-"$CI_ROOT/script/parse_lava_job.py" --payload-type "$payload_type"
diff --git a/job/tf-worker/is_juno_config.sh b/job/tf-worker/is_juno_config.sh
deleted file mode 100755
index 3ddd7e3..0000000
--- a/job/tf-worker/is_juno_config.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-set -e
-
-# If we're skipping LAVA or Juno
-if [ "$skip_juno" ] || [ "$skip_runs" ]; then
-	exit 1
-fi
-
-# For Juno runs, we need let the board download build artefacts using a URL. The
-# only way to have a board-accessible URL at the moment is to have build
-# artefacts archived. Therefore, only for Juno do we spawn the build as a
-# separate job; otherwise, we build within this job.
-if echo "$RUN_CONFIG" | grep -iqe '^juno'; then
-	exit 0
-else
-	exit 1
-fi
diff --git a/job/tf-worker/is_n1sdp_config.sh b/job/tf-worker/is_n1sdp_config.sh
deleted file mode 100755
index cc3a988..0000000
--- a/job/tf-worker/is_n1sdp_config.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2021 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-set -e
-
-# For n1sdp runs, we need to let the board download build artefacts using a URL.
-# The only way to have a board-accessible URL at the moment is to have build
-# artefacts archived. Therefore, for n1sdp we spawn the build as a separate job
-if echo "$RUN_CONFIG" | grep -iqe '^n1sdp'; then
-        exit 0
-else
-        exit 1
-fi
diff --git a/job/tf-worker/manage_artefacts.sh b/job/tf-worker/manage_artefacts.sh
deleted file mode 100755
index 4f9057e..0000000
--- a/job/tf-worker/manage_artefacts.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-set -e
-
-if [ -d artefacts ]; then
-	# Remove everything except logs and scan-build artefacts such as
-	# .html, .js and .css files useful for offline debug of static
-	# analysis defects
-	find artefacts -type f -not \( -name "*.log" -o -name "*.html" -o -name "*.js" -o -name "*.css" \) -exec rm -f {} +
-fi
diff --git a/job/tf-worker/parse_test.sh b/job/tf-worker/parse_test.sh
deleted file mode 100755
index 4f60da3..0000000
--- a/job/tf-worker/parse_test.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-set -e
-
-# Parse test config. This produces $workspace/env file
-$CI_ROOT/script/parse_test.sh
diff --git a/job/tf-worker/run_arm_fpga_test.sh b/job/tf-worker/run_arm_fpga_test.sh
deleted file mode 100644
index daf23f2..0000000
--- a/job/tf-worker/run_arm_fpga_test.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-#
-# Copyright (c) 2020, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-set -e
-
-# Build
-"$CI_ROOT/script/build_package.sh"
-
-if [ "$skip_runs" ]; then
-	exit 0
-fi
-
-# Execute test locally for arm_fpga configs
-if [ "$RUN_CONFIG" != "nil" ] && echo "$RUN_CONFIG" | grep -iq '^arm_fpga'; then
-	"$CI_ROOT/script/test_fpga_payload.sh"
-fi
diff --git a/job/tf-worker/run_fvp_test.sh b/job/tf-worker/run_fvp_test.sh
deleted file mode 100755
index e6cb43a..0000000
--- a/job/tf-worker/run_fvp_test.sh
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2022, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-set -e
-
-# Build
-export COVERAGE_ON=$(echo "$RUN_CONFIG" | grep -v 'aarch32' | grep -qE 'bmcov' && echo 1 || echo 0)
-if [ $COVERAGE_ON -eq 1 ]; then
-	source "$CI_ROOT/script/build_bmcov.sh"
-fi
-
-"$CI_ROOT/script/build_package.sh"
-
-
-if [ "$skip_runs" ]; then
-	exit 0
-fi
-
-# Execute test locally for FVP configs
-if [ "$RUN_CONFIG" != "nil" ] && echo "$RUN_CONFIG" | grep -iq '^fvp'; then
-	"$CI_ROOT/script/run_package.sh"
-	if [ $COVERAGE_ON -eq 1 ]; then
-		ELF_FOLDER=""
-		DEBUG_FOLDER=${artefacts}/debug
-		RELEASE_FOLDER=${artefacts}/release
-		if ls "${DEBUG_FOLDER}/"*.elf &> /dev/null;then
-			export ELF_FOLDER=$DEBUG_FOLDER
-		elif ls "${RELEASE_FOLDER}/"*.elf &> /dev/null;then
-			export ELF_FOLDER=$RELEASE_FOLDER
-		else
-			# If elf files are not present, report can't be produced
-			echo "ELF files not present, aborting reports..."
-			exit 0
-		fi
-		export OUTDIR=${WORKSPACE}/html
-		test_config=${TEST_CONFIG}
-		if [ -n "$CC_SCP_REFSPEC" ]; then #SCP
-			export JENKINS_SOURCES_WORKSPACE="${scp_root:-$workspace}"
-			if grep -q "fvp-linux.sgi" <<< "$test_config"; then
-				export LIST_OF_BINARIES=${LIST_OF_BINARIES:-"scp_ram scp_rom mcp_rom mcp_ram"}
-			fi
-			export OBJDUMP="$(which 'arm-none-eabi-objdump')"
-			export READELF="$(which 'arm-none-eabi-readelf')"
-			export REPO=SCP
-		else # TF-A
-			export JENKINS_SOURCES_WORKSPACE="${tf_root:-$workspace}"
-			export LIST_OF_BINARIES=${LIST_OF_BINARIES:-"bl1 bl2 bl31"}
-			export OBJDUMP="$(which 'aarch64-none-elf-objdump')"
-			export READELF="$(which 'aarch64-none-elf-readelf')"
-			export REPO=TRUSTED_FIRMWARE
-		fi
-		echo "Toolchain:$OBJDUMP"
-
-		mkdir -p ${OUTDIR}
-		sync
-		sleep 5 #wait for trace files to be written
-		if [ $(ls -1 ${DEBUG_FOLDER}/${trace_file_prefix}-* 2>/dev/null | wc -l) != 0 ]; then
-			export TRACE_FOLDER=${DEBUG_FOLDER}
-		elif [ $(ls -1 ${RELEASE_FOLDER}/${trace_file_prefix}-* 2>/dev/null | wc -l) != 0 ]; then
-			export TRACE_FOLDER=${RELEASE_FOLDER}
-		else
-			echo "Trace files not present, aborting reports..."
-			exit 0
-		fi
-		export REPORT_TITLE="Coverage Summary Report [Build:${BUILD_NUMBER}]"
-		# launch intermediate layer script
-		export CONFIG_JSON=${OUTDIR}/config_file.json
-		export OUTPUT_JSON=${OUTDIR}/output_file.json
-		export CSOURCE_FOLDER=source
-		export DEBUG_ELFS=${DEBUG_ELFS:-True}
-		prepare_json_configuration "${LIST_OF_BINARIES}" "${JENKINS_SOURCES_WORKSPACE}"
-		echo "Executing intermediate_layer.py ..."
-		python ${BMCOV_REPORT_FOLDER}/intermediate_layer.py --config-json "${CONFIG_JSON}"
-		ver_py=$(python -V 2>&1 | sed 's/.* \([0-9]\).\([0-9]\).*/\1\2/')
-		if [ "$ver_py" = "27" ]; then
-			python ${BMCOV_REPORT_FOLDER}/gen-coverage-report.py --config ${BMCOV_REPORT_FOLDER}/config_atf.py \
-			--prefix_workspace "$JENKINS_SOURCES_WORKSPACE"
-		else
-			echo "Python 2.7 is required for producing Bmcov reports"
-		fi
-		chmod 775 ${BMCOV_REPORT_FOLDER}/branch_coverage/branch_coverage.sh
-		echo "Running branch coverage..."
-		branch_folder=${OUTDIR}/lcov_report
-		mkdir -p ${branch_folder}
-		pushd ${BMCOV_REPORT_FOLDER}/branch_coverage
-		. branch_coverage.sh --workspace ${JENKINS_SOURCES_WORKSPACE} --json-path ${OUTPUT_JSON} --outdir ${branch_folder}
-		popd
-		export OUTDIR=${WORKSPACE}/html
-		# prepare static (Jenkins) and dynamic (python server) pages
-		prepare_html_pages
-	fi
-fi
diff --git a/job/tf-worker/run_lava.py b/job/tf-worker/run_lava.py
deleted file mode 100644
index 47e99eb..0000000
--- a/job/tf-worker/run_lava.py
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright (c) 2019-2021 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-import argparse
-import os
-import subprocess
-import sys
-import logging
-import tempfile
-import yaml
-
-
-def case_infra_error(case):
-    try:
-        if case["metadata"]["error_type"] == "Infrastructure":
-            logging.error("case %s: infra error is type Infrastructure", case["id"])
-            return False
-        elif "timed out" in case["metadata"]["error_msg"]:
-            logging.error(
-                "case %s: infra error: %s", case["id"], case["metadata"]["error_msg"]
-            )
-            return False
-        else:
-            return True
-    except KeyError:
-        return True
-
-
-def not_infra_error(path):
-    """Returns a boolean indicating if there was not an infra error"""
-    try:
-        with open(path) as file:
-            results = yaml.safe_load(file)
-        return all(case_infra_error(tc) for tc in results)
-    except FileNotFoundError:
-        logging.warning("Could not open results file %s", path)
-        return True
-
-
-def run_one_job(cmd):
-    """Run a job and return a boolean indicating if there was not an infra error.
-    Raises a `subprocess.CalledProcessError` when the called script fails.
-    """
-    subprocess.run(cmd, check=True)
-    return not_infra_error("job_results.yaml")
-
-
-def retry_job(cmd, retries):
-    """Run a job until there was not an infra error or retries are exhausted.
-    Raises a `subprocess.CalledProcessError` when the called script fails.
-    """
-    logging.debug("trying job %s up to %d times", str(cmd), retries)
-    return any(run_one_job(cmd) for _ in range(retries))
-
-
-if __name__ == "__main__":
-
-    # To deploy and boot the artefacts on a board in LAVA a platform specific
-    # yaml file should be dispatched to LAVA. The below logic will identify
-    # the name of the yaml file at run time for the platform defined in run_cfg.
-    platform_list = ['n1sdp', 'juno']
-
-    run_cfg = os.environ["RUN_CONFIG"]
-    res = [i for i in platform_list if i in run_cfg]
-    if res:
-        platform_yaml=''.join(res)+'.yaml'
-    else:
-        logging.critical("Exiting: Platform not found for LAVA in run-config %s", os.environ["RUN_CONFIG"])
-        sys.exit(-1)
-
-    parser = argparse.ArgumentParser(
-        description="Lava job runner with infrastructure error dectection and retry."
-    )
-    parser.add_argument(
-        "script",
-        nargs="?",
-        default=os.path.join(os.path.dirname(__file__), "run_lava_job.sh"),
-        help="bash job script to run a lava job",
-    )
-    parser.add_argument(
-        "job",
-        nargs="?",
-        default=os.path.join("artefacts", os.environ["BIN_MODE"], platform_yaml),
-        help="the Lava job description file",
-    )
-    parser.add_argument(
-        "retries",
-        type=int,
-        nargs="?",
-        default=3,
-        help="Number of retries. defaluts to 3",
-    )
-    parser.add_argument(
-        "--save",
-        default=tempfile.mkdtemp(prefix="job-output"),
-        help="directory to store the job_output.log",
-    )
-    parser.add_argument(
-        "--username",
-        required=True,
-        help="the user name for lava server",
-    )
-    parser.add_argument(
-        "--token",
-        required=True,
-        help="the token for lava server",
-    )
-    parser.add_argument(
-        "-v", action="count", default=0, help="Increase printing of debug ouptut"
-    )
-    args = parser.parse_args()
-    if args.v >= 2:
-        logging.getLogger().setLevel(logging.DEBUG)
-    elif args.v >= 1:
-        logging.getLogger().setLevel(logging.INFO)
-    logging.debug(args)
-    try:
-        if not retry_job([args.script, args.job, args.save, args.username, args.token],\
-                args.retries):
-            logging.critical("All jobs failed with infra errors; retries exhausted")
-            sys.exit(-1)
-        else:
-            sys.exit(0)
-    except subprocess.CalledProcessError as e:
-        logging.critical("Job script returned error code %d", e.returncode)
-        sys.exit(e.returncode)
diff --git a/job/tf-worker/run_lava_job.sh b/job/tf-worker/run_lava_job.sh
deleted file mode 100755
index 158f546..0000000
--- a/job/tf-worker/run_lava_job.sh
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/bin/bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# Submit jobs to LAVA and wait until the job is complete. This script replace
-# the "managed script" previously used and provide the same behavior.
-#
-# Required arguments:
-# 1: yaml job file
-# 2: a location to store output
-#
-# output:
-# ./job_results.yaml
-# ${SAVE_OUTPUT}/job_output.log
-
-set -e
-
-source "$CI_ROOT/utils.sh"
-
-export XDG_CONFIG_HOME="${WORKSPACE}"
-
-JOB_FILE="$1"
-SAVE_OUTPUT="$2"
-
-LAVA_HOST="${LAVA_HOST:-lava.oss.arm.com}"
-LAVA_USER="$3"
-LAVA_TOKEN="$4"
-LAVA_URL="https://${LAVA_HOST}"
-
-if [ ! -f "${JOB_FILE}" ]; then
-	echo "error: LAVA job file does not exist: ${JOB_FILE}"
-	exit 1
-fi
-
-# Install lavacli with fixes
-virtualenv -p $(which python3) venv
-source venv/bin/activate
-pip install -q lavacli ruamel.yaml dataclasses
-
-# Configure lavacli
-lavacli identities add \
---username $LAVA_USER \
---token $LAVA_TOKEN \
---uri ${LAVA_URL}/RPC2 \
-default
-
-# Submit a job using lavacli
-JOB_ID=$(lavacli jobs submit ${JOB_FILE})
-if [ -z "$JOB_ID" ] ; then
-	echo "Couldn't submit. Stopping."
-	exit 1
-fi
-
-echo "Job url: https://lava.oss.arm.com/scheduler/job/$JOB_ID"
-
-# Wait for the job to finish
-lavacli jobs wait $JOB_ID
-
-# Output to the specified directory before uploading artefacts
-mkdir -p "${SAVE_OUTPUT}"
-curl https://lava.oss.arm.com/scheduler/job/$JOB_ID/log_file/plain > "${SAVE_OUTPUT}/job_output.log"
-cp ${SAVE_OUTPUT}/job_output.log $workspace/artefacts
-
-# Send file(s) to artefacts receiver
-if upon "$jenkins_run" && upon "$artefacts_receiver" && [ -d "${SAVE_OUTPUT}" ]; then
-    source "$CI_ROOT/script/send_artefacts.sh" "${SAVE_OUTPUT}"
-fi
-
-# Get results
-lavacli results $JOB_ID --yaml > "job_results.yaml"
-
-# Exit virtualenv
-deactivate
diff --git a/job/tf-worker/should_build_local.sh b/job/tf-worker/should_build_local.sh
deleted file mode 100755
index cadb153..0000000
--- a/job/tf-worker/should_build_local.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-set -e
-# If it's a Juno build-only config, or an FVP config, we do everything locally
-if [ "$RUN_CONFIG" = "nil" ]; then
-	exit 0
-fi
-
-case "$RUN_CONFIG" in
-	fvp-*)
-		exit 0;;
-	coverity-*)
-		exit 0;;
-	scan_build-*)
-		exit 0;;
-	norun-*)
-		exit 0;;
-esac
-
-# If we're not going to run Juno, then no need to spawn tf-build-for lava;
-# build it locally.
-if [ "$skip_juno" ]; then
-	exit 0
-fi
-
-exit 1
diff --git a/job/trusted-firmware-main/should_execute_static.sh b/job/trusted-firmware-main/should_execute_static.sh
deleted file mode 100755
index ecfdf76..0000000
--- a/job/trusted-firmware-main/should_execute_static.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-set -e
-
-if [ "$SKIP_STATIC" = "true" ]; then
-	exit 1
-else
-	exit 0
-fi
diff --git a/script/backup_external_repo.sh b/script/backup_external_repo.sh
deleted file mode 100755
index a8c9f2c..0000000
--- a/script/backup_external_repo.sh
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# Make a backup of the following repositories on Github:
-# - arm-trusted-firmware-private.git
-# - arm-trusted-firmware-private.wiki.git
-# - tf-issues.git
-#
-# Also backup the following repositories from review.trustedfirmware.org:
-# - trusted-firmware-a.git
-# - tf-a-tests.git
-
-set -e
-
-ci_root="$(readlink -f "$(dirname "$0")/..")"
-source "$ci_root/utils.sh"
-
-backup_dir="${BACKUP_DIR:-/arm/ref/pd/pdsw/external-repo-backup}"
-
-
-initial_clone() {
-	local repo_url="${1:?}"
-	local repo_dir="${2:?}"
-	local repo_name="$(basename $repo_dir)"
-	local s_before s_after s_diff
-
-	s_before="$(date +%s)"
-
-	echo
-	echo "Cloning repository $repo_name..."
-
-	git clone --quiet --mirror "$repo_url" "$repo_dir"
-
-	pushd "$repo_dir"
-	git show --quiet | sed 's/^/  > /g'
-	popd
-
-	s_after="$(date +%s)"
-	let "s_diff = $s_after - $s_before" || true
-	echo "Cloned in $s_diff seconds."
-	echo
-}
-
-update_repo() {
-	local repo_dir="${1:?}"
-	local repo_name="$(basename $repo_dir)"
-	local s_before s_after s_diff
-
-	pushd "$repo_dir"
-
-	s_before="$(date +%s)"
-
-	echo
-	echo "Updating repo $repo_name..."
-
-	git gc --quiet
-	git remote update --prune
-	git show --quiet | sed 's/^/  > /g'
-
-	s_after="$(date +%s)"
-	let "s_diff = $s_after - $s_before" || true
-	echo "Updated in $s_diff seconds."
-	echo
-
-	popd
-}
-
-get_repo_url() {
-    local url_var="${1:?}"
-    local repo_location="${2:?}"
-    local repo_name="${3:?}"
-
-    case "$repo_location" in
-    "github")
-	if upon "$anonymous"; then
-	    eval $url_var="https://github.com/ARM-software/$repo_name"
-	else
-	    GITHUB_USER="${GITHUB_USER:-arm-tf-bot}"
-	    GITHUB_PASSWORD="${GITHUB_PASSWORD:?}"
-	    eval $url_var="https://$GITHUB_USER:$GITHUB_PASSWORD@github.com/ARM-software/$repo_name"
-	fi
-	;;
-
-    "tf.org")
-	if not_upon "$anonymous"; then
-	    echo "Authenticated access to repo $repo_name not supported."
-	    exit 1
-	fi
-	eval $url_var="https://review.trustedfirmware.org/TF-A/$repo_name"
-	;;
-
-    *)
-	echo "Unsupported repository location: $repo_location."
-	exit 1
-	;;
-    esac
-}
-
-backup_repo() {
-	local repo_location="${1:?}"
-	local repo_name="${2:?}"
-	local repo_dir="${3:-$repo_location/$repo_name}"
-
-	if [ ! -d "$repo_dir" ]; then
-	    local repo_url
-	    get_repo_url "repo_url" "$repo_location" "$repo_name"
-	    initial_clone "$repo_url" "$repo_dir"
-	else
-	    update_repo "${repo_dir:?}"
-	fi
-}
-
-
-cd "$backup_dir"
-
-# Private repositories. Need arm-tf-bot credentials for authentication.
-anonymous=0 backup_repo "github" "arm-trusted-firmware-private.git"
-anonymous=0 backup_repo "github" "arm-trusted-firmware-private.wiki.git"
-
-# Public repositories. Anonymous access is allowed.
-anonymous=1 backup_repo "github" "tf-issues.git"
-
-anonymous=1 backup_repo "tf.org" "trusted-firmware-a.git"
-anonymous=1 backup_repo "tf.org" "tf-a-tests.git"
diff --git a/script/find_fragment_users.sh b/script/find_fragment_users.sh
deleted file mode 100755
index bd9aeca..0000000
--- a/script/find_fragment_users.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-ci_root="$(readlink -f "$(dirname "$0")/..")"
-run_config_dir="$ci_root/run_config"
-
-run_config="$1"
-if [ -z "$run_config" ]; then
-	echo "Run config exected as parameter"
-	exit 1
-elif [ ! -f "$run_config_dir/$run_config" ]; then
-	echo "Run config $run_config not found"
-	exit 1
-fi
-
-for test_config in $(cd "$ci_root/group" && find -type f -printf "%P\n"); do
-	if echo "$run_config_part" | grep -q ":nil$"; then
-		continue;
-	fi
-
-	if "$ci_root/script/gen_run_config_candidates.py" "$test_config" | \
-			grep -q "^$run_config$"; then
-		echo "$test_config"
-	fi
-done
diff --git a/script/gen_juno_scp_tests_scmi_yaml.sh b/script/gen_juno_scp_tests_scmi_yaml.sh
deleted file mode 100755
index 9ce0461..0000000
--- a/script/gen_juno_scp_tests_scmi_yaml.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2021, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# Generate a YAML file in order to dispatch Juno runs on LAVA. Note that this
-# script would produce a meaningful output when run via Jenkins
-#
-# This is used exclusively to run a SCMI conformance test for SCP-Firmware on
-# Juno.
-
-ci_root="$(readlink -f "$(dirname "$0")/..")"
-source "$ci_root/utils.sh"
-source "$ci_root/juno_utils.sh"
-
-get_recovery_image_url() {
-	local build_job="tf-build"
-	local bin_mode="debug"
-
-	if upon "$jenkins_run"; then
-		echo "$jenkins_url/job/$JOB_NAME/$BUILD_NUMBER/artifact/artefacts/$bin_mode/juno_recovery.zip"
-	else
-		echo "file://$workspace/artefacts/$bin_mode/juno_recovery.zip"
-	fi
-}
-
-recovery_img_url="${recovery_img_url:-$(get_recovery_image_url)}"
-
-# Allow running juno tests on specific revision(r0/r1/r2).
-juno_revision="${juno_revision:-}"
-if [ ! -z "$juno_revision" ]; then
-        tags="tags:"
-        juno_revision="- ${juno_revision}"
-else
-        tags=""
-fi
-
-expand_template "$(dirname "$0")/lava-templates/juno-scp-tests-scmi.yaml"
diff --git a/script/gen_nomination.py b/script/gen_nomination.py
deleted file mode 100755
index 583a572..0000000
--- a/script/gen_nomination.py
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# This script examines the checked out copy of a Git repository, inspects the
-# touched files in a commit, and then determines what test configs are suited to
-# be executed when testing the repository.
-#
-# The test nominations are based on the paths touched in a commit: for example,
-# when foo/bar is touched, run test blah:baz. All nominations are grouped under
-# NOMINATED directory.
-#
-# The script must be invoked from within a Git clone.
-
-import argparse
-import functools
-import os
-import re
-import subprocess
-import sys
-
-
-class Commit:
-    # REs to identify differ header
-    diff_re = re.compile(r"[+-]")
-    hunk_re = re.compile(r"(\+{3}|-{3}) [ab]/")
-
-    # A diff line looks like a diff, of course, but is not a hunk header
-    is_diff = lambda l: Commit.diff_re.match(l) and not Commit.hunk_re.match(l)
-
-    def __init__(self, refspec):
-        self.refspec = refspec
-
-    @functools.lru_cache()
-    def touched_files(self, parent):
-        git_cmd = ("git diff-tree --no-commit-id --name-only -r " +
-                self.refspec).split()
-        if parent:
-            git_cmd.append(parent)
-
-        return subprocess.check_output(git_cmd).decode(encoding='UTF-8').split(
-                "\n")
-
-    @functools.lru_cache()
-    def diff_lines(self, parent):
-        against = parent if parent else (self.refspec + "^")
-        git_cmd = "git diff {} {}".format(against, self.refspec).split()
-
-        # Filter valid diff lines from the git diff output
-        return list(filter(Commit.is_diff, subprocess.check_output(
-                git_cmd).decode(encoding="UTF-8").split("\n")))
-
-    def matches(self, rule, parent):
-        if type(rule) is str:
-            scheme, colon, rest = rule.partition(":")
-            if colon != ":":
-                raise Exception("rule {} doesn't have a scheme".format(rule))
-
-            if scheme == "path":
-                # Rule is path in plain string
-                return any(f.startswith(rest) for f in self.touched_files(parent))
-            elif scheme == "pathre":
-                # Rule is a regular expression matched against path
-                regex = re.compile(rest)
-                return any(regex.search(f) for f in self.touched_files(parent))
-            elif scheme == "has":
-                # Rule is a regular expression matched against the commit diff
-                has_upper = any(c.isupper() for c in rule)
-                pat_re = re.compile(rest, re.IGNORECASE if not has_upper else 0)
-
-                return any(pat_re.search(l) for l in self.diff_lines(parent))
-            elif scheme == "op":
-                pass
-            else:
-                raise Exception("unsupported scheme: " + scheme)
-        elif type(rule) is tuple:
-            # If op:match-all is found in the tuple, the tuple must match all
-            # rules (AND).
-            test = all if "op:match-all" in rule else any
-
-            # If the rule is a tuple, we match them individually
-            return test(self.matches(r, parent) for r in rule)
-        else:
-            raise Exception("unsupported rule type: {}".format(type(rule)))
-
-
-ci_root = os.path.abspath(os.path.join(__file__, os.pardir, os.pardir))
-group_dir = os.path.join(ci_root, "group")
-
-parser = argparse.ArgumentParser()
-
-# Argument setup
-parser.add_argument("--parent", help="Parent commit to compare against")
-parser.add_argument("--refspec", default="@", help="refspec")
-parser.add_argument("rules_file", help="Rules file")
-
-opts = parser.parse_args()
-
-# Import project-specific nomination_rules dictionary
-script_dir = os.path.dirname(os.path.abspath(__file__))
-with open(os.path.join(opts.rules_file)) as fd:
-    exec(fd.read())
-
-commit = Commit(opts.refspec)
-nominations = set()
-for rule, test_list in nomination_rules.items():
-    # Rule must be either string or tuple. Test list must be list
-    assert type(rule) is str or type(rule) is tuple
-    assert type(test_list) is list
-
-    if commit.matches(rule, opts.parent):
-        nominations |= set(test_list)
-
-for nom in nominations:
-    # Each test nomination must exist in the repository
-    if not os.path.isfile(os.path.join(group_dir, nom)):
-        raise Exception("nomination {} doesn't exist".format(nom))
-
-    print(nom)
diff --git a/script/gerrit.py b/script/gerrit.py
deleted file mode 100644
index f0ee8cb..0000000
--- a/script/gerrit.py
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-import json
-import subprocess
-
-class GerritServer:
-    def __init__(self, url, port=29418):
-        self.url = url
-        self.port = port
-
-    def query(self, project, q, username=None, keyfile=None):
-        cmd = ["ssh", "-p", str(self.port)]
-
-        if keyfile:
-            cmd += ["-i", keyfile]
-        if username:
-            cmd += ["{}@{}".format(username, self.url)]
-        else:
-            cmd += [self.url]
-
-        cmd += ["gerrit", "query", "--format=json", "--patch-sets",
-                "--comments", "--current-patch-set",
-                "project:{}".format(project)] + q
-
-        with subprocess.Popen(cmd, stdout=subprocess.PIPE) as proc:
-            changes = [json.loads(resp_line.decode()) for resp_line
-                       in proc.stdout]
-            if not changes:
-                raise Exception("Error while querying Gerrit server {}.".format(
-                    self.url))
-            return changes
-
-class GerritProject:
-    def __init__(self, name, server):
-        self.name = name
-        self.server = server
-
-    def query(self, q, username=None, keyfile=None):
-        return self.server.query(self.name, q, username, keyfile)
diff --git a/script/id_tf_processes.sh b/script/id_tf_processes.sh
deleted file mode 100755
index cdf35f0..0000000
--- a/script/id_tf_processes.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-lookup() {
-	local string
-
-	string="$(grep "\\<${1:?}=" < "$proc_file")"
-	if [ "$string" ]; then
-		echo "$string"
-		eval "$string"
-	fi
-}
-
-for p in $(pgrep FVP); do
-	proc_file="$WORKSPACE/proc_file"
-	tr '\000' '\n' < "/proc/$p/environ" > "$proc_file"
-
-	echo "PID: $p"
-	lookup "TRUSTED_FIRMWARE_CI"
-	lookup "BUILD_NUMBER"
-	lookup "JOB_NAME"
-
-	if [ "$KILL_PROCESS" = "true" -a "$TRUSTED_FIRMWARE_CI" = "1" ]; then
-		kill -SIGTERM "$p"
-		echo "Killed $p"
-	fi
-
-	echo
-done
diff --git a/script/lava-templates/juno-scp-tests-scmi.yaml b/script/lava-templates/juno-scp-tests-scmi.yaml
deleted file mode 100644
index 6eac52b..0000000
--- a/script/lava-templates/juno-scp-tests-scmi.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-device_type: juno
-job_name: scp-tests-scmi-juno
-
-$tags
-$juno_revision
-
-timeouts:
-  # Global timeout value for the whole job.
-  job:
-    minutes: 10
-  actions:
-    lava-test-monitor:
-      seconds: 180
-  connections:
-    lava-test-monitor:
-      seconds: 180
-
-priority: ${LAVA_PRIORITY:-medium}
-visibility: public
-
-actions:
-
-- deploy:
-    timeout:
-      minutes: 5
-    to: vemsd
-    recovery_image:
-      url: $recovery_img_url
-      compression: zip
-
-- boot:
-    method: minimal
-
-- test:
-    timeout:
-      minutes: 8
-
-    monitors:
-    #
-    # Monitor no.1
-    # Monitor the results from all the protocols
-    #
-    - name: SCP-SCMI-ALL-PROTOCOL
-      start: 'BL31: Baremetal test suite: scmi'
-      end: '\*\*\*\* SCMI tests complete \*\*\*\*'
-
-      pattern: '(?P<test_case_id>\d{3}):[\w ]+[\w\n\r[\] :<>&=]*?: (?P<result>CONFORMANT|NON CONFORMANT|SKIPPED)'
-
-      fixupdict:
-        "CONFORMANT": pass
-        "NON CONFORMANT": fail
-        "SKIPPED": skip
diff --git a/script/parse_lava_job.py b/script/parse_lava_job.py
deleted file mode 100755
index 9be0e9d..0000000
--- a/script/parse_lava_job.py
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# After lava job is dispatched, its results will be collected in
-# $WORKSPACE/job_results.yaml file. Parse that file, and exit from this script
-# with the respective exit status
-
-import argparse
-import os
-import sys
-import yaml
-
-
-def report_job_failure():
-    job_url = os.environ["JOB_URL"]
-    build_number = os.environ["BUILD_NUMBER"]
-    print()
-    print("Job failed!")
-    print("See " + "/".join([job_url.rstrip("/"), build_number, "artifact",
-                             "job_output.log"]))
-    print()
-    sys.exit(1)
-
-
-def report_job_success():
-    print()
-    print("Job success.")
-    print()
-    sys.exit(0)
-
-def scmi_parse_phase(results, case, special_case, expected_skip_count):
-    pass_count = 0
-    fail_count = 0
-    false_fail_count = 0
-    skip_count = 0
-
-    for phase in results:
-        if phase["metadata"]["definition"] == case:
-            if phase["metadata"]["result"] == "pass":
-                pass_count += 1
-            elif phase["metadata"]["result"] == "skip":
-                skip_count += 1
-            else:
-                if special_case != "" and phase["metadata"]["case"] == special_case:
-                    false_fail_count += 1
-                else:
-                    fail_count += 1
-
-    print(case)
-    print("pass_count " + str(pass_count))
-    print("fail_count " + str(fail_count))
-    if special_case != "":
-        print("false_fail_count " + str(false_fail_count))
-    print("skip_count " + str(skip_count) + " out of expected " + str(expected_skip_count))
-    if (fail_count > 0) or (skip_count > expected_skip_count):
-        report_job_failure()
-
-def parse_cmd_line():
-    parser = argparse.ArgumentParser(description="Parse results from LAVA. "
-        "The results must be provided as a YAML file.")
-    parser.add_argument("--payload-type", default="linux", type=str,
-        help="Type of payload that was used in the test (default: %(default)s)")
-    parser.add_argument("--file",
-        default=os.path.join(os.environ["WORKSPACE"], "job_results.yaml"),
-        type=str, help="YAML file to parse (default: %(default)s)")
-    args = parser.parse_args()
-    return args
-
-
-args = parse_cmd_line()
-
-with open(args.file) as fd:
-    results = yaml.safe_load(fd)
-
-    # Iterate through results. Find the element whose name is "job" in the
-    # "lava" suite. It contains the result of the overall LAVA run.
-    for phase in results:
-        if phase["name"] == "job" and phase["suite"] == "lava":
-            break
-    else:
-        raise Exception("Couldn't find 'job' phase in 'lava' suite in results")
-
-    if phase["result"] != "pass":
-        report_job_failure()
-
-    # If we've simply booted to the Linux shell prompt then we don't need to
-    # further analyze the results from LAVA.
-    if args.payload_type == "linux":
-        report_job_success()
-
-    # If we've run TFTF or SCMI tests instead, then do some further parsing.
-    elif args.payload_type == "tftf":
-        session = "TFTF"
-        suite = "tftf"
-    else:
-        raise Exception("Payload not defined")
-
-    # First make sure the test session finished.
-    for phase in filter(lambda p: p["name"] == "lava-test-monitor", results):
-        if phase["result"] != "pass":
-            print(session + " test session failed. Did it time out?")
-            report_job_failure()
-        break
-    else:
-        raise Exception("Couldn't find 'lava-test-monitor' phase results")
-
-    # Then count the number of tests that failed/skipped.
-    test_failures = 0
-    test_skips = 0
-    for phase in filter(lambda p: p["suite"] == suite, results):
-        metadata = phase["metadata"]
-        testcase_name = metadata["case"]
-        testcase_result = metadata["result"]
-        if testcase_result == "fail":
-            test_failures += 1
-            print("=> FAILED: " + testcase_name)
-        elif testcase_result == "skip":
-            test_skips += 1
-            print("   SKIPPED: " + testcase_name)
-
-    # Print a test summary
-    print()
-    if test_failures == 0 and test_skips == 0:
-        print("All tests passed.")
-    else:
-        print("{} tests failed; {} skipped. All other tests passed.".format(
-            test_failures, test_skips))
-
-    if test_failures == 0:
-        report_job_success()
-    else:
-        report_job_failure()
diff --git a/script/scratch_scripts/README b/script/scratch_scripts/README
deleted file mode 100644
index d787b05..0000000
--- a/script/scratch_scripts/README
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-The scripts in this folder are a copy of the scripts in the projectscratch
-folder. They should be kept in sync, deploy_scratch.sh is a helper script
-to copy them over.
-The integrity of the files in the projectscratch folder is checked by the
-check_scratch.sh script called by the tf-merge-watcher job. Please do not
-create any additional files or modify existing ones in the projectscratch
-directory without having these changes in the git repository.
diff --git a/script/scratch_scripts/delete_old_workspaces.sh b/script/scratch_scripts/delete_old_workspaces.sh
deleted file mode 100755
index 4eb158e..0000000
--- a/script/scratch_scripts/delete_old_workspaces.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# Cleanup work spaces older than a day
-cd /arm/projectscratch/ssg/trusted-fw/ci-workspace
-find -maxdepth 1 \( -not -name . -a -mtime +1 \) -exec rm -rf '{}' +
diff --git a/script/scratch_scripts/deploy_scratch.sh b/script/scratch_scripts/deploy_scratch.sh
deleted file mode 100755
index 482709c..0000000
--- a/script/scratch_scripts/deploy_scratch.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-ci_root="$(readlink -f "$(dirname "$0")/../..")"
-source "$ci_root/utils.sh"
-
-if ! ls $project_filer/ci-scripts/
-then
-	echo "make sure /arm is mounted, if it is not, it can be mounted with the following command:" >&2
-	echo "sudo sshfs [USER]@login1.euhpc2.arm.com:/arm /arm -o allow_other,reconnect" >&2
-	echo "note that the euhpc and euhpc2 have different /arm mounts" >&2
-	exit 1
-fi
-
-COMMAND="cp $ci_root/script/scratch_scripts/* $project_filer/ci-scripts/"
-FILES=`ls -al "$ci_root"/script/scratch_scripts/*`
-
-echo "files to be copied:"
-echo "$FILES"
-echo ""
-echo "####DANGER### POTENTIAL FOR DAMAGE, CHECK THIS COMMAND"
-echo "command to be run: \"$COMMAND\""
-read -p "Run this command [Y/n]: "
-echo
-if [[ $REPLY =~ ^[Yy]$ ]]
-then
-	eval "$COMMAND"
-fi
diff --git a/script/scratch_scripts/initial_clone.sh b/script/scratch_scripts/initial_clone.sh
deleted file mode 100755
index edd97b5..0000000
--- a/script/scratch_scripts/initial_clone.sh
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# This script is meant to be run from Jenkins to make an initial clone of the
-# CI repository.
-#
-#  - If CI_ROOT is set, we assume that a parent job has already cloned required
-#    repositories; so we skip further cloning. However, in order to prevent this
-#    job from potentially cleaning up the filer workspace (which is the
-#    responsibility of the parent job which did the original clone), we unset
-#    the FILER_WS variable in the env file.
-#
-#  - Otherwise, we call clone_repos.sh to have all required repositories to be
-#    cloned.
-#
-# Note that, since this file resides in the repository itself, a copy of this
-# file must be 'wget'. I.e., any changes to to this file must be committed first
-# to the CI repository master for it to take effect!
-
-strip_var() {
-        local var="$1"
-        local val="$(echo "${!var}" | sed 's#^\s*\|\s*$##g')"
-        eval "$var=$val"
-}
-
-strip_var CI_REFSPEC
-
-if [ "$CI_ENVIRONMENT" ]; then
-	tmpfile="$(mktemp --tmpdir="$WORKSPACE")"
-	echo "$CI_ENVIRONMENT" > "$tmpfile"
-	set -a
-	source "$tmpfile"
-	set +a
-fi
-
-if [ "$CI_ROOT" ]; then
-	# We're not going to clone repos; so prevent this job from cleaning up
-	# filer workspace.
-	echo "FILER_WS=" > env
-
-	# Resetting a variable doesn't seem to work on new Jenkins instance. So
-	# us a different variable altogether instead.
-	echo "DONT_CLEAN_WS=1" >> env
-
-	exit 0
-fi
-
-# If no CI ref specs were explicitly specified, but was triggered from a CI
-# Gerrit trigger, move to the Gerrit refspec instead so that we use the expected
-# version of clone_repos.sh.
-if [ -z "$CI_REFSPEC" ] && [ "$REPO_UNDER_TEST" = "trusted-firmware-ci" ] && \
-		[ "$GERRIT_REFSPEC" ]; then
-	CI_REFSPEC="$GERRIT_REFSPEC"
-fi
-
-# Clone CI repository and move to the refspec
-git clone -q --depth 1 \
-	https://gerrit.oss.arm.com/pdswinf/ci/pdcs-platforms/platform-ci
-
-if [ "$CI_REFSPEC" ]; then
-	# Only recent Git versions support fetching refs via. commit IDs.
-	# However, platform slaves have been updated to a version that can do
-	# this (https://jira.arm.com/browse/SSGSWINF-1426). The module load
-	# commands have been commented out since.
-	#
-	# source /arm/tools/setup/init/bash
-	# module load swdev
-	# module load git/git/2.14.3
-
-	pushd platform-ci &>/dev/null
-	git fetch -q --depth 1 origin "$CI_REFSPEC"
-	git checkout -q FETCH_HEAD
-	echo "CI repo checked out to $CI_REFSPEC"
-	popd &>/dev/null
-fi
-
-if ! platform-ci/trusted-fw/new-ci/script/clone_repos.sh; then
-	echo "clone_repos.sh failed!"
-	cat clone_repos.log
-	exit 1
-fi
-
-# vim:set tw=80 sw=8 sts=8 noet:
diff --git a/script/scratch_scripts/initial_clone_temp.sh b/script/scratch_scripts/initial_clone_temp.sh
deleted file mode 100755
index cd666c3..0000000
--- a/script/scratch_scripts/initial_clone_temp.sh
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# This script is meant to be run from Jenkins to make an initial clone of the
-# CI repository.
-#
-#  - If CI_SCRATCH is set, we assume that a parent job has already cloned
-#    required repositories; so we skip further cloning.
-#
-#  - Otherwise, we call clone_repos.sh to have all required repositories to be
-#    cloned.
-#
-# Note that, since this file resides in the repository itself, a copy of this
-# file must be 'wget'. I.e., any changes to to this file must be committed first
-# to the CI repository master for it to take effect!
-
-set -e
-set -x
-
-strip_var() {
-	local var="$1"
-	local val="$(echo "${!var}" | sed 's#^\s*\|\s*$##g')"
-	eval "$var=$val"
-}
-
-set_ci_root() {
-	export ci_root=`pwd`/"platform-ci"
-	export CI_ROOT=$ci_root
-}
-
-strip_var CI_REFSPEC
-
-if [ "$CI_ENVIRONMENT" ]; then
-	tmpfile="$(mktemp --tmpdir="$WORKSPACE")"
-	echo "$CI_ENVIRONMENT" | tr ' ' '\n' > "$tmpfile"
-	set -a
-	source "$tmpfile"
-	set +a
-fi
-
-if [ "$CI_SCRATCH" ]; then
-	if [ ! -d "$CI_SCRATCH" ]; then
-		echo "\$CI_SCRATCH is stale; ignored."
-	else
-		# Copy environment and parameter file from scratch to this job's
-		# workspace
-		cp "$CI_SCRATCH/env" .
-		cp "$CI_SCRATCH/env.param" .
-		find "$CI_SCRATCH" -name "*.data" -exec cp -t . '{}' +
-
-		exit 0
-	fi
-fi
-
-# If no CI ref specs were explicitly specified, but was triggered from a CI
-# Gerrit trigger, move to the Gerrit refspec instead so that we use the expected
-# version of clone_repos.sh.
-if [ -z "$CI_REFSPEC" ] && [ "$REPO_UNDER_TEST" = "trusted-firmware-ci" ] && \
-		[ "$GERRIT_REFSPEC" ]; then
-	export CI_REFSPEC="$GERRIT_REFSPEC"
-fi
-
-# Clone CI repository and move to the refspec
-if [ ! -d "platform-ci" ]
-then
-	git clone -q --depth 1 \
-		--reference /arm/projectscratch/ssg/trusted-fw/ref-repos/trusted-firmware-ci \
-		https://gerrit.oss.arm.com/pdswinf/ci/pdcs-platforms/platform-ci
-else
-	pushd platform-ci
-	git fetch
-	popd
-fi
-
-# Set CI_ROOT as a fallback
-set_ci_root
-echo "CI_ROOT=$ci_root" >> env
-
-if [ "$CI_REFSPEC" ]; then
-	# Only recent Git versions support fetching refs via. commit IDs.
-	# However, platform slaves have been updated to a version that can do
-	# this (https://jira.arm.com/browse/SSGSWINF-1426). The module load
-	# commands have been commented out since.
-	#
-	# source /arm/tools/setup/init/bash
-	# module load swdev
-	# module load git/git/2.14.3
-
-	# Translate refspec if supported
-	if [ -x "$ci_root/script/translate_refspec.py" ]; then
-		CI_REFSPEC="$("$ci_root/script/translate_refspec.py" \
-				-p trusted-firmware-ci "$CI_REFSPEC")"
-	fi
-
-	pushd platform-ci &>/dev/null
-	git fetch -q --depth 1 origin "$CI_REFSPEC"
-	git checkout -q FETCH_HEAD
-	echo
-	echo "Initial CI repo checked out to '$CI_REFSPEC'."
-	popd &>/dev/null
-fi
-
-if [ "$ci_only" ]; then
-	exit 0
-fi
-
-if echo "$-" | grep -q "x"; then
-	minus_x="-x"
-fi
-
-if ! bash $minus_x "$ci_root/script/clone_repos.sh"; then
-	echo "clone_repos.sh failed!"
-	cat clone_repos.log
-	exit 1
-fi
-
-set_ci_root
-
-# vim:set tw=80 sw=8 sts=8 noet:
diff --git a/script/scratch_scripts/initial_clone_v2.5.sh b/script/scratch_scripts/initial_clone_v2.5.sh
deleted file mode 100755
index c69eb02..0000000
--- a/script/scratch_scripts/initial_clone_v2.5.sh
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# This script is meant to be run from Jenkins to make an initial clone of the
-# CI repository.
-#
-#  - If CI_SCRATCH is set, we assume that a parent job has already cloned
-#    required repositories; so we skip further cloning.
-#
-#  - Otherwise, we call clone_repos.sh to have all required repositories to be
-#    cloned.
-#
-# Note that, since this file resides in the repository itself, a copy of this
-# file must be 'wget'. I.e., any changes to to this file must be committed first
-# to the CI repository master for it to take effect!
-
-set -e
-
-strip_var() {
-	local var="$1"
-	local val="$(echo "${!var}" | sed 's#^\s*\|\s*$##g')"
-	eval "$var=$val"
-}
-
-set_ci_root() {
-	ci_root=`pwd`/"platform-ci"
-	CI_ROOT=$ci_root
-}
-
-strip_var CI_REFSPEC
-
-if [ ! -z $PROJECT ]; then
-	export REPO_UNDER_TEST=`basename $PROJECT`
-	echo "REPO_UNDER_TEST is blank, but PROJECT is set, setting REPO_UNDER_TEST based on PROJECT"
-	echo "REPO_UNDER_TEST=$REPO_UNDER_TEST"
-	echo "REPO_UNDER_TEST=$REPO_UNDER_TEST" >> env
-fi
-
-if [ "$CI_ENVIRONMENT" ]; then
-	tmpfile="$(mktemp --tmpdir="$WORKSPACE")"
-	echo "$CI_ENVIRONMENT" | tr ' ' '\n' > "$tmpfile"
-	set -a
-	source "$tmpfile"
-	set +a
-fi
-
-if [ "$CI_SCRATCH" ]; then
-	if [ ! -d "$CI_SCRATCH" ]; then
-		echo "\$CI_SCRATCH is stale; ignored."
-	else
-		# Copy environment and parameter file from scratch to this job's
-		# workspace
-		cp "$CI_SCRATCH/env" .
-		cp "$CI_SCRATCH/env.param" .
-		find "$CI_SCRATCH" -name "*.data" -exec cp -t . '{}' +
-
-		exit 0
-	fi
-fi
-
-# If no CI ref specs were explicitly specified, but was triggered from a CI
-# Gerrit trigger, move to the Gerrit refspec instead so that we use the expected
-# version of clone_repos.sh.
-if [ -z "$CI_REFSPEC" ] && [ "$REPO_UNDER_TEST" = "trusted-firmware-ci" ] && \
-		[ "$GERRIT_REFSPEC" ]; then
-	export CI_REFSPEC="$GERRIT_REFSPEC"
-fi
-
-# Clone CI repository and move to the refspec
-if [ ! -d "platform-ci" ]
-then
-git clone -q --depth 1 \
-	--reference /arm/projectscratch/ssg/trusted-fw/ref-repos/trusted-firmware-ci \
-	https://gerrit.oss.arm.com/pdswinf/ci/pdcs-platforms/platform-ci
-else
-	pushd platform-ci
-	git fetch
-	git checkout origin/master
-	popd
-fi
-
-set_ci_root
-# Set CI_ROOT as a fallback
-echo "CI_ROOT=$ci_root" >> env
-
-if [ "$CI_REFSPEC" ]; then
-	# Only recent Git versions support fetching refs via. commit IDs.
-	# However, platform slaves have been updated to a version that can do
-	# this (https://jira.arm.com/browse/SSGSWINF-1426). The module load
-	# commands have been commented out since.
-	#
-	# source /arm/tools/setup/init/bash
-	# module load swdev
-	# module load git/git/2.14.3
-
-	# Translate refspec if supported
-	if [ -x "$ci_root/script/translate_refspec.py" ]; then
-		CI_REFSPEC="$("$ci_root/script/translate_refspec.py" \
-				-p trusted-firmware-ci -s arm "$CI_REFSPEC")"
-	fi
-
-	pushd platform-ci &>/dev/null
-	git fetch -q --depth 1 origin "$CI_REFSPEC"
-	git checkout -q FETCH_HEAD
-	echo
-	echo "Initial CI repo checked out to '$CI_REFSPEC'."
-	popd &>/dev/null
-fi
-
-if [ "$ci_only" ]; then
-	exit 0
-fi
-
-if echo "$-" | grep -q "x"; then
-	minus_x="-x"
-fi
-
-if ! bash $minus_x "$ci_root/script/clone_repos.sh"; then
-	echo "clone_repos.sh failed!"
-	cat clone_repos.log
-	exit 1
-fi
-
-# vim:set tw=80 sw=8 sts=8 noet:
diff --git a/script/scratch_scripts/initial_clone_v2.6.sh b/script/scratch_scripts/initial_clone_v2.6.sh
deleted file mode 100755
index d406131..0000000
--- a/script/scratch_scripts/initial_clone_v2.6.sh
+++ /dev/null
@@ -1,167 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# This script is meant to be run from Jenkins to make an initial clone of the
-# CI repository.
-#
-#  - If CI_SCRATCH is set, we assume that a parent job has already cloned
-#    required repositories; so we skip further cloning.
-#
-#  - Otherwise, we call clone_repos.sh to have all required repositories to be
-#    cloned.
-#
-# Note that, since this file resides in the repository itself, a copy of this
-# file must be 'wget'. I.e., any changes to to this file must be committed first
-# to the CI repository master for it to take effect!
-
-set -e
-
-arm_gerrit_url="gerrit.oss.arm.com"
-tforg_gerrit_url="review.trustedfirmware.org"
-ci_url="${CI_SRC_REPO_URL:-https://$tforg_gerrit_url/ci/tf-a-ci-scripts}"
-gerrit_server="tforg"
-
-if [ "$ci_url" == *${arm_gerrit_url}* ];then
-        gerrit_server="arm"
-fi
-
-strip_var() {
-	local var="$1"
-	local val="$(echo "${!var}" | sed 's#^\s*\|\s*$##g')"
-	eval "$var=$val"
-}
-
-set_ci_root() {
-	ci_root=`pwd`/"trusted-firmware-ci"
-	CI_ROOT=$ci_root
-}
-
-strip_var CI_REFSPEC
-
-if [ ! -z $PROJECT ]; then
-	export REPO_UNDER_TEST=`basename $PROJECT`
-	echo "REPO_UNDER_TEST is blank, but PROJECT is set, setting REPO_UNDER_TEST based on PROJECT"
-	echo "REPO_UNDER_TEST=$REPO_UNDER_TEST"
-	echo "REPO_UNDER_TEST=$REPO_UNDER_TEST" >> env
-fi
-
-# For jobs triggered by Gerrit, obtain REPO_UNDER_TEST, TF_SRC_REPO_URL
-# and TFTF_SRC_REPO_URL (if not set explicitly) from Gerrit Environment
-# variables.
-
-if [ "$GERRIT_REFSPEC" ]; then
-
-	if [ -z $REPO_UNDER_TEST ]; then
-		if [ $GERRIT_PROJECT == "pdcs-platforms/ap/tf-topics" ] || [ $GERRIT_PROJECT == "TF-A/trusted-firmware-a" ]; then
-			export REPO_UNDER_TEST="trusted-firmware"
-			echo "REPO_UNDER_TEST is blank, setting REPO_UNDER_TEST based on GERRIT_PROJECT"
-
-		elif [ $GERRIT_PROJECT == "trusted-firmware/tf-a-tests" ] || [ $GERRIT_PROJECT == "TF-A/tf-a-tests" ]; then
-			export REPO_UNDER_TEST="trusted-firmware-tf"
-			echo "REPO_UNDER_TEST is blank, setting REPO_UNDER_TEST based on GERRIT_PROJECT"
-
-		elif [ $GERRIT_PROJECT == "pdswinf/ci/pdcs-platforms/platform-ci" ] || [ $GERRIT_PROJECT == "ci/tf-a-ci-scripts" ]; then
-			export REPO_UNDER_TEST="trusted-firmware-ci"
-			echo "REPO_UNDER_TEST is blank, setting REPO_UNDER_TEST based on GERRIT_PROJECT"
-		fi
-	fi
-
-	if [ -z $TF_SRC_REPO_URL ] && [ $REPO_UNDER_TEST == "trusted-firmware" ]; then
-		export TF_SRC_REPO_URL="https://$GERRIT_HOST/$GERRIT_PROJECT"
-	fi
-
-	if [ -z $TFTF_SRC_REPO_URL ] && [ $REPO_UNDER_TEST == "trusted-firmware-tf" ]; then
-		export TFTF_SRC_REPO_URL="https://$GERRIT_HOST/$GERRIT_PROJECT"
-	fi
-fi
-
-if [ "$CI_ENVIRONMENT" ]; then
-	tmpfile="$(mktemp --tmpdir="$WORKSPACE")"
-	echo "$CI_ENVIRONMENT" | tr ' ' '\n' > "$tmpfile"
-	set -a
-	source "$tmpfile"
-	set +a
-fi
-
-if [ "$CI_SCRATCH" ]; then
-	if [ ! -d "$CI_SCRATCH" ]; then
-		echo "\$CI_SCRATCH is stale; ignored."
-	else
-		# Copy environment and parameter file from scratch to this job's
-		# workspace
-		cp "$CI_SCRATCH/env" .
-		cp "$CI_SCRATCH/env.param" .
-		find "$CI_SCRATCH" -name "*.data" -exec cp -t . '{}' +
-
-		exit 0
-	fi
-fi
-
-# If no CI ref specs were explicitly specified, but was triggered from a CI
-# Gerrit trigger, move to the Gerrit refspec instead so that we use the expected
-# version of clone_repos.sh.
-if [ -z "$CI_REFSPEC" ] && [ "$REPO_UNDER_TEST" = "trusted-firmware-ci" ] && \
-		[ "$GERRIT_REFSPEC" ]; then
-	export CI_REFSPEC="$GERRIT_REFSPEC"
-fi
-
-# Clone CI repository and move to the refspec
-if [ ! -d "trusted-firmware-ci" ]
-then
-git clone -q --depth 1 \
-	--reference /arm/projectscratch/ssg/trusted-fw/ref-repos/trusted-firmware-ci \
-	$ci_url trusted-firmware-ci
-else
-	pushd trusted-firmware-ci
-	git fetch
-	git checkout origin/master
-	popd
-fi
-
-set_ci_root
-# Set CI_ROOT as a fallback
-echo "CI_ROOT=$ci_root" >> env
-
-if [ "$CI_REFSPEC" ]; then
-	# Only recent Git versions support fetching refs via. commit IDs.
-	# However, platform slaves have been updated to a version that can do
-	# this (https://jira.arm.com/browse/SSGSWINF-1426). The module load
-	# commands have been commented out since.
-	#
-	# source /arm/tools/setup/init/bash
-	# module load swdev
-	# module load git/git/2.14.3
-
-	# Translate refspec if supported
-	if [ -x "$ci_root/script/translate_refspec.py" ]; then
-		CI_REFSPEC="$("$ci_root/script/translate_refspec.py" \
-				-p trusted-firmware-ci -s $gerrit_server "$CI_REFSPEC")"
-	fi
-
-	pushd trusted-firmware-ci &>/dev/null
-	git fetch -q --depth 1 origin "$CI_REFSPEC"
-	git checkout -q FETCH_HEAD
-	echo
-	echo "Initial CI repo checked out to '$CI_REFSPEC'."
-	popd &>/dev/null
-fi
-
-if [ "$ci_only" ]; then
-	exit 0
-fi
-
-if echo "$-" | grep -q "x"; then
-	minus_x="-x"
-fi
-
-if ! bash $minus_x "$ci_root/script/clone_repos.sh"; then
-	echo "clone_repos.sh failed!"
-	cat clone_repos.log
-	exit 1
-fi
-
-# vim:set tw=80 sw=8 sts=8 noet:
diff --git a/script/scratch_scripts/initial_clone_v2.sh b/script/scratch_scripts/initial_clone_v2.sh
deleted file mode 100755
index f778a80..0000000
--- a/script/scratch_scripts/initial_clone_v2.sh
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# This script is meant to be run from Jenkins to make an initial clone of the
-# CI repository.
-#
-#  - If CI_SCRATCH is set, we assume that a parent job has already cloned
-#    required repositories; so we skip further cloning.
-#
-#  - Otherwise, we call clone_repos.sh to have all required repositories to be
-#    cloned.
-#
-# Note that, since this file resides in the repository itself, a copy of this
-# file must be 'wget'. I.e., any changes to to this file must be committed first
-# to the CI repository master for it to take effect!
-
-set -e
-
-strip_var() {
-	local var="$1"
-	local val="$(echo "${!var}" | sed 's#^\s*\|\s*$##g')"
-	eval "$var=$val"
-}
-
-strip_var CI_REFSPEC
-
-if [ "$CI_ENVIRONMENT" ]; then
-	tmpfile="$(mktemp --tmpdir="$WORKSPACE")"
-	echo "$CI_ENVIRONMENT" | tr ' ' '\n' > "$tmpfile"
-	set -a
-	source "$tmpfile"
-	set +a
-fi
-
-if [ "$CI_SCRATCH" ]; then
-	if [ ! -d "$CI_SCRATCH" ]; then
-		echo "\$CI_SCRATCH is stale; ignored."
-	else
-		# Copy environment and parameter file from scratch to this job's
-		# workspace
-		cp "$CI_SCRATCH/env" .
-		cp "$CI_SCRATCH/env.param" .
-		find "$CI_SCRATCH" -name "*.data" -exec cp -t . '{}' +
-
-		exit 0
-	fi
-fi
-
-# If no CI ref specs were explicitly specified, but was triggered from a CI
-# Gerrit trigger, move to the Gerrit refspec instead so that we use the expected
-# version of clone_repos.sh.
-if [ -z "$CI_REFSPEC" ] && [ "$REPO_UNDER_TEST" = "trusted-firmware-ci" ] && \
-		[ "$GERRIT_REFSPEC" ]; then
-	export CI_REFSPEC="$GERRIT_REFSPEC"
-fi
-
-# Clone CI repository and move to the refspec
-git clone -q --depth 1 \
-	--reference /arm/projectscratch/ssg/trusted-fw/ref-repos/trusted-firmware-ci \
-	https://gerrit.oss.arm.com/pdswinf/ci/pdcs-platforms/platform-ci
-
-# Set CI_ROOT as a fallback
-ci_root="platform-ci/trusted-fw/new-ci"
-echo "CI_ROOT=$ci_root" >> env
-
-if [ "$CI_REFSPEC" ]; then
-	# Only recent Git versions support fetching refs via. commit IDs.
-	# However, platform slaves have been updated to a version that can do
-	# this (https://jira.arm.com/browse/SSGSWINF-1426). The module load
-	# commands have been commented out since.
-	#
-	# source /arm/tools/setup/init/bash
-	# module load swdev
-	# module load git/git/2.14.3
-
-	# Translate refpsec if supported
-	if [ -x "$ci_root/script/translate_refspec.py" ]; then
-		CI_REFSPEC="$("$ci_root/script/translate_refspec.py" \
-				-p trusted-firmware-ci "$CI_REFSPEC")"
-	fi
-
-	pushd platform-ci &>/dev/null
-	git fetch -q --depth 1 origin "$CI_REFSPEC"
-	git checkout -q FETCH_HEAD
-	echo
-	echo "Initial CI repo checked out to '$CI_REFSPEC'."
-	popd &>/dev/null
-fi
-
-if [ "$ci_only" ]; then
-	exit 0
-fi
-
-if echo "$-" | grep -q "x"; then
-	minus_x="-x"
-fi
-
-if ! bash $minus_x "$ci_root/script/clone_repos.sh"; then
-	echo "clone_repos.sh failed!"
-	cat clone_repos.log
-	exit 1
-fi
-
-# vim:set tw=80 sw=8 sts=8 noet:
diff --git a/script/scratch_scripts/initial_clone_v3.sh b/script/scratch_scripts/initial_clone_v3.sh
deleted file mode 100755
index 3e34577..0000000
--- a/script/scratch_scripts/initial_clone_v3.sh
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# This script is meant to be run from Jenkins to make an initial clone of the
-# CI repository.
-#
-#  - If CI_SCRATCH is set, we assume that a parent job has already cloned
-#    required repositories; so we skip further cloning.
-#
-#  - Otherwise, we call clone_repos.sh to have all required repositories to be
-#    cloned.
-#
-# Note that, since this file resides in the repository itself, a copy of this
-# file must be 'wget'. I.e., any changes to to this file must be committed first
-# to the CI repository master for it to take effect!
-
-set -e
-
-strip_var() {
-	local var="$1"
-	local val="$(echo "${!var}" | sed 's#^\s*\|\s*$##g')"
-	eval "$var=$val"
-}
-
-strip_var CI_REFSPEC
-
-if [ "$CI_ENVIRONMENT" ]; then
-	tmpfile="$(mktemp --tmpdir="$WORKSPACE")"
-	echo "$CI_ENVIRONMENT" | tr ' ' '\n' > "$tmpfile"
-	set -a
-	source "$tmpfile"
-	set +a
-fi
-
-if [ "$CI_SCRATCH" ]; then
-	if [ ! -d "$CI_SCRATCH" ]; then
-		echo "\$CI_SCRATCH is stale; ignored."
-	else
-		# Copy environment and parameter file from scratch to this job's
-		# workspace
-		cp "$CI_SCRATCH/env" .
-		cp "$CI_SCRATCH/env.param" .
-		find "$CI_SCRATCH" -name "*.data" -exec cp -t . '{}' +
-
-		exit 0
-	fi
-fi
-
-# If no CI ref specs were explicitly specified, but was triggered from a CI
-# Gerrit trigger, move to the Gerrit refspec instead so that we use the expected
-# version of clone_repos.sh.
-if [ -z "$CI_REFSPEC" ] && [ "$REPO_UNDER_TEST" = "tf-a-ci" ] && \
-		[ "$GERRIT_REFSPEC" ]; then
-	export CI_REFSPEC="$GERRIT_REFSPEC"
-fi
-
-ci_root=`pwd`/"tf-a-ci"
-# Clone CI repository and move to the refspec
-git clone -q --depth 1 \
-	--reference /arm/projectscratch/ssg/trusted-fw/ref-repos/tf-a-ci \
-	https://gerrit.oss.arm.com/trusted-firmware/tf-a-ci $ci_root
-
-# Set CI_ROOT as a fallback
-echo "CI_ROOT=$ci_root" >> env
-export CI_ROOT=$ci_root
-echo "CI_ROOT:"$CI_ROOT
-
-if [ "$CI_REFSPEC" ]; then
-	# Only recent Git versions support fetching refs via. commit IDs.
-	# However, platform slaves have been updated to a version that can do
-	# this (https://jira.arm.com/browse/SSGSWINF-1426). The module load
-	# commands have been commented out since.
-	#
-	# source /arm/tools/setup/init/bash
-	# module load swdev
-	# module load git/git/2.14.3
-
-	# Translate refpsec if supported
-	if [ -x "$ci_root/script/translate_refspec.py" ]; then
-		CI_REFSPEC="$("$ci_root/script/translate_refspec.py" \
-				-p tf-a-ci "$CI_REFSPEC")"
-	fi
-
-	pushd $ci_root &>/dev/null
-	git fetch -q --depth 1 origin "$CI_REFSPEC"
-	git checkout -q FETCH_HEAD
-	echo
-	echo "Initial CI repo checked out to '$CI_REFSPEC'."
-	popd &>/dev/null
-fi
-
-if [ "$ci_only" ]; then
-	exit 0
-fi
-
-if ! "$ci_root/script/clone_repos.sh"; then
-	echo "clone_repos.sh failed!"
-	cat clone_repos.log
-	exit 1
-fi
-
-# vim:set tw=80 sw=8 sts=8 noet:
diff --git a/script/scratch_scripts/post_build_setup.sh b/script/scratch_scripts/post_build_setup.sh
deleted file mode 100644
index d5244c9..0000000
--- a/script/scratch_scripts/post_build_setup.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# THIS SCRIPT IS SOURCED!
-#
-# This script exists only to obtain a meaningful value for $CI_ROOT, the root
-# directory for CI scripts, from which other post-build scripts are executed.
-# Normally, $CI_ROOT *would* be available via. environment injection, but if a job
-# failed in its early stages, it wouldn't.
-
-# Although env file is meant to be sourced, RHS might have white spaces in it,
-# so sourcing will fail.
-set_ci_root() {
-	if [ -d "platform-ci/trusted-fw/new-ci" ]
-	then
-		ci_root="platform-ci/trusted-fw/new-ci"
-	else
-		ci_root="platform-ci"
-	fi
-}
-if [ -f "$WORKSPACE/env" ]; then
-	source "$WORKSPACE/env" 2>/dev/null || true
-fi
-
-if [ -z "$CI_ROOT" ] && [ -d "$WORKSPACE/platform-ci" ]; then
-	set_ci_root
-	CI_ROOT=$ci_root
-fi
-
-if [ -z "$CI_ROOT" ]; then
-	echo "warning: couldn't not determine value for \$CI_ROOT"
-fi
diff --git a/script/scratch_scripts/post_build_setup_v2.sh b/script/scratch_scripts/post_build_setup_v2.sh
deleted file mode 100644
index 8d22ca6..0000000
--- a/script/scratch_scripts/post_build_setup_v2.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# THIS SCRIPT IS SOURCED!
-#
-# This script exists only to obtain a meaningful value for $CI_ROOT, the root
-# directory for CI scripts, from which other post-build scripts are executed.
-# Normally, $CI_ROOT *would* be available via. environment injection, but if a job
-# failed in its early stages, it wouldn't.
-
-# Although env file is meant to be sourced, RHS might have white spaces in it,
-# so sourcing will fail.
-if [ -f "$WORKSPACE/env" ]; then
-	source "$WORKSPACE/env" 2>/dev/null || true
-fi
-
-if [ -z "$CI_ROOT" ] && [ -d "$WORKSPACE/tf-a-ci" ]; then
-	CI_ROOT="$WORKSPACE/tf-a-ci"
-fi
-
-if [ -z "$CI_ROOT" ]; then
-	echo "warning: couldn't not determine value for \$CI_ROOT"
-fi
diff --git a/script/translate_refspec.py b/script/translate_refspec.py
deleted file mode 100755
index a45ec60..0000000
--- a/script/translate_refspec.py
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-# This scripts translates certain accepted refspec schemes to something that can
-# be used on git command line. For example, given the refspec 'topic:foo/bar'
-# for a given project, this script translates and prints the full commit hash.
-#
-# If a scheme is not recognized, print the received refspec unchanged.
-
-import argparse
-import gerrit
-import sys
-
-# Gerrit servers we care about.
-gerrit_arm = gerrit.GerritServer("gerrit.oss.arm.com")
-gerrit_tforg = gerrit.GerritServer("review.trustedfirmware.org")
-
-# Trusted Firmware-A and associated projects.
-# Different projects are hosted on different Gerrit servers.
-projects = {
-    # Projects hosted on Arm Gerrit server.
-    "arm": {
-        "trusted-firmware": gerrit.GerritProject("pdcs-platforms/ap/tf-topics", gerrit_arm),
-        "trusted-firmware-tf": gerrit.GerritProject("trusted-firmware/tf-a-tests", gerrit_arm),
-        "trusted-firmware-ci": gerrit.GerritProject("pdswinf/ci/pdcs-platforms/platform-ci", gerrit_arm),
-	"cc_plugin": gerrit.GerritProject("tests/lava/test-definitions.git", gerrit_arm),
-        "scp": gerrit.GerritProject("scp/firmware", gerrit_arm),
-        "spm": gerrit.GerritProject("trusted-firmware/spm", gerrit_arm),
-    },
-
-    # Projects hosted on trustedfirmware.org Gerrit server.
-    "tforg": {
-        "trusted-firmware": gerrit.GerritProject("TF-A/trusted-firmware-a", gerrit_tforg),
-        "trusted-firmware-tf": gerrit.GerritProject("TF-A/tf-a-tests", gerrit_tforg),
-        "trusted-firmware-ci": gerrit.GerritProject("ci/tf-a-ci-scripts", gerrit_tforg),
-        "spm": gerrit.GerritProject("hafnium/hafnium", gerrit_tforg),
-    },
-}
-
-# Argument setup
-parser = argparse.ArgumentParser()
-parser.add_argument("--project", "-p",
-                    help="Gerrit project identifier this refspec belongs to")
-parser.add_argument("--server", "-s", help="Gerrit server hosting this project",
-                    choices=["arm", "tforg"])
-parser.add_argument("--user", "-u",
-                    help="Username to use to query the Gerrit server")
-parser.add_argument("--key", "-k",
-                    help="SSH private key to use to authenticate with the Gerrit server")
-parser.add_argument("refspec", help="Refspec to translate")
-opts = parser.parse_args()
-
-project = projects[opts.server][opts.project]
-
-# Default action: print refspec and exit
-def do_default():
-    print(opts.refspec)
-    sys.exit(0)
-
-def print_topic_tip(query_results):
-    patchsets = []
-    parents = []
-
-    # For each change, get its most recent patchset
-    for change in query_results:
-        patchsets.append(change["patchSets"][-1])
-
-    # For each patchset, get its parent commit
-    for patchset in patchsets:
-        parents.append(patchset["parents"][0])
-
-    # If a patchset's revision is NOT in the list of parents then it should
-    # be the tip commit
-    tips = list(filter(lambda x: x["revision"] not in parents, patchsets))
-
-    # There must be only one patchset remaining, otherwise the tip is ambiguous
-    if len(tips) > 1:
-        raise Exception("{} in {} has no unique tip commit.".format(opts.refspec,
-                                                                    opts.project))
-    if len(tips) == 0:
-        raise Exception("No tip commit found for {} in {}.".format(opts.refspec,
-                                                                   opts.project))
-    # Print the reference of the topic tip patchset
-    print(tips[0]["ref"])
-
-query = ["status:open"]
-
-# If we don't understand the refspec, that's OK. We don't translate it, but
-# print it as is.
-try:
-    scheme, rest = opts.refspec.split(":")
-    if scheme == "topic":
-        query += ["topic:" + rest]
-    elif scheme == "change":
-        query += [opts.refspec]
-    else:
-        do_default()
-except:
-    do_default()
-
-changes = project.query(query, username=opts.user, keyfile=opts.key)
-
-# The last object is a summary; drop it as it's not of interest to us.
-changes.pop()
-
-if not changes:
-    raise Exception("{} for {} resolved to nothing.".format(opts.refspec,
-                                                            opts.project))
-
-if scheme == "topic":
-    if len(changes) > 1:
-       print_topic_tip(changes)
-    else:
-        print(changes[0]["currentPatchSet"]["ref"])
-elif scheme == "change":
-    if len(changes) > 1:
-        # When querying for a specific change there must be just a single result
-        raise Exception("{} for {} did not resolve uniquely.".format(opts.refspec,
-                                                                     opts.project))
-    print(changes[0]["currentPatchSet"]["revision"])
diff --git a/script/trusted-firmware.nomination.py b/script/trusted-firmware.nomination.py
deleted file mode 100644
index eda06af..0000000
--- a/script/trusted-firmware.nomination.py
+++ /dev/null
@@ -1,90 +0,0 @@
-#
-# Copyright (c) 2019-2022, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-#
-# Nomination map for Trusted Firmware.
-#
-# This file is EXECED from gen_nomination.py
-
-nomination_rules = {
-        # Run RDN1EDGE TF-A Tests and MISRA checks for any platform changes
-        "path:plat/arm/board/rdn1edge":
-            ["tf-l3-boot-tests-css/fvp-rdn1edge-tbb,fvp-rdn1edge-default:fvp-tftf.sgi-fip.tftf-rdn1edge",
-             "tf-l2-coverity-misra-nominated/fvp-rdn1edge-tbb:coverity-tf-misra.diff",
-             "tf-l3-boot-tests-css/fvp-rdn1edgex2-tbb:fvp-linux.sgi-fip.sgi-rdn1edgex2-debug",
-             "tf-l2-coverity-misra-nominated/fvp-rdn1edgex2-tbb:coverity-tf-misra.diff"],
-
-        # Run RD-V1 TF-A Tests and MISRA checks for any platform changes
-        "path:plat/arm/board/rdv1":
-            ["tf-l3-boot-tests-css/fvp-rdv1-tbb:fvp-linux.sgi-fip.sgi-rdv1-debug",
-             "tf-l2-coverity-misra-nominated/fvp-rdv1-tbb:coverity-tf-misra.diff"],
-
-        # Run SGI575 boot test, TF-A Tests and MISRA checks for any changes with "sgi" in the path
-        "pathre:sgi":
-            ["tf-l3-boot-tests-css/fvp-sgi575-tbb:fvp-linux.sgi-fip.sgi-sgi575-debug",
-             "tf-l3-boot-tests-css/fvp-sgi575-tbb,fvp-sgi575-default:fvp-tftf.sgi-fip.tftf-sgi575",
-             "tf-l2-coverity-misra-nominated/fvp-sgi575-tbb:coverity-tf-misra.diff"],
-
-        # Run Coverity MISRA checks for tc platform changes
-        "path:plat/arm/board/tc":
-            ["tf-l2-coverity-misra-nominated/fvp-tc-tbb:coverity-tf-misra.diff"],
-
-         # Run Coverity MISRA checks and boot test for n1sdp platform changes
-        "path:plat/arm/board/n1sdp":
-            ["tf-l2-coverity-misra-nominated/n1sdp-tbb:coverity-tf-misra.diff",
-             "tf-l3-boot-tests-n1sdp/n1sdp-tbb:n1sdp-linux-fip-firmware-debug"],
-
-        # Run Coverity MISRA checks for arm_fpga platform changes
-        "path:plat/arm/board/arm_fpga":
-            ["tf-l2-coverity-misra-nominated/arm_fpga-default:coverity-tf-misra.diff"],
-
-        # Run Coverity MISRA checks for rde1edge platform changes
-        "path:plat/arm/board/rde1edge":
-            ["tf-l2-coverity-misra-nominated/fvp-rde1edge-tbb:coverity-tf-misra.diff"],
-
-        # Run Coverity MISRA checks for fvp_ve platform changes
-        "path:plat/arm/board/fvp_ve":
-            ["tf-l2-coverity-misra-nominated/fvp_ve-a7:coverity-tf-misra.diff"],
-
-        # Run Coverity MISRA checks for a5ds platform changes
-        "path:plat/arm/board/a5ds":
-            ["tf-l2-coverity-misra-nominated/a5ds:coverity-tf-misra.diff"],
-
-        # Run Coverity MISRA checks for corstone700 platform changes
-        "path:plat/arm/board/corstone700":
-            ["tf-l2-coverity-misra-nominated/corstone700-fvp-default:coverity-tf-misra.diff",
-             "tf-l2-coverity-misra-nominated/corstone700-fpga-default:coverity-tf-misra.diff"],
-
-        # Run Coverity MISRA checks for SPM_MM changes
-        "pathre:spm_mm":
-            ["tf-l2-coverity-misra-nominated/fvp-spm-mm:coverity-tf-misra.diff"],
-
-         # Run Coverity MISRA checks for Debugfs changes
-         "pathre:debugfs":
-            ["tf-l2-coverity-misra-nominated/fvp-debugfs:coverity-tf-misra.diff"],
-
-        # Run Coverity MISRA checks for fconf changes
-        "pathre:fconf":
-            ["tf-l2-coverity-misra-nominated/fvp-aarch64-sdei-fconf:coverity-tf-misra.diff"],
-
-        # Run Coverity MISRA checks for pauth changes
-        "pathre:pauth":
-            ["tf-l2-coverity-misra-nominated/fvp-pauth-standard-sdei:coverity-tf-misra.diff"],
-
-        # Run Coverity MISRA checks for RAS extension changes
-        ("path:lib/extensions/ras", "pathre:fvp_ras"):
-            ["tf-l2-coverity-misra-nominated/fvp-ras-fault-inject:coverity-tf-misra.diff"],
-
-        # Run SDEI boot test for SDEI, EHF, or RAS changes or mention
-        ("pathre:sdei", "pathre:ehf", "pathre:ras", "has:SDEI_SUPPORT",
-              "has:EL3_EXCEPTION_HANDLING"):
-            ["tftf-l2-fvp/fvp-aarch64-sdei,fvp-default:fvp-tftf-fip.tftf-aemv8a-debug",
-             "tf-l2-coverity-misra-nominated/fvp-aarch64-sdei:coverity-tf-misra.diff"],
-
-        # Run Morello FVP busybox boot test for any platform changes
-        "path:plat/arm/board/morello":
-            ["tf-l3-boot-tests-css/fvp-morello-tbb:fvp-linux.morello-fip.morello-morello-debug"],
-        }