#!/usr/bin/env sh help() { cat >&2 <&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 DTS_FILENAME=design.dts DTB_FILENAME=temp.dtb HEADER_FILENAME=mee.h LDSCRIPT_FILENAME=mee.lds update_target() { TARGET=$1 echo "Updating target $TARGET" # Compile temporary .dtb $DTC -I dts -O dtb -o $TARGET/$DTB_FILENAME $TARGET/$DTS_FILENAME || die "Failed to compile $TARGET/$DTS_FILENAME to dtb" # Produce parameterized files $MEE_HEADER_GENERATOR -d $TARGET/$DTB_FILENAME -o $TARGET/$HEADER_FILENAME || die "Failed to produce $TARGET/$HEADER_FILENAME" $LDSCRIPT_GENERATOR -d $TARGET/$DTB_FILENAME -l $TARGET/$LDSCRIPT_FILENAME || die "Failed to produce $TARGET/$LDSCRIPT_FILENAME" # Remove temporary .dtb rm $TARGET/$DTB_FILENAME echo "" } echo $PWD for TARGET in $TARGET_LIST do update_target $TARGET done