blob: 14ce8b8992c2b66dbd977fe6f4ad038a162125ae [file] [log] [blame]
Fathi Boudra422bf772019-12-02 11:10:16 +02001#
Saul Romero82bcfb02023-06-27 16:24:13 +01002# Copyright (c) 2019-2023, Arm Limited. All rights reserved.
Fathi Boudra422bf772019-12-02 11:10:16 +02003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6
7# This file contains common model controls and parameters across *ALL* FVP
8# models.
9
10default_var pctl_startup 0.0.0.0
11default_var quantum 1000
Zelalemeb9c1bb2020-08-04 12:40:46 -050012default_var data_instance cluster0.cpu0
13default_var cache_state_modelled 1
14default_var print_stat 1
Manish V Badarkhe970bc182021-07-19 10:28:12 +010015# Trace unit functionally works in FVP model by enabling ETM/ETE trace
16# unit along with its plugin.
17# Hence disabled ETM by default, and enable it along with its plugin whenever
18# needed.
19default_var etm_present 0
Fathi Boudra422bf772019-12-02 11:10:16 +020020
Fathi Boudra422bf772019-12-02 11:10:16 +020021reset_var has_bl1
22reset_var has_fip
23reset_var preload_bl33
24reset_var reset_to_bl31
25reset_var reset_to_spmin
26reset_var secure_memory
27reset_var secure_ram_fill
Javier Almansa Sobrinoe8363182020-11-10 16:40:53 +000028reset_var wait_debugger
laurenw-armafdc3bc2022-09-14 15:31:42 -050029reset_var cluster_0_num_cores
Fathi Boudra422bf772019-12-02 11:10:16 +020030
31
32if [ "$bl2_at_el3" ]; then
33 has_fip=1
Manish V Badarkheea3e0942021-03-05 11:51:48 +000034elif [ "$fip_as_gpt" ]; then
35 has_bl1=1
Fathi Boudra422bf772019-12-02 11:10:16 +020036elif [ -z "$reset_to_spmin" -a -z "$reset_to_bl31" ]; then
37 has_bl1=1
38 has_fip=1
39fi
40
41cat <<EOF >"$model_param_file"
42
43-C bp.ve_sysregs.exit_on_shutdown=1
44-C pctl.startup=$pctl_startup
45
Javier Almansa Sobrinoe8363182020-11-10 16:40:53 +000046${wait_debugger+-S}
47
Fathi Boudra422bf772019-12-02 11:10:16 +020048${secure_memory+-C bp.secure_memory=$secure_memory}
49${cache_state_modelled+-C cache_state_modelled=$cache_state_modelled}
Harrison Mutai386a98b2022-09-01 16:20:58 +010050${use_pchannel_for_threads+-C pctl.use_pchannel_for_threads=$use_pchannel_for_threads}
Fathi Boudra422bf772019-12-02 11:10:16 +020051
52${secure_ram_fill+-C bp.secureSRAM.fill1=0x00000000}
53${secure_ram_fill+-C bp.secureSRAM.fill2=0x00000000}
54
Zelalemeb9c1bb2020-08-04 12:40:46 -050055${bl2_at_el3+--data ${data_instance}=$bl2_bin@${bl2_addr:?}}
Fathi Boudra422bf772019-12-02 11:10:16 +020056
laurenw-armafdc3bc2022-09-14 15:31:42 -050057${cluster_0_num_cores+-C cluster0.NUM_CORES=$cluster_0_num_cores}
58
Zelalemeb9c1bb2020-08-04 12:40:46 -050059${reset_to_bl31+--data ${data_instance}=$bl31_bin@${bl31_addr:?}}
60${preload_bl33+--data ${data_instance}=$preload_bl33_bin@${bl33_addr:?}}
Fathi Boudra422bf772019-12-02 11:10:16 +020061
Zelalemeb9c1bb2020-08-04 12:40:46 -050062${reset_to_spmin+--data ${data_instance}=$bl32_bin@${bl32_addr:?}}
63${reset_to_spmin+--data ${data_instance}=$uboot_bin@${bl33_addr:?}}
Fathi Boudra422bf772019-12-02 11:10:16 +020064
Zelalemeb9c1bb2020-08-04 12:40:46 -050065${memprotect+--data ${data_instance}=$memprotect@${memprotect_addr:?}}
66${romlib_bin+--data ${data_instance}=$romlib_bin@${romlib_addr:?}}
Fathi Boudra422bf772019-12-02 11:10:16 +020067
68${has_bl1+-C bp.secureflashloader.fname=$bl1_bin}
69${has_fip+-C bp.flashloader0.fname=$fip_bin}
Manish V Badarkheea3e0942021-03-05 11:51:48 +000070${fip_as_gpt+-C bp.flashloader0.fname=$fip_gpt_bin}
Fathi Boudra422bf772019-12-02 11:10:16 +020071
Zelalemeb9c1bb2020-08-04 12:40:46 -050072${dtb_bin+--data ${data_instance}=$dtb_bin@${dtb_addr:?}}
73${kernel_bin+--data ${data_instance}=$kernel_bin@${kernel_addr:?}}
74${initrd_bin+--data ${data_instance}=$initrd_bin@${initrd_addr:?}}
Fathi Boudra422bf772019-12-02 11:10:16 +020075
Manish Pandey3c435582020-07-15 12:14:26 +010076${spm_bin+--data ${data_instance}=$spm_bin@${spm_addr:?}}
77${spmc_manifest+--data ${data_instance}=$spmc_manifest@${spmc_manifest_addr:?}}
78${sp1_pkg+--data ${data_instance}=$sp1_pkg@${sp1_addr:?}}
79${sp2_pkg+--data ${data_instance}=$sp2_pkg@${sp2_addr:?}}
Olivier Deprez0b834092020-08-21 08:36:01 +020080${sp3_pkg+--data ${data_instance}=$sp3_pkg@${sp3_addr:?}}
Olivier Deprezdd9ed332021-07-02 12:07:17 +020081${sp4_pkg+--data ${data_instance}=$sp4_pkg@${sp4_addr:?}}
Manish Pandey3c435582020-07-15 12:14:26 +010082
Zelalemeb9c1bb2020-08-04 12:40:46 -050083${ns_bl1u_bin+--data ${data_instance}=$ns_bl1u_bin@$ns_bl1u_addr}
84${fwu_fip_bin+--data ${data_instance}=$fwu_fip_bin@$fwu_fip_addr}
85${backup_fip_bin+--data ${data_instance}=$backup_fip_bin@$backup_fip_addr}
Fathi Boudra422bf772019-12-02 11:10:16 +020086
87${flashloader1_bin+-C bp.flashloader1.fname=$flashloader1_bin}
88${rootfs_bin+-C bp.virtioblockdevice.image_path=$rootfs_bin}
89
90${uart0_out+-C bp.pl011_uart0.out_file=$uart0_out}
91${uart0_out+-C bp.pl011_uart0.unbuffered_output=1}
Zelalemeb9c1bb2020-08-04 12:40:46 -050092${uart1_out+-C bp.pl011_uart1.out_file=$uart1_out}
Fathi Boudra422bf772019-12-02 11:10:16 +020093
94${no_quantum--Q ${quantum}}
95
96EOF
Zelalemeb9c1bb2020-08-04 12:40:46 -050097
Leonardo Sandovalce3783b2021-03-05 12:04:02 -060098# OpenCI uses LAVA to launch models, the latter requiring (uart) unbuffered output,
99# otherwise these may get full and models hang.
Madhukar Pappireddy21a5e672021-03-08 17:49:45 -0600100if ! is_arm_jenkins_env && not_upon "$local_ci"; then
Ryan Harkinb12eb382020-12-16 10:53:02 +0000101 cat <<EOF >>"$model_param_file"
Ryan Harkinb12eb382020-12-16 10:53:02 +0000102-C bp.pl011_uart0.unbuffered_output=1
103-C bp.pl011_uart1.unbuffered_output=1
104-C bp.pl011_uart2.unbuffered_output=1
105-C bp.pl011_uart3.unbuffered_output=1
Ryan Harkinb12eb382020-12-16 10:53:02 +0000106EOF
107fi
108
Zelalemeb9c1bb2020-08-04 12:40:46 -0500109if [ "$print_stat" = "1" ]; then
110 cat <<EOF >>"$model_param_file"
111--stat
112EOF
113fi
Alexei Fedorovb7d8ca12020-12-18 17:08:08 +0000114
Leonardo Sandoval4b297722021-05-27 18:00:37 -0500115# TFTF: There are two scenarions where simulation should be shutdown
Paul Sokolovskyc18c41d2023-02-23 14:04:44 +0700116# when a EOT (ASCII 4) char is transmitted: on local or some OpenCI
117# runs. In the latter case, shutdown is required for code coverage
118# runs, so that FVP trace log was properly dumped (and parsed by LAVA).
119# Don't use it for other OpenCI runs, as it may lead to race condition
120# with LAVA's capturing of FVP output.
Saul Romero82bcfb02023-06-27 16:24:13 +0100121if echo "$RUN_CONFIG" | grep -Eiq 'tftf|spm'; then
Paul Sokolovskyc18c41d2023-02-23 14:04:44 +0700122 is_arm_env=0
123 if is_arm_jenkins_env; then
124 is_arm_env=1
125 fi
126
127 if [ "$is_arm_env" == "0" -a "$COVERAGE_ON" == "1" ] || upon "$local_ci"; then
Alexei Fedorovb7d8ca12020-12-18 17:08:08 +0000128 cat <<EOF >>"$model_param_file"
129-C bp.pl011_uart0.shutdown_on_eot=1
130EOF
Leonardo Sandoval4b297722021-05-27 18:00:37 -0500131 fi
Alexei Fedorovb7d8ca12020-12-18 17:08:08 +0000132fi