blob: f6dabe2b3859a301f5c15ab2475084ee4ba708fe [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
Zelalemeb9c1bb2020-08-04 12:40:46 -0500207EOF
208
Madhukar Pappireddy024efd52020-12-31 16:45:52 -0600209if [ "$has_smmuv3_params" = "1" ]; then
Zelalem Aweke773e19b2021-08-20 17:41:00 -0500210 cat <<EOF >>"$model_param_file"
211-C pci.pci_smmuv3.mmu.SMMU_AIDR=2
Zelalem Aweke773e19b2021-08-20 17:41:00 -0500212-C pci.pci_smmuv3.mmu.SMMU_IDR1=0x00600002
213-C pci.pci_smmuv3.mmu.SMMU_IDR3=0x1714
Madhukar Pappireddy024efd52020-12-31 16:45:52 -0600214-C pci.pci_smmuv3.mmu.SMMU_S_IDR1=0xA0000002
215-C pci.pci_smmuv3.mmu.SMMU_S_IDR2=0
216-C pci.pci_smmuv3.mmu.SMMU_S_IDR3=0
217-C pci.smmulogger.trace_debug=1
218-C pci.smmulogger.trace_snoops=1
219-C pci.tbu0_pre_smmu_logger.trace_snoops=1
220-C pci.tbu0_pre_smmu_logger.trace_debug=1
221-C pci.pci_smmuv3.mmu.all_error_messages_through_trace=1
Olivier Deprez498873e2022-03-09 17:46:36 +0100222-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 -0600223--plugin $warehouse/SysGen/PVModelLib/$model_version/$model_build/external/plugins/$model_flavour/GenericTrace.so
224EOF
Olivier Deprezc3c572e2022-03-16 10:54:45 +0100225
226# If RME is implemented:
227# * pci.pci_smmuv3.mmu.SMMU_IDR5 defines 48 bit physical address size aligned
228# with the model configuration for the PE.
229# * pci.pci_smmuv3.mmu.root_register_page_offset defines the (platform
230# dependent) SMMU Root register page offset.
231# * SMMU_IDR0.RME_IMPL=1: RME features supported for non-secure and secure
232# programming interface.
233# * pci.pci_smmuv3.mmu.SMMU_ROOT_IDR0=3: ROOT_IMPL=1/BGPTM=1.
234# * pci.pci_smmuv3.mmu.SMMU_ROOT_IIDR=0x43B: JEP106 Arm implementer code.
235 if [ "$has_rme" = "1" ]; then
236 cat <<EOF >>"$model_param_file"
237-C pci.pci_smmuv3.mmu.SMMU_IDR0=0x4046123b
238-C pci.pci_smmuv3.mmu.SMMU_IDR5=0xFFFF0475
239-C pci.pci_smmuv3.mmu.SMMU_ROOT_IDR0=3
240-C pci.pci_smmuv3.mmu.SMMU_ROOT_IIDR=0x43B
241-C pci.pci_smmuv3.mmu.root_register_page_offset=0x20000
242EOF
243 else
244 cat <<EOF >>"$model_param_file"
245-C pci.pci_smmuv3.mmu.SMMU_IDR0=0x0046123B
Federico Recanatiedf25d92022-03-02 20:54:19 +0100246EOF
247
248 # Align pci.pci_smmuv3.mmu.SMMU_IDR5 to define 48 bit physical
249 # address size as for the PE.
250 if [ "$pa_size" = "48" ]; then
251 cat <<EOF >>"$model_param_file"
252-C pci.pci_smmuv3.mmu.SMMU_IDR5=0xFFFF0475
253EOF
254 else
255 cat <<EOF >>"$model_param_file"
Olivier Deprezc3c572e2022-03-16 10:54:45 +0100256-C pci.pci_smmuv3.mmu.SMMU_IDR5=0xFFFF0472
257EOF
Federico Recanatiedf25d92022-03-02 20:54:19 +0100258 fi
259 fi
Madhukar Pappireddy024efd52020-12-31 16:45:52 -0600260fi
261
Zelalemeb9c1bb2020-08-04 12:40:46 -0500262# Parameters to select architecture version
263if [ "$arch_version" = "8.3" ]; then
264 cat <<EOF >>"$model_param_file"
265-C cluster0.has_arm_v8-3=1
266EOF
267fi
268
269if [ "$arch_version" = "8.4" ]; then
270 cat <<EOF >>"$model_param_file"
271-C cluster0.has_arm_v8-4=1
272EOF
273fi
274
275if [ "$arch_version" = "8.5" ]; then
276 cat <<EOF >>"$model_param_file"
277-C cluster0.has_arm_v8-5=1
278EOF
279fi
280
281if [ "$arch_version" = "8.6" ]; then
282 cat <<EOF >>"$model_param_file"
283-C cluster0.has_arm_v8-6=1
284EOF
285fi
286
Manish V Badarkhe59b56942021-12-31 17:34:09 +0000287if [ "$arch_version" = "8.7" ]; then
288 cat <<EOF >>"$model_param_file"
289-C cluster0.has_arm_v8-7=1
290EOF
291fi
292
Zelalemeb9c1bb2020-08-04 12:40:46 -0500293# Parameters for fault injection
294if [ "$fault_inject" = "1" ]; then
295 cat <<EOF >>"$model_param_file"
296-C cluster0.number_of_error_records=2
297-C cluster0.has_ras=2
298-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}'
299-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}'
300EOF
301fi
302
Zelalem Aweke773e19b2021-08-20 17:41:00 -0500303# FEAT_RME is enabled
304if [ "$has_rme" = "1" ]; then
305 cat <<EOF >>"$model_param_file"
306-C cluster0.has_rme=1
307-C cluster0.has_rndr=1
308-C cluster0.has_v8_7_pmu_extension=2
309-C cluster0.ecv_support_level=2
310-C cluster0.gicv3.cpuintf-mmap-access-level=2
311-C cluster0.gicv4.mask-virtual-interrupt=1
312-C cluster0.gicv3.without-DS-support=1
313-C cluster0.max_32bit_el=-1
314-C cluster0.PA_SIZE=48
315EOF
316fi
317
Jayanth Dodderi Chidanand369f3592022-05-19 14:24:15 +0100318# FEAT_BRBE is enabled
319if [ "$has_brbe" = "1" ]; then
320 cat <<EOF >>"$model_param_file"
321-C cluster0.has_brbe=1
322EOF
323fi
324
325# FEAT_TRBE is enabled
326if [ "$has_trbe" = "1" ]; then
327 cat <<EOF >>"$model_param_file"
328-C cluster0.has_trbe=1
329EOF
330fi
331
Zelalemeb9c1bb2020-08-04 12:40:46 -0500332#------------ Cluster1 configuration (if exists) --------------
333if [ "$is_dual_cluster" = "1" ]; then
334 cat <<EOF >>"$model_param_file"
Federico Recanatiedf25d92022-03-02 20:54:19 +0100335${pa_size+-C cluster1.PA_SIZE=$pa_size}
336
Zelalemeb9c1bb2020-08-04 12:40:46 -0500337${cluster_1_reg_reset+-C cluster1.register_reset_data=$cluster_1_reg_reset}
338
339${cluster_1_has_el2+-C cluster1.has_el2=$cluster_1_has_el2}
340
341${amu_present+-C cluster1.has_amu=$amu_present}
342
343${reset_to_bl31+-C cluster1.cpu0.RVBAR=${bl31_addr:?}}
344${reset_to_bl31+-C cluster1.cpu1.RVBAR=${bl31_addr:?}}
345${reset_to_bl31+-C cluster1.cpu2.RVBAR=${bl31_addr:?}}
346${reset_to_bl31+-C cluster1.cpu3.RVBAR=${bl31_addr:?}}
347
348${reset_to_spmin+-C cluster1.cpu0.RVBAR=${bl32_addr:?}}
349${reset_to_spmin+-C cluster1.cpu1.RVBAR=${bl32_addr:?}}
350${reset_to_spmin+-C cluster1.cpu2.RVBAR=${bl32_addr:?}}
351${reset_to_spmin+-C cluster1.cpu3.RVBAR=${bl32_addr:?}}
352
353${cluster_1_num_cores+-C cluster1.NUM_CORES=$cluster_1_num_cores}
354
355${aarch64_only+-C cluster1.max_32bit_el=-1}
356
357${aarch32+-C cluster1.cpu0.CONFIG64=0}
358${aarch32+-C cluster1.cpu1.CONFIG64=0}
359${aarch32+-C cluster1.cpu2.CONFIG64=0}
360${aarch32+-C cluster1.cpu3.CONFIG64=0}
361
362${bl2_at_el3+-C cluster1.cpu0.RVBAR=${bl2_addr:?}}
363${bl2_at_el3+-C cluster1.cpu1.RVBAR=${bl2_addr:?}}
364${bl2_at_el3+-C cluster1.cpu2.RVBAR=${bl2_addr:?}}
365${bl2_at_el3+-C cluster1.cpu3.RVBAR=${bl2_addr:?}}
366
367${memory_tagging_support_level+-C cluster1.memory_tagging_support_level=$memory_tagging_support_level}
368
Alexei Fedorovc20018b2020-12-18 14:29:56 +0000369${has_branch_target_exception+-C cluster1.has_branch_target_exception=$has_branch_target_exception}
370
Olivier Deprez18101ca2021-04-23 19:42:04 +0200371${restriction_on_speculative_execution+-C cluster1.restriction_on_speculative_execution=$restriction_on_speculative_execution}
372
Zelalem Aweke52aad162021-10-25 17:28:03 -0500373${restriction_on_speculative_execution+-C cluster1.restriction_on_speculative_execution_aarch32=$restriction_on_speculative_execution}
374
Zelalemeb9c1bb2020-08-04 12:40:46 -0500375${gicv3_ext_interrupt_range+-C cluster1.gicv3.extended-interrupt-range-support=$gicv3_ext_interrupt_range}
Manish V Badarkhe43bb6312021-01-04 08:55:05 +0000376
377${mpidr_layout+-C cluster1.mpidr_layout=$mpidr_layout}
378
379${supports_multi_threading+-C cluster1.supports_multi_threading=$supports_multi_threading}
Manish V Badarkhe970bc182021-07-19 10:28:12 +0100380
381${etm_present+-C cluster1.cpu0.etm-present=$etm_present}
382${etm_present+-C cluster1.cpu1.etm-present=$etm_present}
383${etm_present+-C cluster1.cpu2.etm-present=$etm_present}
384${etm_present+-C cluster1.cpu3.etm-present=$etm_present}
Manish V Badarkhef32cad02021-07-19 18:43:58 +0100385${supports_system_trace_filter_regs+-C cluster1.has_self_hosted_trace_extension=$supports_system_trace_filter_regs}
386${supports_trace_buffer_control_regs+-C cluster1.has_trbe=$supports_trace_buffer_control_regs}
Manish V Badarkhebb2cdf02022-05-18 16:23:35 +0100387${supports_crc32+-C cluster1.cpu0.enable_crc32=$supports_crc32}
388${supports_crc32+-C cluster1.cpu1.enable_crc32=$supports_crc32}
389${supports_crc32+-C cluster1.cpu2.enable_crc32=$supports_crc32}
390${supports_crc32+-C cluster1.cpu3.enable_crc32=$supports_crc32}
Manish V Badarkhe970bc182021-07-19 10:28:12 +0100391
Zelalemeb9c1bb2020-08-04 12:40:46 -0500392EOF
393
394# Parameters to select architecture version
395if [ "$arch_version" = "8.3" ]; then
396 cat <<EOF >>"$model_param_file"
397-C cluster1.has_arm_v8-3=1
398EOF
399fi
400
401if [ "$arch_version" = "8.4" ]; then
402 cat <<EOF >>"$model_param_file"
403-C cluster1.has_arm_v8-4=1
404EOF
405fi
406
407if [ "$arch_version" = "8.5" ]; then
408 cat <<EOF >>"$model_param_file"
409-C cluster1.has_arm_v8-5=1
410EOF
411fi
412
413if [ "$arch_version" = "8.6" ]; then
414 cat <<EOF >>"$model_param_file"
415-C cluster1.has_arm_v8-6=1
416EOF
417fi
418
Manish V Badarkhe59b56942021-12-31 17:34:09 +0000419if [ "$arch_version" = "8.7" ]; then
420 cat <<EOF >>"$model_param_file"
421-C cluster1.has_arm_v8-7=1
422EOF
423fi
424
Zelalemeb9c1bb2020-08-04 12:40:46 -0500425# Parameters for fault injection
426if [ "$fault_inject" = "1" ]; then
427 cat <<EOF >>"$model_param_file"
428-C cluster1.number_of_error_records=2
429-C cluster1.has_ras=2
430-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}'
431-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}'
432EOF
433fi
Zelalem Aweke773e19b2021-08-20 17:41:00 -0500434
Jayanth Dodderi Chidanand369f3592022-05-19 14:24:15 +0100435# FEAT_BRBE is enabled
436if [ "$has_brbe" = "1" ]; then
437 cat <<EOF >>"$model_param_file"
438-C cluster1.has_brbe=1
439EOF
440fi
441
442# FEAT_TRBE is enabled
443if [ "$has_trbe" = "1" ]; then
444 cat <<EOF >>"$model_param_file"
445-C cluster1.has_trbe=1
446EOF
447fi
448
Zelalem Aweke773e19b2021-08-20 17:41:00 -0500449# FEAT_RME is enabled
450if [ "$has_rme" = "1" ]; then
451 cat <<EOF >>"$model_param_file"
452-C cluster1.has_rme=1
453-C cluster1.has_rndr=1
454-C cluster1.has_v8_7_pmu_extension=2
455-C cluster1.ecv_support_level=2
456-C cluster1.gicv3.cpuintf-mmap-access-level=2
457-C cluster1.gicv4.mask-virtual-interrupt=1
458-C cluster1.gicv3.without-DS-support=1
459-C cluster1.max_32bit_el=-1
460-C cluster1.PA_SIZE=48
461EOF
462fi
Zelalemeb9c1bb2020-08-04 12:40:46 -0500463fi
Federico Recanatiedf25d92022-03-02 20:54:19 +0100464
465# 48bit PA size: in order to access memory in high address ranges the
466# model must declare and the interconnect has to be configured to
467# support such address width.
468if [ "$pa_size" = "48" ]; then
469cat <<EOF >>"$model_param_file"
470-C bp.dram_size=4000000
471-C cci550.addr_width=48
472EOF
473fi