summaryrefslogtreecommitdiff
path: root/bsp
diff options
context:
space:
mode:
authorBunnaroath Sou <bsou@sifive.com>2019-01-30 14:42:47 -0800
committerBunnaroath Sou <bsou@sifive.com>2019-01-30 14:42:47 -0800
commit992f67709cdaba787d57530c613eb41d5bfe219a (patch)
tree5511806039b32df7195f11f7f06b6368c1f771f6 /bsp
parentb629a19514606cb5dd19e0cd433b60922343f6a8 (diff)
Update to generate bsp at a custom location
Diffstat (limited to 'bsp')
-rwxr-xr-xbsp/update-targets.sh59
1 files changed, 56 insertions, 3 deletions
diff --git a/bsp/update-targets.sh b/bsp/update-targets.sh
index 780d662..fc1b76c 100755
--- a/bsp/update-targets.sh
+++ b/bsp/update-targets.sh
@@ -1,5 +1,60 @@
#!/usr/bin/env sh
+help() {
+ cat >&2 <<EOF
+$0: BSP Generator for the SiFive Freedom E SDK
+ --help Prints this help text.
+ --target-name Specify bsp target name.
+ --sdk-path=* The path to the freedom-e-sdk clone directory, public or private.
+ --target-dts=*.dts The path to the target device tree that will be used.
+ --ipdelivery-tgz=*.tar.gz The path to the ipdelivery that will be used.
+EOF
+}
+
+unset DTSFILE
+unset CUSTOM_PATH
+unset CUSTOM_NAME
+while [[ "$1" != "" ]]
+do
+ case "$1" in
+ --help) help "$0"; exit 0;;
+ --target-name) CUSTOM_NAME="$2"; shift 2;;
+ --sdk-path=*) CUSTOM_PATH="$(echo "$1" | cut -d= -f2-)"; shift 1;;
+ --sdk-path) CUSTOM_PATH="$2"; shift 2;;
+ --target-dts=*) DTSFILE="$(echo "$1" | cut -d= -f2-)"; shift 1;;
+ --target-dts) DTSFILE="$2"; shift 2;;
+ *) echo "$0: Unknown argument $1" >&2; exit 1;;
+ esac
+done
+
+if [[ "$CUSTOM_PATH" == "" && "$CUSTOM_NAME" == "" && "$DTSFILE" == "" ]]
+then
+ TARGET_LIST="$(ls -d coreip*) "
+ TARGET_LIST+="sifive-hifive1 freedom-e310-arty "
+else
+ if [[ ! -f "$DTSFILE" && "$DTSFILE" != "*.dts" ]]
+ then
+ echo "[ERROR] $0: $DTSFILE must be a dts file" >&2
+ help "$0"
+ exit 1
+ fi
+ if [[ "$CUSTOM_NAME" == "" ]]
+ then
+ echo "[ERROR] $0: --target-name is mandatory" >&2
+ help "$0"
+ exit 1
+ fi
+ CUSTOM_TARGET="$CUSTOM_PATH/bsp/$CUSTOM_NAME"
+ if [[ ! -d "$CUSTOM_TARGET" ]]
+ then
+ echo "[ERROR] $0: "$CUSTOM_TARGET" not found!" >&2
+ help "$0"
+ exit 1
+ fi
+ cp $DTSFILE $CUSTOM_TARGET
+ TARGET_LIST="$CUSTOM_TARGET "
+fi
+
DTC=dtc
MEE_HEADER_GENERATOR=freedom-mee_header-generator
LDSCRIPT_GENERATOR=freedom-ldscript-generator
@@ -9,9 +64,6 @@ DTB_FILENAME=temp.dtb
HEADER_FILENAME=mee.h
LDSCRIPT_FILENAME=mee.lds
-TARGET_LIST="$(ls -d coreip*) "
-TARGET_LIST+="sifive-hifive1 freedom-e310-arty "
-
update_target() {
TARGET=$1
@@ -30,6 +82,7 @@ update_target() {
echo ""
}
+echo $PWD
for TARGET in $TARGET_LIST
do
update_target $TARGET