blob: 8b5a59e094dd8f88cef8e8dd5740f7c9d80e37c2 [file] [log] [blame]
Fathi Boudra422bf772019-12-02 11:10:16 +02001#!/bin/bash
2#
3# Copyright (c) 2019, Arm Limited. All rights reserved.
4#
5# SPDX-License-Identifier: BSD-3-Clause
6#
7
8reset_var cluster_0_has_el2
9reset_var cluster_1_has_el2
10
11reset_var cluster_0_reg_reset
12reset_var cluster_1_reg_reset
13
14reset_var cluster_0_num_cores
15reset_var cluster_1_num_cores
16
17reset_var aarch64_only
18reset_var aarch32
19
20reset_var gicv3_gicv2_only
21
22reset_var sve_plugin
23
24source "$ci_root/model/fvp_common.sh"
25
26cat <<EOF >>"$model_param_file"
27
28${cluster_0_reg_reset+-C cluster0.register_reset_data=$cluster_0_reg_reset}
29${cluster_1_reg_reset+-C cluster1.register_reset_data=$cluster_1_reg_reset}
30
31${cluster_0_has_el2+-C cluster0.has_el2=$cluster_0_has_el2}
32${cluster_1_has_el2+-C cluster1.has_el2=$cluster_1_has_el2}
33
34${reset_to_bl31+-C cluster0.cpu0.RVBAR=${bl31_addr:?}}
35${reset_to_bl31+-C cluster0.cpu1.RVBAR=${bl31_addr:?}}
36${reset_to_bl31+-C cluster0.cpu2.RVBAR=${bl31_addr:?}}
37${reset_to_bl31+-C cluster0.cpu3.RVBAR=${bl31_addr:?}}
38${reset_to_bl31+-C cluster1.cpu0.RVBAR=${bl31_addr:?}}
39${reset_to_bl31+-C cluster1.cpu1.RVBAR=${bl31_addr:?}}
40${reset_to_bl31+-C cluster1.cpu2.RVBAR=${bl31_addr:?}}
41${reset_to_bl31+-C cluster1.cpu3.RVBAR=${bl31_addr:?}}
42
43${reset_to_spmin+-C cluster0.cpu0.RVBAR=${bl32_addr:?}}
44${reset_to_spmin+-C cluster0.cpu1.RVBAR=${bl32_addr:?}}
45${reset_to_spmin+-C cluster0.cpu2.RVBAR=${bl32_addr:?}}
46${reset_to_spmin+-C cluster0.cpu3.RVBAR=${bl32_addr:?}}
47${reset_to_spmin+-C cluster1.cpu0.RVBAR=${bl32_addr:?}}
48${reset_to_spmin+-C cluster1.cpu1.RVBAR=${bl32_addr:?}}
49${reset_to_spmin+-C cluster1.cpu2.RVBAR=${bl32_addr:?}}
50${reset_to_spmin+-C cluster1.cpu3.RVBAR=${bl32_addr:?}}
51
52${cluster_0_num_cores+-C cluster0.NUM_CORES=$cluster_0_num_cores}
53${cluster_1_num_cores+-C cluster1.NUM_CORES=$cluster_1_num_cores}
54
55${el3_payload_bin+--data cluster0.cpu0=$el3_payload_bin@${el3_payload_addr:?}}
56
57${aarch64_only+-C cluster0.max_32bit_el=-1}
58${aarch64_only+-C cluster1.max_32bit_el=-1}
59
60${aarch32+-C cluster0.cpu0.CONFIG64=0}
61${aarch32+-C cluster0.cpu1.CONFIG64=0}
62${aarch32+-C cluster0.cpu2.CONFIG64=0}
63${aarch32+-C cluster0.cpu3.CONFIG64=0}
64${aarch32+-C cluster1.cpu0.CONFIG64=0}
65${aarch32+-C cluster1.cpu1.CONFIG64=0}
66${aarch32+-C cluster1.cpu2.CONFIG64=0}
67${aarch32+-C cluster1.cpu3.CONFIG64=0}
68
69${gicv3_gicv2_only+-C gicv3.gicv2-only=$gicv3_gicv2_only}
70
71${sve_plugin+--plugin=$sve_plugin_path}
72${sve_plugin+-C SVE.ScalableVectorExtension.enable_at_reset=0}
73${sve_plugin+-C SVE.ScalableVectorExtension.veclen=$((128 / 8))}
74
75${bl2_at_el3+-C cluster0.cpu0.RVBAR=${bl2_addr:?}}
76${bl2_at_el3+-C cluster0.cpu1.RVBAR=${bl2_addr:?}}
77${bl2_at_el3+-C cluster0.cpu2.RVBAR=${bl2_addr:?}}
78${bl2_at_el3+-C cluster0.cpu3.RVBAR=${bl2_addr:?}}
79${bl2_at_el3+-C cluster1.cpu0.RVBAR=${bl2_addr:?}}
80${bl2_at_el3+-C cluster1.cpu1.RVBAR=${bl2_addr:?}}
81${bl2_at_el3+-C cluster1.cpu2.RVBAR=${bl2_addr:?}}
82${bl2_at_el3+-C cluster1.cpu3.RVBAR=${bl2_addr:?}}
83EOF
84
85# Parameters to select architecture version
86if [ "$arch_version" = "8.3" ]; then
87 cat <<EOF >>"$model_param_file"
88-C cluster0.has_arm_v8-3=1
89-C cluster1.has_arm_v8-3=1
90EOF
91fi
92
93if [ "$arch_version" = "8.4" ]; then
94 cat <<EOF >>"$model_param_file"
95-C cluster0.has_arm_v8-4=1
96-C cluster1.has_arm_v8-4=1
97EOF
98fi
99
100# Parameters for fault injection
101if [ "$fault_inject" = "1" ]; then
102 cat <<EOF >>"$model_param_file"
103-C cluster0.number_of_error_records=2
104-C cluster1.number_of_error_records=2
105-C cluster0.has_ras=2
106-C cluster1.has_ras=2
107
108-C cluster0.error_record_feature_register='{"INJ":0x1,"ED":0x1,"UI":0x0,"FI":0x0,"UE":0x1,"CFI":0x0,"CEC":0x0,"RP":0x0,"DUI":0x0,"CEO":0x0}'
109-C cluster1.error_record_feature_register='{"INJ":0x1,"ED":0x1,"UI":0x0,"FI":0x0,"UE":0x1,"CFI":0x0,"CEC":0x0,"RP":0x0,"DUI":0x0,"CEO":0x0}'
110-C cluster0.pseudo_fault_generation_feature_register='{"UC":true,"UEU":true,"UER":false,"UEO":false,"DE":false,"CE":false,"R":false}'
111-C cluster1.pseudo_fault_generation_feature_register='{"UC":true,"UEU":true,"UER":false,"UEO":false,"DE":false,"CE":false,"R":false}'
112EOF
113fi