blob: 9afec2efd67f2ed335b9883dd0b06ea5837ff933 [file] [log] [blame]
Leonardo Sandoval9dfdd1b2020-08-06 17:08:11 -05001#!/usr/bin/env bash
Zelalemeb9c1bb2020-08-04 12:40:46 -05002#
Olivier Deprez498873e2022-03-09 17:46:36 +01003# Copyright (c) 2019-2022, Arm Limited. All rights reserved.
Zelalemeb9c1bb2020-08-04 12:40:46 -05004#
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
Madhukar Pappireddy2f284e12021-08-30 16:06:14 -050020reset_var plat_variant
21
Federico Recanatiedf25d92022-03-02 20:54:19 +010022reset_var pa_size
23
Zelalemeb9c1bb2020-08-04 12:40:46 -050024#------------ GIC configuration --------------
25
26# GICv2 compatibility is not supported and GICD_CTLR.ARE_* is always one
27reset_var gicd_are_fixed_one
28
29# Number of extended PPI supported: Default 0, Maximum 64
30reset_var gicd_ext_ppi_count
31
32# Number of extended SPI supported: Default 0, Maximum 1024
33reset_var gicd_ext_spi_count
34
35# Number of Interrupt Translation Services to be instantiated (0=none)
36reset_var gicd_its_count
37
38# GICv4 Virtual LPIs and Direct injection of Virtual LPIs supported
39reset_var gicd_virtual_lpi
40
41# Device has support for extended SPI/PPI ID ranges
42reset_var gicv3_ext_interrupt_range
43
44# When using the GICv3 model, pretend to be a GICv2 system
45reset_var gicv3_gicv2_only
46
47# Number of SPIs that are implemented: Default 224, Maximum 988
48reset_var gicv3_spi_count
49
50# Enable GICv4.1 functionality
51reset_var has_gicv4_1
52
53reset_var sve_plugin
54
55reset_var bmcov_plugin
56
57reset_var retain_flash
58
59reset_var nvcounter_version
60reset_var nvcounter_diag
61
Madhukar Pappireddy024efd52020-12-31 16:45:52 -060062# Enable SMMUv3 functionality
63reset_var has_smmuv3_params
64
Zelalem Aweke773e19b2021-08-20 17:41:00 -050065# Enable FEAT_RME
66reset_var has_rme
67
Manish V Badarkhe43bb6312021-01-04 08:55:05 +000068# Layout of MPIDR. 0=AFF0 is CPUID, 1=AFF1 is CPUID
69reset_var mpidr_layout
70
71# Sets the MPIDR.MT bit. Setting this to true hints the cluster
72# is multi-threading compatible
73reset_var supports_multi_threading
74
Manish V Badarkhef32cad02021-07-19 18:43:58 +010075# ETM plugin to access ETM trace system registers
76reset_var etm_plugin
77
78# ETE plugin to access ETE trace system registers
79reset_var ete_plugin
80
81# Trace filter register support
82reset_var supports_trace_filter_regs
83
84# Trace buffer control register support
85reset_var supports_trace_buffer_control_regs
86
Manish V Badarkhebb2cdf02022-05-18 16:23:35 +010087# CRC32 support
88reset_var supports_crc32
89
Zelalemeb9c1bb2020-08-04 12:40:46 -050090source "$ci_root/model/fvp_common.sh"
91
92#------------ Common configuration --------------
93
94cat <<EOF >>"$model_param_file"
95${gicv3_gicv2_only+-C gicv3.gicv2-only=$gicv3_gicv2_only}
96${gicv3_spi_count+-C gic_distributor.SPI-count=$gicv3_spi_count}
97${gicd_are_fixed_one+-C gic_distributor.ARE-fixed-to-one=$gicd_are_fixed_one}
98${gicd_ext_ppi_count+-C gic_distributor.extended-ppi-count=$gicd_ext_ppi_count}
99${gicd_ext_spi_count+-C gic_distributor.extended-spi-count=$gicd_ext_spi_count}
100${gicd_its_count+-C gic_distributor.ITS-count=$gicd_its_count}
101${gicd_virtual_lpi+-C gic_distributor.virtual-lpi-support=$gicd_virtual_lpi}
102${has_gicv4_1+-C has-gicv4.1=$has_gicv4_1}
103
104${sve_plugin+--plugin=$sve_plugin_path}
105${sve_plugin+-C SVE.ScalableVectorExtension.enable_at_reset=0}
106${sve_plugin+-C SVE.ScalableVectorExtension.veclen=$((128 / 8))}
107
108${bmcov_plugin+--plugin=$bmcov_plugin_path}
109
110${nvcounter_version+-C bp.trusted_nv_counter.version=$nvcounter_version}
111${nvcounter_diag+-C bp.trusted_nv_counter.diagnostics=$nvcounter_diag}
Manish V Badarkhef32cad02021-07-19 18:43:58 +0100112
113${etm_plugin+--plugin=$etm_plugin_path}
114${ete_plugin+--plugin=$ete_plugin_path}
Zelalemeb9c1bb2020-08-04 12:40:46 -0500115EOF
116
117# TFTF Reboot/Shutdown tests
118if [ "$retain_flash" = "1" ]; then
119 cat <<EOF >>"$model_param_file"
120-C bp.flashloader1.fname=$flashloader1_fwrite
121-C bp.flashloader1.fnameWrite=$flashloader1_fwrite
122-C bp.flashloader0.fnameWrite=$flashloader0_fwrite
123-C bp.pl011_uart0.untimed_fifos=1
124-C bp.ve_sysregs.mmbSiteDefault=0
125EOF
126fi
127
Zelalem Aweke773e19b2021-08-20 17:41:00 -0500128# FEAT_RME is enabled
129if [ "$has_rme" = "1" ]; then
130 cat <<EOF >>"$model_param_file"
131-C bp.refcounter.non_arch_start_at_default=1
132-C bp.refcounter.use_real_time=0
133EOF
134fi
135
Maksims Svecovsc2e24752022-03-24 13:52:31 +0000136# MTE is enabled
137if [[ -n $memory_tagging_support_level ]]; then
138 cat <<EOF >>"$model_param_file"
139-C bp.dram_metadata.is_enabled=1
140EOF
141fi
142
Zelalemeb9c1bb2020-08-04 12:40:46 -0500143#------------ Cluster0 configuration --------------
144
145cat <<EOF >>"$model_param_file"
Federico Recanatiedf25d92022-03-02 20:54:19 +0100146${pa_size+-C cluster0.PA_SIZE=$pa_size}
147
Zelalemeb9c1bb2020-08-04 12:40:46 -0500148${cluster_0_reg_reset+-C cluster0.register_reset_data=$cluster_0_reg_reset}
149
150${cluster_0_has_el2+-C cluster0.has_el2=$cluster_0_has_el2}
151
152${amu_present+-C cluster0.has_amu=$amu_present}
153
154${reset_to_bl31+-C cluster0.cpu0.RVBAR=${bl31_addr:?}}
155${reset_to_bl31+-C cluster0.cpu1.RVBAR=${bl31_addr:?}}
156${reset_to_bl31+-C cluster0.cpu2.RVBAR=${bl31_addr:?}}
157${reset_to_bl31+-C cluster0.cpu3.RVBAR=${bl31_addr:?}}
158
159${reset_to_spmin+-C cluster0.cpu0.RVBAR=${bl32_addr:?}}
160${reset_to_spmin+-C cluster0.cpu1.RVBAR=${bl32_addr:?}}
161${reset_to_spmin+-C cluster0.cpu2.RVBAR=${bl32_addr:?}}
162${reset_to_spmin+-C cluster0.cpu3.RVBAR=${bl32_addr:?}}
163
164${cluster_0_num_cores+-C cluster0.NUM_CORES=$cluster_0_num_cores}
165
166${el3_payload_bin+--data cluster0.cpu0=$el3_payload_bin@${el3_payload_addr:?}}
167
168${aarch64_only+-C cluster0.max_32bit_el=-1}
169
170${aarch32+-C cluster0.cpu0.CONFIG64=0}
171${aarch32+-C cluster0.cpu1.CONFIG64=0}
172${aarch32+-C cluster0.cpu2.CONFIG64=0}
173${aarch32+-C cluster0.cpu3.CONFIG64=0}
174
175
176${bl2_at_el3+-C cluster0.cpu0.RVBAR=${bl2_addr:?}}
177${bl2_at_el3+-C cluster0.cpu1.RVBAR=${bl2_addr:?}}
178${bl2_at_el3+-C cluster0.cpu2.RVBAR=${bl2_addr:?}}
179${bl2_at_el3+-C cluster0.cpu3.RVBAR=${bl2_addr:?}}
180
181${memory_tagging_support_level+-C cluster0.memory_tagging_support_level=$memory_tagging_support_level}
182
Alexei Fedorovc20018b2020-12-18 14:29:56 +0000183${has_branch_target_exception+-C cluster0.has_branch_target_exception=$has_branch_target_exception}
184
Olivier Deprez18101ca2021-04-23 19:42:04 +0200185${restriction_on_speculative_execution+-C cluster0.restriction_on_speculative_execution=$restriction_on_speculative_execution}
186
Zelalem Aweke52aad162021-10-25 17:28:03 -0500187${restriction_on_speculative_execution+-C cluster0.restriction_on_speculative_execution_aarch32=$restriction_on_speculative_execution}
188
Zelalemeb9c1bb2020-08-04 12:40:46 -0500189${gicv3_ext_interrupt_range+-C cluster0.gicv3.extended-interrupt-range-support=$gicv3_ext_interrupt_range}
Madhukar Pappireddy024efd52020-12-31 16:45:52 -0600190
Manish V Badarkhe43bb6312021-01-04 08:55:05 +0000191${mpidr_layout+-C cluster0.mpidr_layout=$mpidr_layout}
192
193${supports_multi_threading+-C cluster0.supports_multi_threading=$supports_multi_threading}
194
Manish V Badarkhe970bc182021-07-19 10:28:12 +0100195${etm_present+-C cluster0.cpu0.etm-present=$etm_present}
196${etm_present+-C cluster0.cpu1.etm-present=$etm_present}
197${etm_present+-C cluster0.cpu2.etm-present=$etm_present}
198${etm_present+-C cluster0.cpu3.etm-present=$etm_present}
Manish V Badarkhef32cad02021-07-19 18:43:58 +0100199${supports_trace_filter_regs+-C cluster0.has_self_hosted_trace_extension=$supports_trace_filter_regs}
200${supports_trace_buffer_control_regs+-C cluster0.has_trbe=$supports_trace_buffer_control_regs}
John Powell3ced4082022-04-26 17:12:50 -0500201${supports_branch_record_buffer_control_regs+-C cluster0.has_brbe=$supports_branch_record_buffer_control_regs}
Manish V Badarkhebb2cdf02022-05-18 16:23:35 +0100202${supports_crc32+-C cluster0.cpu0.enable_crc32=$supports_crc32}
203${supports_crc32+-C cluster0.cpu1.enable_crc32=$supports_crc32}
204${supports_crc32+-C cluster0.cpu2.enable_crc32=$supports_crc32}
205${supports_crc32+-C cluster0.cpu3.enable_crc32=$supports_crc32}
Manish V Badarkhe970bc182021-07-19 10:28:12 +0100206
Harrison Mutai8b8cd3e2022-06-06 12:40:13 +0100207${cache_state_modelled+-C cluster0.stage12_tlb_size=1024}
208${cache_state_modelled+-C cluster0.check_memory_attributes=0}
209
Zelalemeb9c1bb2020-08-04 12:40:46 -0500210EOF
211
Madhukar Pappireddy024efd52020-12-31 16:45:52 -0600212if [ "$has_smmuv3_params" = "1" ]; then
Zelalem Aweke773e19b2021-08-20 17:41:00 -0500213 cat <<EOF >>"$model_param_file"
214-C pci.pci_smmuv3.mmu.SMMU_AIDR=2
Zelalem Aweke773e19b2021-08-20 17:41:00 -0500215-C pci.pci_smmuv3.mmu.SMMU_IDR1=0x00600002
216-C pci.pci_smmuv3.mmu.SMMU_IDR3=0x1714
Madhukar Pappireddy024efd52020-12-31 16:45:52 -0600217-C pci.pci_smmuv3.mmu.SMMU_S_IDR1=0xA0000002
218-C pci.pci_smmuv3.mmu.SMMU_S_IDR2=0
219-C pci.pci_smmuv3.mmu.SMMU_S_IDR3=0
220-C pci.smmulogger.trace_debug=1
221-C pci.smmulogger.trace_snoops=1
222-C pci.tbu0_pre_smmu_logger.trace_snoops=1
223-C pci.tbu0_pre_smmu_logger.trace_debug=1
224-C pci.pci_smmuv3.mmu.all_error_messages_through_trace=1
Olivier Deprez498873e2022-03-09 17:46:36 +0100225-C TRACE.GenericTrace.trace-sources=verbose_commentary,smmu_initial_transaction,smmu_final_transaction,*.pci.pci_smmuv3.mmu.*,*.pci.smmulogger.*,*.pci.tbu0_pre_smmu_logger.*,smmu_poison_tw_data
Madhukar Pappireddy024efd52020-12-31 16:45:52 -0600226--plugin $warehouse/SysGen/PVModelLib/$model_version/$model_build/external/plugins/$model_flavour/GenericTrace.so
227EOF
Olivier Deprezc3c572e2022-03-16 10:54:45 +0100228
229# If RME is implemented:
230# * pci.pci_smmuv3.mmu.SMMU_IDR5 defines 48 bit physical address size aligned
231# with the model configuration for the PE.
232# * pci.pci_smmuv3.mmu.root_register_page_offset defines the (platform
233# dependent) SMMU Root register page offset.
234# * SMMU_IDR0.RME_IMPL=1: RME features supported for non-secure and secure
235# programming interface.
236# * pci.pci_smmuv3.mmu.SMMU_ROOT_IDR0=3: ROOT_IMPL=1/BGPTM=1.
237# * pci.pci_smmuv3.mmu.SMMU_ROOT_IIDR=0x43B: JEP106 Arm implementer code.
238 if [ "$has_rme" = "1" ]; then
239 cat <<EOF >>"$model_param_file"
240-C pci.pci_smmuv3.mmu.SMMU_IDR0=0x4046123b
241-C pci.pci_smmuv3.mmu.SMMU_IDR5=0xFFFF0475
242-C pci.pci_smmuv3.mmu.SMMU_ROOT_IDR0=3
243-C pci.pci_smmuv3.mmu.SMMU_ROOT_IIDR=0x43B
244-C pci.pci_smmuv3.mmu.root_register_page_offset=0x20000
245EOF
246 else
247 cat <<EOF >>"$model_param_file"
248-C pci.pci_smmuv3.mmu.SMMU_IDR0=0x0046123B
Federico Recanatiedf25d92022-03-02 20:54:19 +0100249EOF
250
251 # Align pci.pci_smmuv3.mmu.SMMU_IDR5 to define 48 bit physical
252 # address size as for the PE.
253 if [ "$pa_size" = "48" ]; then
254 cat <<EOF >>"$model_param_file"
255-C pci.pci_smmuv3.mmu.SMMU_IDR5=0xFFFF0475
256EOF
257 else
258 cat <<EOF >>"$model_param_file"
Olivier Deprezc3c572e2022-03-16 10:54:45 +0100259-C pci.pci_smmuv3.mmu.SMMU_IDR5=0xFFFF0472
260EOF
Federico Recanatiedf25d92022-03-02 20:54:19 +0100261 fi
262 fi
Madhukar Pappireddy024efd52020-12-31 16:45:52 -0600263fi
264
Zelalemeb9c1bb2020-08-04 12:40:46 -0500265# Parameters to select architecture version
266if [ "$arch_version" = "8.3" ]; then
267 cat <<EOF >>"$model_param_file"
268-C cluster0.has_arm_v8-3=1
269EOF
270fi
271
272if [ "$arch_version" = "8.4" ]; then
273 cat <<EOF >>"$model_param_file"
274-C cluster0.has_arm_v8-4=1
275EOF
276fi
277
278if [ "$arch_version" = "8.5" ]; then
279 cat <<EOF >>"$model_param_file"
280-C cluster0.has_arm_v8-5=1
281EOF
282fi
283
284if [ "$arch_version" = "8.6" ]; then
285 cat <<EOF >>"$model_param_file"
286-C cluster0.has_arm_v8-6=1
287EOF
288fi
289
Manish V Badarkhe59b56942021-12-31 17:34:09 +0000290if [ "$arch_version" = "8.7" ]; then
291 cat <<EOF >>"$model_param_file"
292-C cluster0.has_arm_v8-7=1
293EOF
294fi
295
Zelalemeb9c1bb2020-08-04 12:40:46 -0500296# Parameters for fault injection
297if [ "$fault_inject" = "1" ]; then
298 cat <<EOF >>"$model_param_file"
299-C cluster0.number_of_error_records=2
300-C cluster0.has_ras=2
301-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}'
302-C cluster0.pseudo_fault_generation_feature_register='{"OF":false,"CI":false,"ER":false,"PN":false,"AV":false,"MV":false,"SYN":false,"UC":true,"UEU":true,"UER":false,"UEO":false,"DE":false,"CE":0,"R":false}'
303EOF
304fi
305
Zelalem Aweke773e19b2021-08-20 17:41:00 -0500306# FEAT_RME is enabled
307if [ "$has_rme" = "1" ]; then
308 cat <<EOF >>"$model_param_file"
309-C cluster0.has_rme=1
310-C cluster0.has_rndr=1
311-C cluster0.has_v8_7_pmu_extension=2
312-C cluster0.ecv_support_level=2
313-C cluster0.gicv3.cpuintf-mmap-access-level=2
314-C cluster0.gicv4.mask-virtual-interrupt=1
315-C cluster0.gicv3.without-DS-support=1
316-C cluster0.max_32bit_el=-1
317-C cluster0.PA_SIZE=48
318EOF
319fi
320
Jayanth Dodderi Chidanand369f3592022-05-19 14:24:15 +0100321# FEAT_BRBE is enabled
322if [ "$has_brbe" = "1" ]; then
323 cat <<EOF >>"$model_param_file"
324-C cluster0.has_brbe=1
325EOF
326fi
327
328# FEAT_TRBE is enabled
329if [ "$has_trbe" = "1" ]; then
330 cat <<EOF >>"$model_param_file"
331-C cluster0.has_trbe=1
332EOF
333fi
334
Zelalemeb9c1bb2020-08-04 12:40:46 -0500335#------------ Cluster1 configuration (if exists) --------------
336if [ "$is_dual_cluster" = "1" ]; then
337 cat <<EOF >>"$model_param_file"
Federico Recanatiedf25d92022-03-02 20:54:19 +0100338${pa_size+-C cluster1.PA_SIZE=$pa_size}
339
Zelalemeb9c1bb2020-08-04 12:40:46 -0500340${cluster_1_reg_reset+-C cluster1.register_reset_data=$cluster_1_reg_reset}
341
342${cluster_1_has_el2+-C cluster1.has_el2=$cluster_1_has_el2}
343
344${amu_present+-C cluster1.has_amu=$amu_present}
345
346${reset_to_bl31+-C cluster1.cpu0.RVBAR=${bl31_addr:?}}
347${reset_to_bl31+-C cluster1.cpu1.RVBAR=${bl31_addr:?}}
348${reset_to_bl31+-C cluster1.cpu2.RVBAR=${bl31_addr:?}}
349${reset_to_bl31+-C cluster1.cpu3.RVBAR=${bl31_addr:?}}
350
351${reset_to_spmin+-C cluster1.cpu0.RVBAR=${bl32_addr:?}}
352${reset_to_spmin+-C cluster1.cpu1.RVBAR=${bl32_addr:?}}
353${reset_to_spmin+-C cluster1.cpu2.RVBAR=${bl32_addr:?}}
354${reset_to_spmin+-C cluster1.cpu3.RVBAR=${bl32_addr:?}}
355
356${cluster_1_num_cores+-C cluster1.NUM_CORES=$cluster_1_num_cores}
357
358${aarch64_only+-C cluster1.max_32bit_el=-1}
359
360${aarch32+-C cluster1.cpu0.CONFIG64=0}
361${aarch32+-C cluster1.cpu1.CONFIG64=0}
362${aarch32+-C cluster1.cpu2.CONFIG64=0}
363${aarch32+-C cluster1.cpu3.CONFIG64=0}
364
365${bl2_at_el3+-C cluster1.cpu0.RVBAR=${bl2_addr:?}}
366${bl2_at_el3+-C cluster1.cpu1.RVBAR=${bl2_addr:?}}
367${bl2_at_el3+-C cluster1.cpu2.RVBAR=${bl2_addr:?}}
368${bl2_at_el3+-C cluster1.cpu3.RVBAR=${bl2_addr:?}}
369
370${memory_tagging_support_level+-C cluster1.memory_tagging_support_level=$memory_tagging_support_level}
371
Alexei Fedorovc20018b2020-12-18 14:29:56 +0000372${has_branch_target_exception+-C cluster1.has_branch_target_exception=$has_branch_target_exception}
373
Olivier Deprez18101ca2021-04-23 19:42:04 +0200374${restriction_on_speculative_execution+-C cluster1.restriction_on_speculative_execution=$restriction_on_speculative_execution}
375
Zelalem Aweke52aad162021-10-25 17:28:03 -0500376${restriction_on_speculative_execution+-C cluster1.restriction_on_speculative_execution_aarch32=$restriction_on_speculative_execution}
377
Zelalemeb9c1bb2020-08-04 12:40:46 -0500378${gicv3_ext_interrupt_range+-C cluster1.gicv3.extended-interrupt-range-support=$gicv3_ext_interrupt_range}
Manish V Badarkhe43bb6312021-01-04 08:55:05 +0000379
380${mpidr_layout+-C cluster1.mpidr_layout=$mpidr_layout}
381
382${supports_multi_threading+-C cluster1.supports_multi_threading=$supports_multi_threading}
Manish V Badarkhe970bc182021-07-19 10:28:12 +0100383
384${etm_present+-C cluster1.cpu0.etm-present=$etm_present}
385${etm_present+-C cluster1.cpu1.etm-present=$etm_present}
386${etm_present+-C cluster1.cpu2.etm-present=$etm_present}
387${etm_present+-C cluster1.cpu3.etm-present=$etm_present}
Manish V Badarkhef32cad02021-07-19 18:43:58 +0100388${supports_system_trace_filter_regs+-C cluster1.has_self_hosted_trace_extension=$supports_system_trace_filter_regs}
389${supports_trace_buffer_control_regs+-C cluster1.has_trbe=$supports_trace_buffer_control_regs}
Manish V Badarkhebb2cdf02022-05-18 16:23:35 +0100390${supports_crc32+-C cluster1.cpu0.enable_crc32=$supports_crc32}
391${supports_crc32+-C cluster1.cpu1.enable_crc32=$supports_crc32}
392${supports_crc32+-C cluster1.cpu2.enable_crc32=$supports_crc32}
393${supports_crc32+-C cluster1.cpu3.enable_crc32=$supports_crc32}
Manish V Badarkhe970bc182021-07-19 10:28:12 +0100394
Harrison Mutai8b8cd3e2022-06-06 12:40:13 +0100395${cache_state_modelled+-C cluster1.stage12_tlb_size=1024}
396${cache_state_modelled+-C cluster1.check_memory_attributes=0}
397
Zelalemeb9c1bb2020-08-04 12:40:46 -0500398EOF
399
400# Parameters to select architecture version
401if [ "$arch_version" = "8.3" ]; then
402 cat <<EOF >>"$model_param_file"
403-C cluster1.has_arm_v8-3=1
404EOF
405fi
406
407if [ "$arch_version" = "8.4" ]; then
408 cat <<EOF >>"$model_param_file"
409-C cluster1.has_arm_v8-4=1
410EOF
411fi
412
413if [ "$arch_version" = "8.5" ]; then
414 cat <<EOF >>"$model_param_file"
415-C cluster1.has_arm_v8-5=1
416EOF
417fi
418
419if [ "$arch_version" = "8.6" ]; then
420 cat <<EOF >>"$model_param_file"
421-C cluster1.has_arm_v8-6=1
422EOF
423fi
424
Manish V Badarkhe59b56942021-12-31 17:34:09 +0000425if [ "$arch_version" = "8.7" ]; then
426 cat <<EOF >>"$model_param_file"
427-C cluster1.has_arm_v8-7=1
428EOF
429fi
430
Zelalemeb9c1bb2020-08-04 12:40:46 -0500431# Parameters for fault injection
432if [ "$fault_inject" = "1" ]; then
433 cat <<EOF >>"$model_param_file"
434-C cluster1.number_of_error_records=2
435-C cluster1.has_ras=2
436-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}'
437-C cluster1.pseudo_fault_generation_feature_register='{"OF":false,"CI":false,"ER":false,"PN":false,"AV":false,"MV":false,"SYN":false,"UC":true,"UEU":true,"UER":false,"UEO":false,"DE":false,"CE":0,"R":false}'
438EOF
439fi
Zelalem Aweke773e19b2021-08-20 17:41:00 -0500440
Jayanth Dodderi Chidanand369f3592022-05-19 14:24:15 +0100441# FEAT_BRBE is enabled
442if [ "$has_brbe" = "1" ]; then
443 cat <<EOF >>"$model_param_file"
444-C cluster1.has_brbe=1
445EOF
446fi
447
448# FEAT_TRBE is enabled
449if [ "$has_trbe" = "1" ]; then
450 cat <<EOF >>"$model_param_file"
451-C cluster1.has_trbe=1
452EOF
453fi
454
Zelalem Aweke773e19b2021-08-20 17:41:00 -0500455# FEAT_RME is enabled
456if [ "$has_rme" = "1" ]; then
457 cat <<EOF >>"$model_param_file"
458-C cluster1.has_rme=1
459-C cluster1.has_rndr=1
460-C cluster1.has_v8_7_pmu_extension=2
461-C cluster1.ecv_support_level=2
462-C cluster1.gicv3.cpuintf-mmap-access-level=2
463-C cluster1.gicv4.mask-virtual-interrupt=1
464-C cluster1.gicv3.without-DS-support=1
465-C cluster1.max_32bit_el=-1
466-C cluster1.PA_SIZE=48
467EOF
468fi
Zelalemeb9c1bb2020-08-04 12:40:46 -0500469fi
Federico Recanatiedf25d92022-03-02 20:54:19 +0100470
471# 48bit PA size: in order to access memory in high address ranges the
472# model must declare and the interconnect has to be configured to
473# support such address width.
474if [ "$pa_size" = "48" ]; then
475cat <<EOF >>"$model_param_file"
476-C bp.dram_size=4000000
477-C cci550.addr_width=48
478EOF
479fi