summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNariman Poushin <nariman.poushin@linaro.org>2018-03-05 18:48:42 +0000
committerNariman Poushin <nariman.poushin@linaro.org>2018-04-10 15:17:18 +0100
commit209f9c9a851b0c79581287eda17ce2cafb6af18b (patch)
tree5242da665776b363887717358827348ab2959891
parente5866120d8e132bae727f45cc4d2034427a376d5 (diff)
model-scripts: fvp: Add --arm-v8.0 by default to FVP invocation
This is to account for the issue of the model defaulting to the highest architecture spec available, which causes an assert in arm-tf. As per: https://github.com/ARM-software/tf-issues/issues/552 Signed-off-by: Nariman Poushin <nariman.poushin@linaro.org>
-rwxr-xr-xfvp/run_model.sh4
-rwxr-xr-xrun_model.sh320
2 files changed, 3 insertions, 321 deletions
diff --git a/fvp/run_model.sh b/fvp/run_model.sh
index d9bde43..28d85e7 100755
--- a/fvp/run_model.sh
+++ b/fvp/run_model.sh
@@ -242,6 +242,7 @@ if [ "$model_type" == "foundation" ]; then
$initrd_param \
$disk_param \
$net \
+ --arm-v8.0
"
else
CACHE_STATE_MODELLED=${CACHE_STATE_MODELLED:=0}
@@ -310,7 +311,8 @@ else
$disk_param \
$VARS \
$net \
- $arch_params
+ $arch_params \
+ --arm-v8.0
"
fi
diff --git a/run_model.sh b/run_model.sh
deleted file mode 100755
index d9bde43..0000000
--- a/run_model.sh
+++ /dev/null
@@ -1,320 +0,0 @@
-#!/bin/bash
-
-# Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# Redistributions of source code must retain the above copyright notice, this
-# list of conditions and the following disclaimer.
-#
-# Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# Neither the name of ARM nor the names of its contributors may be used
-# to endorse or promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-err=0
-
-function usage
-{
- echo "usage: $0 [--aarch32] [rundir]"
- echo "Options:"
- echo " --aarch32 run the model in Aarch32 mode, if available"
- echo " [rundir] the script will run from a directory specified on the commandline"
- echo " otherwise it will run from the current working directory"
- echo " use this to tell the model where to find the binaries you want"
- echo " to load if they aren't in the current directory."
- exit
-}
-
-while [ "$1" != "" ]; do
- case $1 in
- "-h" | "-?" | "-help" | "--help" | "--h" | "help" )
- usage
- exit
- ;;
- "--aarch32" | "--Aarch32" | "--AARCH32" )
- model_arch=aarch32
- ;;
- "--aarch64" | "--Aarch64" | "--AARCH64" )
- model_arch=aarch64
- ;;
- *)
- if [ "$rundir" == "" ]
- then
- rundir=$1
- fi
- ;;
- esac
- shift
-done
-
-model_arch=${model_arch:-aarch64}
-rundir=${rundir:-.}
-
-if [ -e $rundir ]; then
- cd $rundir
-else
- echo "ERROR: the run directory to $rundir, however that path does not exist"
- exit 1
-fi
-
-CLUSTER0_NUM_CORES=${CLUSTER0_NUM_CORES:-1}
-CLUSTER1_NUM_CORES=${CLUSTER1_NUM_CORES:-1}
-
-# Check for obvious errors and set err=1 if we encounter one
-if [ ! -e "$MODEL" ]; then
- echo "ERROR: you should set variable MODEL to point to a valid FVP model binary, currently it is set to \"$MODEL\""
- err=1
-else
- # Check if we are running the foundation model or the AEMv8 model
- version=$($MODEL --version)
- echo version: $version
-
- case $version in
- *Foundation* )
- model_type=foundation
- DTB=${DTB:-foundation-v8-gicv3.dtb}
- ;;
- *Cortex_A32* )
- model_type=cortex-a32
- DTB=${DTB:-fvp-base-aemv8a-aemv8a.dtb}
- ;;
- * )
- model_type=aemv8
- DTB=${DTB:-fvp-base-aemv8a-aemv8a.dtb}
- if [ "$model_arch" == "aarch32" ]; then
- arch_params=" -C cluster0.cpu0.CONFIG64=0 \
- -C cluster0.cpu1.CONFIG64=0 \
- -C cluster0.cpu2.CONFIG64=0 \
- -C cluster0.cpu3.CONFIG64=0 \
- -C cluster1.cpu0.CONFIG64=0 \
- -C cluster1.cpu1.CONFIG64=0 \
- -C cluster1.cpu2.CONFIG64=0 \
- -C cluster1.cpu3.CONFIG64=0 \
- "
- fi
- cores="-C cluster0.NUM_CORES=$CLUSTER0_NUM_CORES \
- -C cluster1.NUM_CORES=$CLUSTER1_NUM_CORES"
- ;;
- esac
-fi
-
-# Set some sane defaults before continuing to error check
-BL1=${BL1:-bl1.bin}
-FIP=${FIP:-fip.bin}
-IMAGE=${IMAGE:-Image}
-INITRD=${INITRD:-ramdisk.img}
-
-# Continue error checking...
-if [ ! -e "$BL1" ]; then
- echo "ERROR: you should set variable BL1 to point to a valid BL1 binary, currently it is set to \"$BL1\""
- err=1
-fi
-
-if [ ! -e "$FIP" ]; then
- echo "ERROR: you should set variable FIP to point to a valid FIP binary, currently it is set to \"$FIP\""
- err=1
-fi
-
-if [ ! -e "$IMAGE" ]; then
- echo "WARNING: you should set variable IMAGE to point to a valid kernel image, currently it is set to \"$IMAGE\""
- IMAGE=
- warn=1
-fi
-if [ ! -e "$INITRD" ]; then
- echo "WARNING: you should set variable INITRD to point to a valid initrd/ramdisk image, currently it is set to \"$INITRD\""
- INITRD=
- warn=1
-fi
-if [ ! -e "$DTB" ]; then
- echo "WARNING: you should set variable DTB to point to a valid device tree binary (.dtb), currently it is set to \"$DTB\""
- DTB=
- warn=1
-fi
-
-# Exit if any obvious errors happened
-if [ $err == 1 ]; then
- exit 1
-fi
-
-# check for warnings, like no disk specified.
-# note: busybox variants don't need a disk, so it may be OK for DISK to be empty/missing
-if [ ! -e "$DISK" ]; then
- echo "WARNING: you should set variable DISK to point to a valid disk image, currently it is set to \"$DISK\""
- warn=1
-fi
-
-# Optional VARS arg.
-# If a filename is given in the VARS variable, use it to set the contents of the
-# 2nd bank of NOR flash: where UEFI stores it's config
-if [ "$VARS" != "" ]; then
- # if the $VARS file doesn't exist, create it
- touch $VARS
- VARS="-C bp.flashloader1.fname=$VARS -C bp.flashloader1.fnameWrite=$VARS"
-else
- VARS=""
-fi
-
-SECURE_MEMORY=${SECURE_MEMORY:-0}
-
-echo "Running FVP Base Model with these parameters:"
-echo "MODEL=$MODEL"
-echo "model_arch=$model_arch"
-echo "rundir=$rundir"
-echo "BL1=$BL1"
-echo "FIP=$FIP"
-echo "IMAGE=$IMAGE"
-echo "INITRD=$INITRD"
-echo "DTB=$DTB"
-echo "VARS=$VARS"
-echo "DISK=$DISK"
-echo "CLUSTER0_NUM_CORES=$CLUSTER0_NUM_CORES"
-echo "CLUSTER1_NUM_CORES=$CLUSTER1_NUM_CORES"
-echo "SECURE_MEMORY=$SECURE_MEMORY"
-echo "NET=$NET"
-
-kern_addr=0x80080000
-dtb_addr=0x82000000
-initrd_addr=0x84000000
-
-if [ "$model_type" == "foundation" ]; then
- GICV3=${GICV3:-1}
- echo "GICV3=$GICV3"
-
- if [ "$NET" == "1" ]; then
- # The Foundation Model MAC address appears to be 00:02:F7:EF
- # followed by the last two bytes of the host's MAC address.
- net="--network bridged --network-bridge=ARM$USER"
- fi
-
- if [ "$DISK" != "" ]; then
- disk_param=" --block-device=$DISK "
- fi
-
- if [ "$SECURE_MEMORY" == "1" ]; then
- secure_memory_param=" --secure-memory"
- else
- secure_memory_param=" --no-secure-memory"
- fi
-
- if [ "$GICV3" == "1" ]; then
- gic_param=" --gicv3"
- else
- gic_param=" --no-gicv3"
- fi
-
- if [ "$IMAGE" != "" ]; then
- image_param="--data=${IMAGE}@${kern_addr}"
- fi
- if [ "$INITRD" != "" ]; then
- initrd_param="--data=${INITRD}@${initrd_addr}"
- fi
- if [ "$DTB" != "" ]; then
- dtb_param="--data=${DTB}@${dtb_addr}"
- fi
-
- cmd="$MODEL \
- --cores=$CLUSTER0_NUM_CORES \
- $secure_memory_param \
- --visualization \
- --use-real-time \
- $gic_param \
- --data=${BL1}@0x0 \
- --data=${FIP}@0x8000000 \
- $image_param \
- $dtb_param \
- $initrd_param \
- $disk_param \
- $net \
- "
-else
- CACHE_STATE_MODELLED=${CACHE_STATE_MODELLED:=0}
- echo "CACHE_STATE_MODELLED=$CACHE_STATE_MODELLED"
-
- if [ "$NET" == "1" ]; then
- if [ "$MACADDR" == "" ]; then
- # if the user didn't supply a MAC address, generate one
- MACADDR=`echo -n 00:02:F7; dd bs=1 count=3 if=/dev/random 2>/dev/null |hexdump -v -e '/1 ":%02X"'`
- echo MACADDR=$MACADDR
- fi
-
- net="-C bp.hostbridge.interfaceName=ARM$USER \
- -C bp.smsc_91c111.enabled=true \
- -C bp.smsc_91c111.mac_address=${MACADDR}"
- fi
-
- if [ "$DISK" != "" ]; then
- disk_param=" -C bp.virtioblockdevice.image_path=$DISK "
- fi
-
- if [ "$IMAGE" != "" ]; then
- image_param="--data cluster0.cpu0=${IMAGE}@${kern_addr}"
- fi
- if [ "$INITRD" != "" ]; then
- initrd_param="--data cluster0.cpu0=${INITRD}@${initrd_addr}"
- fi
- if [ "$DTB" != "" ]; then
- dtb_param="--data cluster0.cpu0=${DTB}@${dtb_addr}"
- fi
-
- # Create log files with date stamps in the filename
- # also create a softlink to these files with a static filename, eg, uart0.log
- datestamp=`date +%s%N`
-
- UART0_LOG=uart0-${datestamp}.log
- touch $UART0_LOG
- uart0log=uart0.log
- rm -f $uart0log
- ln -s $UART0_LOG $uart0log
-
- UART1_LOG=uart1-${datestamp}.log
- touch $UART1_LOG
- uart1log=uart1.log
- rm -f $uart1log
- ln -s $UART1_LOG $uart1log
-
- echo "UART0_LOG=$UART0_LOG"
- echo "UART1_LOG=$UART1_LOG"
-
- cmd="$MODEL \
- -C pctl.startup=0.0.0.0 \
- -C bp.secure_memory=$SECURE_MEMORY \
- $cores \
- -C cache_state_modelled=$CACHE_STATE_MODELLED \
- -C bp.pl011_uart0.untimed_fifos=1 \
- -C bp.pl011_uart0.out_file=$UART0_LOG \
- -C bp.pl011_uart1.out_file=$UART1_LOG \
- -C bp.secureflashloader.fname=$BL1 \
- -C bp.flashloader0.fname=$FIP \
- $image_param \
- $dtb_param \
- $initrd_param \
- -C bp.ve_sysregs.mmbSiteDefault=0 \
- -C bp.ve_sysregs.exit_on_shutdown=1 \
- $disk_param \
- $VARS \
- $net \
- $arch_params
- "
-fi
-
-echo "Executing Model Command:"
-echo " $cmd"
-
-$cmd