diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index f0c7312..0000000
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,6 +0,0 @@
-## Summary
-
-## Impact
-
-## Testing
-
diff --git a/.github/actions/ci-container/action.yaml b/.github/actions/ci-container/action.yaml
deleted file mode 100644
index bf7e9cc..0000000
--- a/.github/actions/ci-container/action.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-name: ci-container
-inputs:
-  run:  # id of input
-    description: 'Commands to run'
-    required: true
-runs:
-  using: 'docker'
-  image: 'docker.pkg.github.com/apache/incubator-nuttx-testing/nuttx-ci-linux'
-  args:
-    - "/bin/bash"
-    - "-ce"
-    - ${{ inputs.run }}
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
deleted file mode 100644
index 1829535..0000000
--- a/.github/workflows/build.yml
+++ /dev/null
@@ -1,116 +0,0 @@
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-name: Build
-
-on:
-  pull_request:
-
-jobs:
-  Linux:
-    runs-on: ubuntu-latest
-    env:
-      DOCKER_BUILDKIT: 1
-      IMAGE_TAG: docker.pkg.github.com/${{ github.repository }}/nuttx-ci-linux
-
-    strategy:
-      matrix:
-        boards: [arm-01, arm-02, arm-03, arm-04, arm-05, arm-06, arm-07, arm-08, arm-09, arm-10, arm-11, arm-12, arm-13, other, risc-v, sim01, sim02, xtensa]
-
-    steps:
-      - name: Checkout nuttx repo
-        uses: actions/checkout@v2
-        with:
-          repository: apache/incubator-nuttx
-          ref: master
-          path: sources/nuttx
-          fetch-depth: 1
-      - name: Checkout nuttx repo tags
-        run: git -C sources/nuttx fetch --tags
-
-      - name: Checkout apps repo
-        uses: actions/checkout@v2
-        with:
-          repository: apache/incubator-nuttx-apps
-          ref: master
-          path: sources/apps
-          fetch-depth: 1
-
-      - name: Checkout testing repo
-        uses: actions/checkout@v2
-        with:
-          repository: apache/incubator-nuttx-testing
-          path: sources/testing
-          fetch-depth: 1
-
-      - name: Docker Login
-        uses: azure/docker-login@v1
-        with:
-          login-server: docker.pkg.github.com
-          username: ${GITHUB_ACTOR}
-          password: ${{ secrets.GITHUB_TOKEN }}
-
-      - name: Docker Pull
-        run: docker pull docker.pkg.github.com/apache/incubator-nuttx-testing/nuttx-ci-linux
-      - name: Run builds
-        uses: ./sources/testing/.github/actions/ci-container
-        env:
-          BLOBDIR: /tools/blobs
-        with:
-          run: |
-            echo "::add-matcher::sources/nuttx/.github/gcc.json"
-            export CCACHE_DIR=`pwd`/ccache
-            mkdir $CCACHE_DIR
-            cd sources/testing
-            export ARTIFACTDIR=`pwd`/../../buildartifacts
-            ./cibuild.sh -A -c testlist/${{matrix.boards}}.dat
-            ccache -s
-
-  macOS:
-    runs-on: macos-10.15
-    strategy:
-      matrix:
-        boards: [macos, sim01, sim02]
-    steps:
-      - name: Checkout nuttx repo
-        uses: actions/checkout@v2
-        with:
-          repository: apache/incubator-nuttx
-          ref: master
-          path: sources/nuttx
-          fetch-depth: 1
-      - name: Checkout nuttx repo tags
-        run: git -C sources/nuttx fetch --tags
-
-      - name: Checkout apps repo
-        uses: actions/checkout@v2
-        with:
-          repository: apache/incubator-nuttx-apps
-          ref: master
-          path: sources/apps
-          fetch-depth: 1
-
-      - name: Checkout testing repo
-        uses: actions/checkout@v2
-        with:
-          repository: apache/incubator-nuttx-testing
-          path: sources/testing
-          fetch-depth: 1
-      - name: Run Builds
-        run: |
-          echo "::add-matcher::sources/nuttx/.github/gcc.json"
-          export CCACHE_DIR=`pwd`/ccache
-          mkdir $CCACHE_DIR
-          cd sources/testing
-          export ARTIFACTDIR=`pwd`/../../buildartifacts
-          ./cibuild.sh -i -A -c -x testlist/${{matrix.boards}}.dat
-          ccache -s
diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml
deleted file mode 100644
index 9f4e41b..0000000
--- a/.github/workflows/cancel.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-name: Cancelling Duplicates
-on:
-  workflow_run:
-    workflows: ["Build", "Docker-Linux", "Lint"]
-    types: ['requested']
-
-jobs:
-  cancel-duplicate-workflow-runs:
-    name: "Cancel duplicate workflow runs"
-    runs-on: ubuntu-latest
-    steps:
-      - uses: apache/airflow-cancel-workflow-runs@master
-        name: "Cancel duplicate workflow runs"
-        with:
-          cancelMode: allDuplicates
-          token: ${{ secrets.GITHUB_TOKEN }}
-          sourceRunId: ${{ github.event.workflow_run.id }}
diff --git a/.github/workflows/docker_linux.yml b/.github/workflows/docker_linux.yml
deleted file mode 100644
index b325ec1..0000000
--- a/.github/workflows/docker_linux.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-name: Docker-Linux
-
-on:
-  push:
-    # Publish `master` as Docker `latest` image.
-    branches:
-      - master
-    paths:
-      - 'docker/linux/**'
-
-  # Run builds for any PRs.
-  pull_request:
-    paths:
-      - 'docker/linux/**'
-
-env:
-  IMAGE_NAME: nuttx-ci-linux
-
-jobs:
-  # Push image to GitHub Packages.
-  push:
-    runs-on: ubuntu-latest
-    env:
-      DOCKER_BUILDKIT: 1
-      IMAGE_TAG: docker.pkg.github.com/${{ github.repository }}/nuttx-ci-linux
-    steps:
-      - uses: actions/checkout@v2
-
-      - name: Log into registry
-        run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login docker.pkg.github.com -u ${{ github.actor }} --password-stdin
-
-      - name: Build Linux image
-        run: |
-          echo "Building Linux Image using cache from $IMAGE_TAG"
-
-          docker build \
-            --build-arg BUILDKIT_INLINE_CACHE=1 \
-            --cache-from $IMAGE_TAG \
-            --tag $IMAGE_TAG \
-            -f ./docker/linux/Dockerfile ./docker/
-        
-      - name: Push Linux image
-        if: (github.event_name == 'push') && (github.ref == 'refs/heads/master')
-        run: |
-          docker push $IMAGE_TAG
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
deleted file mode 100644
index ca66104..0000000
--- a/.github/workflows/lint.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-name: Lint
-
-on: [pull_request]
-
-jobs:
-  lint:
-    name: Lint
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v2
-      - name: Super Lint
-        uses: github/super-linter@v3
-        env:
-          VALIDATE_YAML: true
diff --git a/README.md b/README.md
index c3f13f2..53324ef 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,3 @@
 # incubator-nuttx-testing
+
+*The contents of this repository have been moved to the CI section of the main Apache NuttX OS [repo](https://github.com/apache/incubator-nuttx/tree/master/tools/ci).  Please file any issues and PRs there.*
diff --git a/cibuild.sh b/cibuild.sh
deleted file mode 100755
index ea47d87..0000000
--- a/cibuild.sh
+++ /dev/null
@@ -1,442 +0,0 @@
-#!/usr/bin/env bash
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#  http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# Prerequisites for macOS
-#  - Xcode (cc, etc)
-#  - homebrew
-#  - autoconf
-#  - wget
-
-set -e
-set -o xtrace
-
-WD=$(cd $(dirname $0) && pwd)
-WORKSPACE=$(cd $WD/.. && pwd -P)
-nuttx=$WORKSPACE/nuttx
-apps=$WORKSPACE/apps
-tools=$WORKSPACE/tools
-prebuilt=$WORKSPACE/prebuilt
-os=$(uname -s)
-EXTRA_PATH=
-
-case $os in
-  Darwin)
-    install="python-tools u-boot-tools elf-toolchain gen-romfs kconfig-frontends arm-gcc-toolchain riscv-gcc-toolchain xtensa-esp32-gcc-toolchain avr-gcc-toolchain c-cache binutils"
-    mkdir -p ${prebuilt}/homebrew
-    export HOMEBREW_CACHE=${prebuilt}/homebrew
-    # https://github.com/actions/virtual-environments/issues/2322#issuecomment-749211076
-    rm -rf /usr/local/bin/2to3
-    # https://github.com/osx-cross/homebrew-avr/issues/205#issuecomment-760637996
-    brew update --quiet
-    ;;
-  Linux)
-    install="python-tools gen-romfs gperf kconfig-frontends arm-gcc-toolchain mips-gcc-toolchain riscv-gcc-toolchain xtensa-esp32-gcc-toolchain rx-gcc-toolchain c-cache"
-    ;;
-esac
-
-function add_path {
-  PATH=$1:$PATH
-  EXTRA_PATH=$1:$EXTRA_PATH
-}
-
-function python-tools {
-  # Python User Env
-  PIP_USER=yes
-  export PIP_USER
-  PYTHONUSERBASE=$prebuilt/pylocal
-  export PYTHONUSERBASE
-  add_path $PYTHONUSERBASE/bin
-  pip3 install pexpect
-}
-
-function u-boot-tools {
-  if ! type mkimage > /dev/null; then
-    case $os in
-      Darwin)
-        brew install u-boot-tools
-        ;;
-    esac
-  fi
-}
-
-function elf-toolchain {
-  if ! type x86_64-elf-gcc > /dev/null; then
-    case $os in
-      Darwin)
-        brew install x86_64-elf-gcc
-        ;;
-    esac
-  fi
-  x86_64-elf-gcc --version
-}
-
-function gen-romfs {
-  add_path $prebuilt/genromfs/usr/bin
-
-  if [ ! -f "$prebuilt/genromfs/usr/bin/genromfs" ]; then
-    if [ ! -d "$tools" ]; then
-      git clone https://bitbucket.org/nuttx/tools.git $tools
-    fi
-    mkdir -p $prebuilt; cd $tools
-    tar zxf genromfs-0.5.2.tar.gz -C $prebuilt
-    cd $prebuilt/genromfs-0.5.2
-    make install PREFIX=$prebuilt/genromfs
-    cd $prebuilt
-    rm -rf genromfs-0.5.2
-  fi
-}
-
-function gperf {
-  add_path $prebuilt/gperf/bin
-
-  if [ ! -f "$prebuilt/gperf/bin/gperf" ]; then
-    cd $prebuilt
-    wget --quiet http://ftp.gnu.org/pub/gnu/gperf/gperf-3.1.tar.gz
-    tar zxf gperf-3.1.tar.gz
-    cd $prebuilt/gperf-3.1
-    ./configure --prefix=$prebuilt/gperf; make; make install
-    cd $prebuilt
-    rm -rf gperf-3.1; rm gperf-3.1.tar.gz
-  fi
-}
-
-function kconfig-frontends {
-  add_path $prebuilt/kconfig-frontends/bin
-
-  if [ ! -f "$prebuilt/kconfig-frontends/bin/kconfig-conf" ]; then
-    cd $tools/kconfig-frontends
-    ./configure --prefix=$prebuilt/kconfig-frontends \
-      --disable-kconfig --disable-nconf --disable-qconf \
-      --disable-gconf --disable-mconf --disable-static \
-      --disable-shared --disable-L10n
-    # Avoid "aclocal/automake missing" errors
-    touch aclocal.m4 Makefile.in
-    make install
-    cd $tools; git clean -xfd
-  fi
-}
-
-function bloaty {
-  add_path $prebuilt/bloaty/bin
-  if [ ! -f "$prebuilt/bloaty/bin/bloaty" ]; then
-    git clone --depth 1 --branch v1.1 https://github.com/google/bloaty bloaty-src
-    cd bloaty-src
-    mkdir -p $prebuilt/bloaty
-    cmake -DCMAKE_SYSTEM_PREFIX_PATH=$prebuilt/bloaty
-    make install -j 6
-    cd $prebuilt
-    rm -rf bloaty-src
-  fi
-}
-
-function arm-gcc-toolchain {
-  add_path $prebuilt/gcc-arm-none-eabi/bin
-
-  if [ ! -f "$prebuilt/gcc-arm-none-eabi/bin/arm-none-eabi-gcc" ]; then
-    local flavor
-    case $os in
-      Darwin)
-        flavor=mac
-        ;;
-      Linux)
-        flavor=x86_64-linux
-        ;;
-    esac
-    cd $prebuilt
-    wget --quiet https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2019q4/RC2.1/gcc-arm-none-eabi-9-2019-q4-major-${flavor}.tar.bz2
-    tar jxf gcc-arm-none-eabi-9-2019-q4-major-${flavor}.tar.bz2
-    mv gcc-arm-none-eabi-9-2019-q4-major gcc-arm-none-eabi
-    rm gcc-arm-none-eabi-9-2019-q4-major-${flavor}.tar.bz2
-  fi
-  arm-none-eabi-gcc --version
-}
-
-function mips-gcc-toolchain {
-  add_path $prebuilt/pinguino-compilers/linux64/p32/bin
-
-  if [ ! -f "$prebuilt/pinguino-compilers/linux64/p32/bin/p32-gcc" ]; then
-    cd $prebuilt
-    git clone https://github.com/PinguinoIDE/pinguino-compilers
-  fi
-  p32-gcc --version
-}
-
-function riscv-gcc-toolchain {
-  add_path $prebuilt/riscv64-unknown-elf-gcc/bin
-
-  if [ ! -f "$prebuilt/riscv64-unknown-elf-gcc/bin/riscv64-unknown-elf-gcc" ]; then
-    local flavor
-    case $os in
-      Darwin)
-        flavor=x86_64-apple-darwin
-        ;;
-      Linux)
-        flavor=x86_64-linux-ubuntu14
-        ;;
-    esac
-    cd $prebuilt
-    wget --quiet https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-${flavor}.tar.gz
-    tar zxf riscv64-unknown-elf-gcc-8.3.0-2019.08.0-${flavor}.tar.gz
-    mv riscv64-unknown-elf-gcc-8.3.0-2019.08.0-${flavor} riscv64-unknown-elf-gcc
-    rm riscv64-unknown-elf-gcc-8.3.0-2019.08.0-${flavor}.tar.gz
-  fi
-  riscv64-unknown-elf-gcc --version
-}
-
-function xtensa-esp32-gcc-toolchain {
-  add_path $prebuilt/xtensa-esp32-elf/bin
-
-  if [ ! -f "$prebuilt/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc" ]; then
-    cd $prebuilt
-    case $os in
-      Darwin)
-        wget --quiet https://dl.espressif.com/dl/xtensa-esp32-elf-gcc8_2_0-esp-2019r2-macos.tar.gz
-        tar xzf xtensa-esp32-elf-gcc8_2_0-esp-2019r2-macos.tar.gz
-        rm xtensa-esp32-elf-gcc8_2_0-esp-2019r2-macos.tar.gz
-        ;;
-      Linux)
-        wget --quiet https://dl.espressif.com/dl/xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-rc2-linux-amd64.tar.xz
-        xz -d xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-rc2-linux-amd64.tar.xz
-        tar xf xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-rc2-linux-amd64.tar
-        rm xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-rc2-linux-amd64.tar
-        ;;
-    esac
-  fi
-  xtensa-esp32-elf-gcc --version
-  pip3 install esptool
-}
-
-function avr-gcc-toolchain {
-  if ! type avr-gcc > /dev/null; then
-    case $os in
-      Darwin)
-        brew tap osx-cross/avr
-        brew install avr-gcc
-        ;;
-    esac
-  fi
-}
-
-function rx-gcc-toolchain {
-  add_path $prebuilt/renesas-toolchain/rx-elf-gcc/bin
-
-  if [ ! -f "$prebuilt/renesas-toolchain/rx-elf-gcc/bin/rx-elf-gcc" ]; then
-    case $os in
-      Linux)
-        # Download toolchain source code
-        # RX toolchain is built from source code. Once prebuilt RX toolchain is made available, the below code snippet can be removed.
-        mkdir -p $prebuilt/renesas-tools/rx/source; cd $prebuilt/renesas-tools/rx/source
-        wget --quiet https://gcc-renesas.com/downloads/d.php?f=rx/binutils/4.8.4.201803-gnurx/rx_binutils2.24_2018Q3.tar.gz \
-          -O rx_binutils2.24_2018Q3.tar.gz
-        tar zxf rx_binutils2.24_2018Q3.tar.gz
-        wget --quiet https://gcc-renesas.com/downloads/d.php?f=rx/gcc/4.8.4.201803-gnurx/rx_gcc_4.8.4_2018Q3.tar.gz \
-          -O rx_gcc_4.8.4_2018Q3.tar.gz
-        tar zxf rx_gcc_4.8.4_2018Q3.tar.gz
-        wget --quiet https://gcc-renesas.com/downloads/d.php?f=rx/newlib/4.8.4.201803-gnurx/rx_newlib2.2.0_2018Q3.tar.gz \
-          -O rx_newlib2.2.0_2018Q3.tar.gz
-        tar zxf rx_newlib2.2.0_2018Q3.tar.gz
-
-        # Install binutils
-        cd $prebuilt/renesas-tools/rx/source/binutils; chmod +x ./configure ./mkinstalldirs
-        mkdir -p $prebuilt/renesas-tools/rx/build/binutils; cd $prebuilt/renesas-tools/rx/build/binutils
-        $prebuilt/renesas-tools/rx/source/binutils/configure --target=rx-elf --prefix=$prebuilt/renesas-toolchain/rx-elf-gcc \
-          --disable-werror
-        make; make install
-
-        # Install gcc
-        cd $prebuilt/renesas-tools/rx/source/gcc
-        chmod +x ./contrib/download_prerequisites ./configure ./move-if-change ./libgcc/mkheader.sh
-        ./contrib/download_prerequisites
-        sed -i '1s/^/@documentencoding ISO-8859-1\n/' ./gcc/doc/gcc.texi
-        sed -i 's/@tex/\n&/g' ./gcc/doc/gcc.texi && sed -i 's/@end tex/\n&/g' ./gcc/doc/gcc.texi
-        mkdir -p $prebuilt/renesas-tools/rx/build/gcc; cd $prebuilt/renesas-tools/rx/build/gcc
-        $prebuilt/renesas-tools/rx/source/gcc/configure --target=rx-elf --prefix=$prebuilt/renesas-toolchain/rx-elf-gcc \
-        --disable-shared --disable-multilib --disable-libssp --disable-libstdcxx-pch --disable-werror --enable-lto \
-        --enable-gold --with-pkgversion=GCC_Build_1.02 --with-newlib --enable-languages=c
-        make; make install
-
-        # Install newlib
-        cd $prebuilt/renesas-tools/rx/source/newlib; chmod +x ./configure
-        mkdir -p $prebuilt/renesas-tools/rx/build/newlib; cd $prebuilt/renesas-tools/rx/build/newlib
-        $prebuilt/renesas-tools/rx/source/newlib/configure --target=rx-elf --prefix=$prebuilt/renesas-toolchain/rx-elf-gcc
-        make; make install
-        rm -rf $prebuilt/renesas-tools/
-        ;;
-    esac
-  fi
-  rx-elf-gcc --version
-}
-
-function c-cache {
-  add_path $prebuilt/ccache/bin
-
-  if ! type ccache > /dev/null; then
-    case $os in
-      Darwin)
-        brew install ccache
-        ;;
-      Linux)
-        cd $prebuilt;
-        wget https://github.com/ccache/ccache/releases/download/v3.7.7/ccache-3.7.7.tar.gz
-        tar zxf ccache-3.7.7.tar.gz
-        cd ccache-3.7.7; ./configure --prefix=$prebuilt/ccache; make; make install
-        cd $prebuilt; rm -rf ccache-3.7.7; rm ccache-3.7.7.tar.gz
-        ;;
-    esac
-  fi
-
-  ccache --version
-  mkdir -p $prebuilt/ccache/bin/
-  ln -sf `which ccache` $prebuilt/ccache/bin/x86_64-elf-gcc
-  ln -sf `which ccache` $prebuilt/ccache/bin/x86_64-elf-g++
-  ln -sf `which ccache` $prebuilt/ccache/bin/cc
-  ln -sf `which ccache` $prebuilt/ccache/bin/c++
-  ln -sf `which ccache` $prebuilt/ccache/bin/clang
-  ln -sf `which ccache` $prebuilt/ccache/bin/clang++
-  ln -sf `which ccache` $prebuilt/ccache/bin/gcc
-  ln -sf `which ccache` $prebuilt/ccache/bin/g++
-  ln -sf `which ccache` $prebuilt/ccache/bin/arm-none-eabi-gcc
-  ln -sf `which ccache` $prebuilt/ccache/bin/arm-none-eabi-g++
-  ln -sf `which ccache` $prebuilt/ccache/bin/p32-gcc
-  ln -sf `which ccache` $prebuilt/ccache/bin/riscv64-unknown-elf-gcc
-  ln -sf `which ccache` $prebuilt/ccache/bin/riscv64-unknown-elf-g++
-  ln -sf `which ccache` $prebuilt/ccache/bin/xtensa-esp32-elf-gcc
-  ln -sf `which ccache` $prebuilt/ccache/bin/avr-gcc
-  ln -sf `which ccache` $prebuilt/ccache/bin/avr-g++
-}
-
-function binutils {
-  mkdir -p $prebuilt/bintools/bin
-  add_path $prebuilt/bintools/bin
-
-  if ! type objcopy > /dev/null; then
-    case $os in
-      Darwin)
-        brew install binutils
-        # It is possible we cached prebuilt but did brew install so recreate
-        # simlink if it exists
-        rm -f $prebuilt/bintools/bin/objcopy
-        ln -s /usr/local/opt/binutils/bin/objcopy $prebuilt/bintools/bin/objcopy
-        ;;
-    esac
-  fi
-}
-
-function usage {
-  echo ""
-  echo "USAGE: $0 [-i] [-s] [-c] [-*] <testlist>"
-  echo "       $0 -h"
-  echo ""
-  echo "Where:"
-  echo "  -i install tools"
-  echo "  -s setup repos"
-  echo "  -c enable ccache"
-  echo "  -* support all options in testbuild.sh"
-  echo "  -h will show this help test and terminate"
-  echo "  <testlist> select testlist file"
-  echo ""
-  exit 1
-}
-
-function enable_ccache {
-  export USE_CCACHE=1;
-  ccache -z
-  ccache -M 5G;
-  ccache -s
-}
-
-function setup_repos {
-  pushd .
-  if [ -d "$nuttx" ]; then
-    cd $nuttx; git pull
-  else
-    git clone https://github.com/apache/incubator-nuttx.git $nuttx
-    cd $nuttx
-  fi
-  git log -1
-
-  if [ -d "$apps" ]; then
-    cd $apps; git pull
-  else
-    git clone https://github.com/apache/incubator-nuttx-apps.git $apps
-    cd $apps
-  fi
-  git log -1
-  popd
-}
-
-function install_tools {
-  pushd .
-  for func in $install; do
-    $func
-  done
-  popd
-
-  echo PATH=$EXTRA_PATH\$PATH > $prebuilt/env.sh
-}
-
-function run_builds {
-  local ncpus
-
-  case $os in
-    Darwin)
-      ncpus=$(sysctl -n hw.ncpu)
-      ;;
-    Linux)
-      ncpus=`grep -c ^processor /proc/cpuinfo`
-      ;;
-  esac
-
-  options+="-j $ncpus"
-
-  for build in $builds; do
-    $nuttx/tools/testbuild.sh $options -e "-Wno-cpp -Werror" $build
-  done
-}
-
-if [ -z "$1" ]; then
-   usage
-fi
-
-while [ ! -z "$1" ]; do
-  case "$1" in
-  -h )
-    usage
-    ;;
-  -i )
-    install_tools
-    ;;
-  -c )
-    enable_ccache
-    ;;
-  -s )
-    setup_repos
-    ;;
-  -* )
-    options+="$1 "
-    ;;
-  * )
-    builds=$@
-    break
-    ;;
-  esac
-  shift
-done
-
-run_builds
diff --git a/docker/linux/Dockerfile b/docker/linux/Dockerfile
deleted file mode 100644
index c5cd371..0000000
--- a/docker/linux/Dockerfile
+++ /dev/null
@@ -1,279 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.  The
-# ASF licenses this file to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance with the
-# License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-FROM ubuntu:20.04 AS builder-base
-# NOTE WE ARE NOT REMOVEING APT CACHE.
-# This should only be used for temp build images that artifacts will be copied from
-RUN apt-get update -qq && apt-get install -y -qq \
-  curl \
-  xz-utils
-
-###############################################################################
-# Base image that should be used to prepare tools from nuttx-tools
-###############################################################################
-FROM builder-base AS nuttx-tools
-
-RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
-  flex \
-  bison \
-  gperf \
-  libncurses5-dev \
-  make \
-  cmake \
-  g++ \
-  gawk \
-  git
-
-RUN mkdir /tools
-WORKDIR /tools
-
-RUN mkdir -p /tools/nuttx-tools
-RUN curl -s -L https://bitbucket.org/nuttx/tools/get/9ad3e1ee75c7.tar.gz \
-  | tar -C nuttx-tools --strip-components=1 -xz
-
-RUN cd nuttx-tools/kconfig-frontends \
-  && ./configure --enable-mconf --disable-gconf --disable-qconf --enable-static --prefix=/tools/kconfig-frontends \
-  && make install
-
-RUN cd nuttx-tools \
-  && mkdir genromfs \
-  && tar -C genromfs --strip-components=1 -xf genromfs-0.5.2.tar.gz \
-  && cd genromfs \
-  && make install PREFIX=/tools/genromfs
-
-RUN mkdir bloaty -p \
-  && git clone --depth 1 --branch v1.1 https://github.com/google/bloaty bloaty \
-  && cd bloaty \
-  && cmake -DCMAKE_SYSTEM_PREFIX_PATH=/tools/bloaty \
-  && make install
-
-CMD [ "/bin/bash" ]
-
-###############################################################################
-# Base image that should be used to prepare arch build images
-###############################################################################
-FROM builder-base AS nuttx-toolchain-base
-
-RUN mkdir /tools
-WORKDIR /tools
-
-###############################################################################
-# Build image for tool required by ARM builds
-###############################################################################
-FROM nuttx-toolchain-base AS nuttx-toolchain-arm
-# Download the latest ARM GCC toolchain prebuilt by ARM
-RUN mkdir gcc-arm-none-eabi && \
-  curl -s -L  "https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2019q4/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2?revision=108bd959-44bd-4619-9c19-26187abf5225&la=en&hash=E788CE92E5DFD64B2A8C246BBA91A249CB8E2D2D" \
-  | tar -C gcc-arm-none-eabi --strip-components 1 -xj
-
-###############################################################################
-# Build image for tool required by Pinguino builds
-###############################################################################
-FROM nuttx-toolchain-base AS nuttx-toolchain-pinguino
-# Download the pinguino compilers. Note this includes both 8bit and 32bit
-# toolchains and builds for multiple host systems. Only copy what is needed.
-RUN mkdir pinguino-compilers && \
-  curl -s -L "https://github.com/PinguinoIDE/pinguino-compilers/archive/62db5158d7f6d41c6fadb05de81cc31dd81a1958.tar.gz" \
-  | tar -C pinguino-compilers --strip-components=2 --wildcards -xz */linux64
-
-###############################################################################
-# Build image for tool required by RISCV builds
-###############################################################################
-FROM nuttx-toolchain-base AS nuttx-toolchain-riscv
-# Download the latest RISCV GCC toolchain prebuilt by SiFive
-RUN mkdir riscv64-unknown-elf-gcc && \
-  curl -s -L "https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-ubuntu14.tar.gz" \
-  | tar -C riscv64-unknown-elf-gcc --strip-components 1 -xz
-
-###############################################################################
-# Build image for tool required by ESP32 builds
-###############################################################################
-FROM nuttx-toolchain-base AS nuttx-toolchain-esp32
-# Download the latest ESP32 GCC toolchain prebuilt by Espressif
-RUN mkdir -p xtensa-esp32-elf-gcc && \
-  curl -s -L "https://github.com/espressif/crosstool-NG/releases/download/esp-2020r3/xtensa-esp32-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz" \
-  | tar -C xtensa-esp32-elf-gcc --strip-components 1 -xz
-
-RUN echo "ESP Binaries: 2021/02/20"
-RUN mkdir -p /tools/blobs && cd /tools/blobs \
-  && curl -s -L "https://github.com/espressif/esp-nuttx-bootloader/releases/download/latest/bootloader-esp32.bin" -o bootloader-esp32.bin \
-  && curl -s -L "https://github.com/espressif/esp-nuttx-bootloader/releases/download/latest/bootloader-esp32c3.bin" -o bootloader-esp32c3.bin \
-  && curl -s -L "https://github.com/espressif/esp-nuttx-bootloader/releases/download/latest/partition-table-esp32.bin" -o partition-table-esp32.bin \
-  && curl -s -L "https://github.com/espressif/esp-nuttx-bootloader/releases/download/latest/partition-table-esp32c3.bin" -o partition-table-esp32c3.bin
-
-###############################################################################
-# Build image for tool required by Renesas builds
-###############################################################################
-FROM nuttx-toolchain-base AS nuttx-toolchain-renesas
-# Build Renesas RX GCC toolchain
-RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
-  flex \
-  bison \
-  texinfo \
-  libncurses5-dev \
-  m4 \
-  make \
-  gcc \
-  g++ \
-  wget
-
-# Download toolchain source code
-RUN mkdir -p /tools/renesas-tools/source/binutils && \
-  curl -s -L "https://gcc-renesas.com/downloads/d.php?f=rx/binutils/4.8.4.201803-gnurx/rx_binutils2.24_2018Q3.tar.gz" \
-  | tar -C renesas-tools/source/binutils --strip-components=1 -xz
-RUN mkdir -p /tools/renesas-tools/source/gcc && \
-  curl -s -L "https://gcc-renesas.com/downloads/d.php?f=rx/gcc/4.8.4.201803-gnurx/rx_gcc_4.8.4_2018Q3.tar.gz" \
-  | tar -C renesas-tools/source/gcc --strip-components=1 -xz
-RUN mkdir -p /tools/renesas-tools/source/newlib && \
-  curl -s -L "https://gcc-renesas.com/downloads/d.php?f=rx/newlib/4.8.4.201803-gnurx/rx_newlib2.2.0_2018Q3.tar.gz" \
-  | tar -C renesas-tools/source/newlib --strip-components=1 -xz
-
-# Install binutils
-RUN cd renesas-tools/source/binutils && \
-  chmod +x ./configure ./mkinstalldirs && \
-  mkdir -p /tools/renesas-tools/build/binutils && cd /tools/renesas-tools/build/binutils && \
-  /tools/renesas-tools/source/binutils/configure --target=rx-elf --prefix=/tools/renesas-toolchain/rx-elf-gcc --disable-werror &&\
-  make && make install 
-ENV PATH="/tools/renesas-toolchain/rx-elf-gcc/bin:$PATH"
-
-# Install gcc
-RUN cd renesas-tools/source/gcc && \
-  chmod +x ./contrib/download_prerequisites ./configure ./move-if-change ./libgcc/mkheader.sh && \
-  ./contrib/download_prerequisites && \
-  sed -i '1s/^/@documentencoding ISO-8859-1\n/' ./gcc/doc/gcc.texi && \
-  sed -i 's/@tex/\n&/g' ./gcc/doc/gcc.texi && sed -i 's/@end tex/\n&/g' ./gcc/doc/gcc.texi && \
-  mkdir -p /tools/renesas-tools/build/gcc && cd /tools/renesas-tools/build/gcc && \
-  /tools/renesas-tools/source/gcc/configure --target=rx-elf --prefix=/tools/renesas-toolchain/rx-elf-gcc \
-  --disable-shared --disable-multilib --disable-libssp --disable-libstdcxx-pch --disable-werror --enable-lto \
-  --enable-gold --with-pkgversion=GCC_Build_1.02 --with-newlib --enable-languages=c && \
-  make && make install 
-ENV PATH="/tools/renesas-toolchain/rx-elf-gcc/bin:$PATH"
-
-# Install newlib
-RUN cd renesas-tools/source/newlib && \
-  chmod +x ./configure && \
-  mkdir -p /tools/renesas-tools/build/newlib && cd /tools/renesas-tools/build/newlib && \
-  /tools/renesas-tools/source/newlib/configure --target=rx-elf --prefix=/tools/renesas-toolchain/rx-elf-gcc && \  
-  make && make install
-RUN cd /tools/renesas-tools/build/gcc && \
-  make && make install
-
-
-###############################################################################
-# Final Docker image used for running CI system.  This includes all toolchains
-# supported by the CI system.
-###############################################################################
-FROM ubuntu:20.04
-LABEL maintainer="dev@nuttx.apache.org"
-
-RUN dpkg --add-architecture i386
-# This is used for the final images so make sure to not store apt cache
-# Note: xtensa-esp32-elf-gdb is linked to libpython2.7
-RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq --no-install-recommends \
-  -o APT::Immediate-Configure=0 \
-  avr-libc \
-  build-essential \
-  ccache \
-  curl \
-  gcc \
-  gcc-avr \
-  gcc-multilib \
-  gettext \
-  git \
-  lib32z1-dev \
-  libc6-dev-i386 \
-  libasound2-dev libasound2-dev:i386 \
-  libcurl4-openssl-dev \
-  libpulse-dev libpulse-dev:i386 \
-  libpython2.7 \
-  libx11-dev libx11-dev:i386 \
-  libxext-dev libxext-dev:i386 \
-  linux-libc-dev:i386 \
-  linux-headers-generic \
-  python3 \
-  python3-pip \
-  python-is-python3 \
-  u-boot-tools \
-  unzip \
-  wget \
-  xxd \
-  && rm -rf /var/lib/apt/lists/*
-
-
-# Configure out base setup for adding python packages
-ENV PIP_DISABLE_PIP_VERSION_CHECK=true
-# This disables the cache with value 0. We do not want caching as it
-# increases the images size.
-ENV PIP_NO_CACHE_DIR=0
-# We are using the minimal python installation from the system so include
-# setuptools and also wheel so we can use the binary releases of packages
-# instead of requiring them to be compiled.
-RUN pip3 install setuptools wheel
-
-RUN mkdir /tools
-WORKDIR /tools
-
-# Pull in the tools we just built for nuttx
-COPY --from=nuttx-tools /tools/genromfs/ /tools/genromfs/
-ENV PATH="/tools/genromfs/usr/bin:$PATH"
-COPY --from=nuttx-tools /tools/kconfig-frontends/ kconfig-frontends/
-ENV PATH="/tools/kconfig-frontends/bin:$PATH"
-COPY --from=nuttx-tools /tools/bloaty/ bloaty/
-ENV PATH="/tools/bloaty/bin:$PATH"
-
-# ARM toolchain
-COPY --from=nuttx-toolchain-arm /tools/gcc-arm-none-eabi/ gcc-arm-none-eabi/
-ENV PATH="/tools/gcc-arm-none-eabi/bin:$PATH"
-
-# MIPS toolchain
-COPY --from=nuttx-toolchain-pinguino /tools/pinguino-compilers/p32/ pinguino-compilers/p32/
-ENV PATH="/tools/pinguino-compilers/p32/bin:$PATH"
-
-# RISCV toolchain
-COPY --from=nuttx-toolchain-riscv /tools/riscv64-unknown-elf-gcc/ riscv64-unknown-elf-gcc/
-ENV PATH="/tools/riscv64-unknown-elf-gcc/bin:$PATH"
-
-# ESP32 toolchain
-COPY --from=nuttx-toolchain-esp32 /tools/xtensa-esp32-elf-gcc/ xtensa-esp32-elf-gcc/
-ENV PATH="/tools/xtensa-esp32-elf-gcc/bin:$PATH"
-RUN mkdir -p /tools/blobs/esp-bins
-COPY --from=nuttx-toolchain-esp32 /tools/blobs/* /tools/blobs/esp-bins/
-RUN pip3 install esptool
-
-# Renesas toolchain
-COPY --from=nuttx-toolchain-renesas /tools/renesas-toolchain/rx-elf-gcc/ renesas-toolchain/rx-elf-gcc/
-ENV PATH="/tools/renesas-toolchain/rx-elf-gcc/bin:$PATH"
-
-# Configure ccache
-RUN mkdir -p /tools/ccache/bin && \
-  ln -sf `which ccache` /tools/ccache/bin/cc && \
-  ln -sf `which ccache` /tools/ccache/bin/c++ && \
-  ln -sf `which ccache` /tools/ccache/bin/clang && \
-  ln -sf `which ccache` /tools/ccache/bin/clang++ && \
-  ln -sf `which ccache` /tools/ccache/bin/gcc && \
-  ln -sf `which ccache` /tools/ccache/bin/g++ && \
-  ln -sf `which ccache` /tools/ccache/bin/arm-none-eabi-gcc && \
-  ln -sf `which ccache` /tools/ccache/bin/arm-none-eabi-g++ && \
-  ln -sf `which ccache` /tools/ccache/bin/p32-gcc && \
-  ln -sf `which ccache` /tools/ccache/bin/riscv64-unknown-elf-gcc && \
-  ln -sf `which ccache` /tools/ccache/bin/riscv64-unknown-elf-g++ && \
-  ln -sf `which ccache` /tools/ccache/bin/xtensa-esp32-elf-gcc && \
-  ln -sf `which ccache` /tools/ccache/bin/xtensa-esp32-elf-g++ && \
-  ln -sf `which ccache` /tools/ccache/bin/avr-gcc && \
-  ln -sf `which ccache` /tools/ccache/bin/avr-g++ && \
-  ln -sf `which ccache` /tools/ccache/bin/rx-elf-gcc
-ENV PATH="/tools/ccache/bin:$PATH"
-
-CMD [ "/bin/bash" ]
diff --git a/testlist/all.dat b/testlist/all.dat
deleted file mode 100644
index b630b10..0000000
--- a/testlist/all.dat
+++ /dev/null
@@ -1,35 +0,0 @@
-/arm,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
--eagle100:nxflat
--eagle100:thttpd
--imxrt1050-evk:libcxxtest
--imxrt1060-evk:libcxxtest
--launchxl-cc1310:nsh
--launchxl-tms57004:nsh
--lpcxpresso-lpc1768:thttpd
--moxa:nsh
--olimex-lpc1766stk:slip-httpd
--olimex-lpc1766stk:thttpd-nxflat
--shenzhou:thttpd
--stm32f4discovery:cxxtest
--stm32f4discovery:testlibcxx
--stm32f4discovery:winbuild
--tms570ls31x-usb-kit:nsh
--zkit-arm-1769:thttpd
-
-/mips,CONFIG_MIPS32_TOOLCHAIN_PINGUINOL
-
-/risc-v,CONFIG_RV32IM_TOOLCHAIN_GNU_RVGL
-
-/sim
-
-/x86
-
-/x86_64
-
-/xtensa
-
-/renesas/rx65n/rx65n-grrose
--rx65n-grrose:ipv6
-
-/renesas/rx65n/rx65n-rsk2mb
--rx65n-rsk2mb:ipv6
diff --git a/testlist/arm-01.dat b/testlist/arm-01.dat
deleted file mode 100644
index b22a084..0000000
--- a/testlist/arm-01.dat
+++ /dev/null
@@ -1 +0,0 @@
-/arm/[a-h]*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
diff --git a/testlist/arm-02.dat b/testlist/arm-02.dat
deleted file mode 100644
index 1562c2d..0000000
--- a/testlist/arm-02.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-/arm/[i-k]*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
--imxrt1050-evk:libcxxtest
--imxrt1060-evk:libcxxtest
diff --git a/testlist/arm-03.dat b/testlist/arm-03.dat
deleted file mode 100644
index 8e92ab6..0000000
--- a/testlist/arm-03.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-/arm/lpc17xx_40xx,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
--lpcxpresso-lpc1768:thttpd
--olimex-lpc1766stk:slip-httpd
--olimex-lpc1766stk:thttpd-nxflat
--zkit-arm-1769:thttpd
diff --git a/testlist/arm-04.dat b/testlist/arm-04.dat
deleted file mode 100644
index de8f686..0000000
--- a/testlist/arm-04.dat
+++ /dev/null
@@ -1,11 +0,0 @@
-/arm/lc823450,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/lpc214x,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/lpc2378,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/lpc31xx,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/lpc43xx,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/lpc54xx,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
diff --git a/testlist/arm-05.dat b/testlist/arm-05.dat
deleted file mode 100644
index e79de83..0000000
--- a/testlist/arm-05.dat
+++ /dev/null
@@ -1,6 +0,0 @@
-/arm/[m-r]*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
--moxa:nsh
-
-/arm/s32k1xx,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/sam34,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
diff --git a/testlist/arm-06.dat b/testlist/arm-06.dat
deleted file mode 100644
index c733d4c..0000000
--- a/testlist/arm-06.dat
+++ /dev/null
@@ -1,7 +0,0 @@
-/arm/sama5,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/samd2l2,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/samd5e5,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/samv7,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
diff --git a/testlist/arm-07.dat b/testlist/arm-07.dat
deleted file mode 100644
index c531b45..0000000
--- a/testlist/arm-07.dat
+++ /dev/null
@@ -1,7 +0,0 @@
-/arm/stm32/[a-m]*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/nucleo-f1*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/nucleo-f2*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/nucleo-f30*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
diff --git a/testlist/arm-08.dat b/testlist/arm-08.dat
deleted file mode 100644
index ac945ac..0000000
--- a/testlist/arm-08.dat
+++ /dev/null
@@ -1,9 +0,0 @@
-/arm/stm32/nucleo-f33*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/nucleo-f4*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/nucleo-g*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/nucleo-l*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/olimex-*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
diff --git a/testlist/arm-09.dat b/testlist/arm-09.dat
deleted file mode 100644
index 2771070..0000000
--- a/testlist/arm-09.dat
+++ /dev/null
@@ -1,14 +0,0 @@
-/arm/stm32/olimexino-stm32,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/omnibusf4,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/photon,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/shenzhou,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
--shenzhou:thttpd
-
-/arm/stm32/stm3210e-eval,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/stm3220g-eval,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/stm3240g-eval,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
diff --git a/testlist/arm-10.dat b/testlist/arm-10.dat
deleted file mode 100644
index c30d5ba..0000000
--- a/testlist/arm-10.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-/arm/stm32/stm32_tiny,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/stm32butterfly2,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/stm32f103-minimum,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/stm32f334-disco,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/stm32f3discovery,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/stm32f411-minimum,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/stm32f411e-disco,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/stm32f429i-disco,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
diff --git a/testlist/arm-11.dat b/testlist/arm-11.dat
deleted file mode 100644
index 2d8f223..0000000
--- a/testlist/arm-11.dat
+++ /dev/null
@@ -1,10 +0,0 @@
-/arm/stm32/stm32f4discovery,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
--stm32f4discovery:cxxtest
--stm32f4discovery:testlibcxx
--stm32f4discovery:winbuild
-
-/arm/stm32/stm32ldiscovery,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/stm32vldiscovery,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32/viewtool-stm32f107,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
diff --git a/testlist/arm-12.dat b/testlist/arm-12.dat
deleted file mode 100644
index 5fcca30..0000000
--- a/testlist/arm-12.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-/arm/stm32f*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/stm32h*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
diff --git a/testlist/arm-13.dat b/testlist/arm-13.dat
deleted file mode 100644
index 3d48e0a..0000000
--- a/testlist/arm-13.dat
+++ /dev/null
@@ -1,10 +0,0 @@
-/arm/stm32l*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/str71x,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-/arm/[t-z]*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
--eagle100:nxflat
--eagle100:thttpd
--launchxl-cc1310:nsh
--launchxl-tms57004:nsh
--tms570ls31x-usb-kit:nsh
diff --git a/testlist/macos.dat b/testlist/macos.dat
deleted file mode 100644
index 4b5f6e6..0000000
--- a/testlist/macos.dat
+++ /dev/null
@@ -1,38 +0,0 @@
-# Chose a minimalistic subset of board/configs due to macOS builds
-# being extremely slow on GitHub
-
-# AVR
-#
-# We do not have a toolchain for avr32 outside of Microchip login wall.
-# The work was never upstreamed to GCC.
-
-/avr/atmega/arduino-mega2560/configs/nsh
-
-# MIPS
-#
-# PINGUINOL toolchain doesn't provide macOS binaries
-# with the same name
-
-#/mips/pic32mx/pic32mx-starterkit/configs/nsh,CONFIG_MIPS32_TOOLCHAIN_PINGUINOL
-
-# RISC-V
-
-/risc-v/bl602/bl602evb/configs/wifi,CONFIG_RV32IM_TOOLCHAIN_GNU_RVGL
-
-/risc-v/esp32c3/esp32c3-devkit/configs/wapi,CONFIG_RV32IM_TOOLCHAIN_GNU_RVGL
-
-# ARM
-
-/arm/stm32/stm32f4discovery/configs/nsh,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL
-
-# XTENSA
-
-/xtensa/esp32/esp32-devkitc/configs/wapi
-
-# x86_64-elf-gcc from homebrew doesn't seem to
-# provide __udivdi3 etc for -m32, so we do not build
-# x86
-
-# x86_64
-
-/x86_64/intel64/qemu-intel64/configs/nsh
diff --git a/testlist/other.dat b/testlist/other.dat
deleted file mode 100644
index fea100e..0000000
--- a/testlist/other.dat
+++ /dev/null
@@ -1,18 +0,0 @@
-# We do not have a toolchain for avr32 outside of Microchip login wall.
-# The work was never upstreamed to GCC.
-/avr
--avr32dev1:nsh
--avr32dev1:ostest
-
-# PINGUINOL toolchain doesn't provide macOS binaries
-# with the same name
-/mips,CONFIG_MIPS32_TOOLCHAIN_PINGUINOL
-
-/renesas/rx65n/rx65n-grrose
-/renesas/rx65n/rx65n-rsk2mb
-
-/x86
-
-# x86_64-elf-gcc from homebrew doesn't seem to
-# provide __udivdi3 etc for -m32
-/x86_64
diff --git a/testlist/risc-v.dat b/testlist/risc-v.dat
deleted file mode 100644
index 10556d7..0000000
--- a/testlist/risc-v.dat
+++ /dev/null
@@ -1 +0,0 @@
-/risc-v,CONFIG_RV32IM_TOOLCHAIN_GNU_RVGL
diff --git a/testlist/sim01.dat b/testlist/sim01.dat
deleted file mode 100644
index 5c6588d..0000000
--- a/testlist/sim01.dat
+++ /dev/null
@@ -1,21 +0,0 @@
-/sim/*/*/*/[a-n]*
-
-# macOS doesn't have ALSA
--Darwin,sim:alsa
-
--Darwin,sim:cxxtest
--Darwin,sim:libcxxtest
-
-# Do not build Linux configs
--Darwin,sim:linuxi2c
-
-# macOS doesn't support 32bit(CONFIG_SIM_M32=y) anymore
--Darwin,sim:loadable
--Darwin,sim:module32
-
-# macOS doesn't have X11
--Darwin,sim:lvgl
--Darwin,sim:nsh2
--Darwin,sim:nx11
--Darwin,sim:nxlines
--Darwin,sim:nxwm
diff --git a/testlist/sim02.dat b/testlist/sim02.dat
deleted file mode 100644
index 677370d..0000000
--- a/testlist/sim02.dat
+++ /dev/null
@@ -1,9 +0,0 @@
-/sim/*/*/*/[o-z]*
-
-# macOS doesn't support 32bit anymore(CONFIG_SIM_M32=y)
--Darwin,sim:rpproxy
--Darwin,sim:rpserver
--Darwin,sim:sotest32
-
-# macOS doesn't have X11
--Darwin,sim:touchscreen
diff --git a/testlist/xtensa.dat b/testlist/xtensa.dat
deleted file mode 100644
index 0fec540..0000000
--- a/testlist/xtensa.dat
+++ /dev/null
@@ -1 +0,0 @@
-/xtensa
