diff --git a/prepare_bundle_image.sh b/prepare_bundle_image.sh
deleted file mode 100755
index 2cbd4ac..0000000
--- a/prepare_bundle_image.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-#! /bin/bash
-
-# Script for preparing a cpio archive of builtin applications and/or models.
-# Usage: prepare_bundle_image [-n] -o target.cpio
-#                   [-m input_model...] [-a input_app...]
-# where
-#   -o target cpio archive filena,me
-#   -m identifies subsequent arguments as models
-#   -a identifies subsequent arguments as applications
-# also
-#   -n do a dry-run where commands are just echo'd to the terminal
-
-# TODO(sleffler): redo with getopt
-
-if [[ -z "${ROOTDIR}" ]]; then
-    echo "No ROOTDIR, source build/setup.sh first"
-    exit 1
-fi
-if [[ -z "${KATA_RUST_VERSION}" ]]; then
-    echo "No KATA_RUST_VERSION, source build/setup.sh first"
-    exit 1
-fi
-if [[ -z "${CARGO_HOME}" ]]; then
-    echo "No CARGO_HOME, source build/setup.sh first"
-    exit 1
-fi
-
-TMP_DIR="${OUT}/tmp"
-if [[ ! -d "${TMP_DIR}" ]]; then
-    echo "No tmp directory found at ${TMP_DIR}"
-    exit 2
-fi
-
-CARGO="${CARGO_HOME}/bin/cargo +${KATA_RUST_VERSION}"
-CPIO_OPTS='-H newc -L --no-absolute-filenames --reproducible --owner=root:root'
-
-function prepare_bundle_image {
-    cd "${ROOTDIR}/kata/tools/seL4/misc/prepare_bundle_image" && \
-        ${CARGO} run -q  --target-dir "${OUT}/host/prepare_bundle_image" -- "$@"
-}
-
-dry_run='false'
-if [[ "$1" == '-n' ]]; then
-    dry_run='true'
-    shift
-fi
-if [[ "$1" != '-o' ]]; then
-    echo "Missing -o option to specify output cpio archive"
-    exit 3
-fi
-OUTPUT_CPIO="$2"
-shift 2
-
-APPS='-a'
-MODELS='-m'
-file_type=
-for arg; do
-    case "${arg}" in
-    -a) file_type='app';;
-    -m) file_type='model';;
-     *) case "${file_type}" in
-        app)
-            ln -sf "${arg}" "${TMP_DIR}" && \
-                APPS="${APPS} ${TMP_DIR}/$(basename ${arg})"
-            ;;
-        model)
-            ln -sf "${arg}" "${TMP_DIR}" && \
-                MODELS="${MODELS} ${TMP_DIR}/$(basename ${arg})"
-            ;;
-        *) echo 'Missing -m or -a option to identify file type'; exit -1;;
-        esac
-    esac
-done
-
-if [[ "${dry_run}" == 'true' ]]; then
-    # TODO(sleffler): would be nice to print what prepare_bundle_image would do
-    echo "prepare_bundle_image ${MODELS} ${APPS} | cpio -o -D ${TMP_DIR} ${CPIO_OPTS} -O ${OUTPUT_CPIO}"
-else
-    prepare_bundle_image ${MODELS} ${APPS} | cpio -o -D ${TMP_DIR} ${CPIO_OPTS} -O "${OUTPUT_CPIO}"
-fi
