Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 1 | # |
Saul Romero | 82bcfb0 | 2023-06-27 16:24:13 +0100 | [diff] [blame] | 2 | # Copyright (c) 2019-2023, Arm Limited. All rights reserved. |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 3 | # |
| 4 | # SPDX-License-Identifier: BSD-3-Clause |
| 5 | # |
| 6 | |
| 7 | # This file contains common model controls and parameters across *ALL* FVP |
| 8 | # models. |
| 9 | |
| 10 | default_var pctl_startup 0.0.0.0 |
| 11 | default_var quantum 1000 |
Zelalem | eb9c1bb | 2020-08-04 12:40:46 -0500 | [diff] [blame] | 12 | default_var data_instance cluster0.cpu0 |
| 13 | default_var cache_state_modelled 1 |
| 14 | default_var print_stat 1 |
Manish V Badarkhe | 970bc18 | 2021-07-19 10:28:12 +0100 | [diff] [blame] | 15 | # 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. |
| 19 | default_var etm_present 0 |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 20 | |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 21 | reset_var has_bl1 |
| 22 | reset_var has_fip |
| 23 | reset_var preload_bl33 |
| 24 | reset_var reset_to_bl31 |
| 25 | reset_var reset_to_spmin |
| 26 | reset_var secure_memory |
| 27 | reset_var secure_ram_fill |
Javier Almansa Sobrino | e836318 | 2020-11-10 16:40:53 +0000 | [diff] [blame] | 28 | reset_var wait_debugger |
laurenw-arm | afdc3bc | 2022-09-14 15:31:42 -0500 | [diff] [blame] | 29 | reset_var cluster_0_num_cores |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 30 | |
| 31 | |
| 32 | if [ "$bl2_at_el3" ]; then |
| 33 | has_fip=1 |
Manish V Badarkhe | ea3e094 | 2021-03-05 11:51:48 +0000 | [diff] [blame] | 34 | elif [ "$fip_as_gpt" ]; then |
| 35 | has_bl1=1 |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 36 | elif [ -z "$reset_to_spmin" -a -z "$reset_to_bl31" ]; then |
| 37 | has_bl1=1 |
| 38 | has_fip=1 |
| 39 | fi |
| 40 | |
| 41 | cat <<EOF >"$model_param_file" |
| 42 | |
| 43 | -C bp.ve_sysregs.exit_on_shutdown=1 |
| 44 | -C pctl.startup=$pctl_startup |
| 45 | |
Javier Almansa Sobrino | e836318 | 2020-11-10 16:40:53 +0000 | [diff] [blame] | 46 | ${wait_debugger+-S} |
| 47 | |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 48 | ${secure_memory+-C bp.secure_memory=$secure_memory} |
| 49 | ${cache_state_modelled+-C cache_state_modelled=$cache_state_modelled} |
Harrison Mutai | 386a98b | 2022-09-01 16:20:58 +0100 | [diff] [blame] | 50 | ${use_pchannel_for_threads+-C pctl.use_pchannel_for_threads=$use_pchannel_for_threads} |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 51 | |
| 52 | ${secure_ram_fill+-C bp.secureSRAM.fill1=0x00000000} |
| 53 | ${secure_ram_fill+-C bp.secureSRAM.fill2=0x00000000} |
| 54 | |
Zelalem | eb9c1bb | 2020-08-04 12:40:46 -0500 | [diff] [blame] | 55 | ${bl2_at_el3+--data ${data_instance}=$bl2_bin@${bl2_addr:?}} |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 56 | |
laurenw-arm | afdc3bc | 2022-09-14 15:31:42 -0500 | [diff] [blame] | 57 | ${cluster_0_num_cores+-C cluster0.NUM_CORES=$cluster_0_num_cores} |
| 58 | |
Zelalem | eb9c1bb | 2020-08-04 12:40:46 -0500 | [diff] [blame] | 59 | ${reset_to_bl31+--data ${data_instance}=$bl31_bin@${bl31_addr:?}} |
| 60 | ${preload_bl33+--data ${data_instance}=$preload_bl33_bin@${bl33_addr:?}} |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 61 | |
Zelalem | eb9c1bb | 2020-08-04 12:40:46 -0500 | [diff] [blame] | 62 | ${reset_to_spmin+--data ${data_instance}=$bl32_bin@${bl32_addr:?}} |
| 63 | ${reset_to_spmin+--data ${data_instance}=$uboot_bin@${bl33_addr:?}} |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 64 | |
Zelalem | eb9c1bb | 2020-08-04 12:40:46 -0500 | [diff] [blame] | 65 | ${memprotect+--data ${data_instance}=$memprotect@${memprotect_addr:?}} |
| 66 | ${romlib_bin+--data ${data_instance}=$romlib_bin@${romlib_addr:?}} |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 67 | |
| 68 | ${has_bl1+-C bp.secureflashloader.fname=$bl1_bin} |
| 69 | ${has_fip+-C bp.flashloader0.fname=$fip_bin} |
Manish V Badarkhe | ea3e094 | 2021-03-05 11:51:48 +0000 | [diff] [blame] | 70 | ${fip_as_gpt+-C bp.flashloader0.fname=$fip_gpt_bin} |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 71 | |
Zelalem | eb9c1bb | 2020-08-04 12:40:46 -0500 | [diff] [blame] | 72 | ${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 Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 75 | |
Manish Pandey | 3c43558 | 2020-07-15 12:14:26 +0100 | [diff] [blame] | 76 | ${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 Deprez | 0b83409 | 2020-08-21 08:36:01 +0200 | [diff] [blame] | 80 | ${sp3_pkg+--data ${data_instance}=$sp3_pkg@${sp3_addr:?}} |
Olivier Deprez | dd9ed33 | 2021-07-02 12:07:17 +0200 | [diff] [blame] | 81 | ${sp4_pkg+--data ${data_instance}=$sp4_pkg@${sp4_addr:?}} |
Manish Pandey | 3c43558 | 2020-07-15 12:14:26 +0100 | [diff] [blame] | 82 | |
Zelalem | eb9c1bb | 2020-08-04 12:40:46 -0500 | [diff] [blame] | 83 | ${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 Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 86 | |
| 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} |
Zelalem | eb9c1bb | 2020-08-04 12:40:46 -0500 | [diff] [blame] | 92 | ${uart1_out+-C bp.pl011_uart1.out_file=$uart1_out} |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 93 | |
| 94 | ${no_quantum--Q ${quantum}} |
| 95 | |
| 96 | EOF |
Zelalem | eb9c1bb | 2020-08-04 12:40:46 -0500 | [diff] [blame] | 97 | |
Leonardo Sandoval | ce3783b | 2021-03-05 12:04:02 -0600 | [diff] [blame] | 98 | # OpenCI uses LAVA to launch models, the latter requiring (uart) unbuffered output, |
| 99 | # otherwise these may get full and models hang. |
Madhukar Pappireddy | 21a5e67 | 2021-03-08 17:49:45 -0600 | [diff] [blame] | 100 | if ! is_arm_jenkins_env && not_upon "$local_ci"; then |
Ryan Harkin | b12eb38 | 2020-12-16 10:53:02 +0000 | [diff] [blame] | 101 | cat <<EOF >>"$model_param_file" |
Ryan Harkin | b12eb38 | 2020-12-16 10:53:02 +0000 | [diff] [blame] | 102 | -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 Harkin | b12eb38 | 2020-12-16 10:53:02 +0000 | [diff] [blame] | 106 | EOF |
| 107 | fi |
| 108 | |
Zelalem | eb9c1bb | 2020-08-04 12:40:46 -0500 | [diff] [blame] | 109 | if [ "$print_stat" = "1" ]; then |
| 110 | cat <<EOF >>"$model_param_file" |
| 111 | --stat |
| 112 | EOF |
| 113 | fi |
Alexei Fedorov | b7d8ca1 | 2020-12-18 17:08:08 +0000 | [diff] [blame] | 114 | |
Leonardo Sandoval | 4b29772 | 2021-05-27 18:00:37 -0500 | [diff] [blame] | 115 | # TFTF: There are two scenarions where simulation should be shutdown |
Paul Sokolovsky | c18c41d | 2023-02-23 14:04:44 +0700 | [diff] [blame] | 116 | # 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 Romero | 82bcfb0 | 2023-06-27 16:24:13 +0100 | [diff] [blame] | 121 | if echo "$RUN_CONFIG" | grep -Eiq 'tftf|spm'; then |
Paul Sokolovsky | c18c41d | 2023-02-23 14:04:44 +0700 | [diff] [blame] | 122 | 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 Fedorov | b7d8ca1 | 2020-12-18 17:08:08 +0000 | [diff] [blame] | 128 | cat <<EOF >>"$model_param_file" |
| 129 | -C bp.pl011_uart0.shutdown_on_eot=1 |
| 130 | EOF |
Leonardo Sandoval | 4b29772 | 2021-05-27 18:00:37 -0500 | [diff] [blame] | 131 | fi |
Alexei Fedorov | b7d8ca1 | 2020-12-18 17:08:08 +0000 | [diff] [blame] | 132 | fi |