summaryrefslogtreecommitdiff
path: root/config/FVP_Base_RevC-2xAEMvA-base.yaml
blob: 89328ebc1a74a58a71f6d0d0947c168d7ca1c508 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# Copyright (c) 2022, Arm Limited.
# SPDX-License-Identifier: MIT

%YAML 1.2
---
description: >-
  Arm Architecture Envelope Model FVP configured with 8 CPUs across 2 clusters
  (2x4) and 4GB DRAM. By default doesn't explicitly enable any architecture
  features. Apply the architecture overlays at arch/v*.*.yaml to configure the
  FVP for a sepcific architecture revision.

run:
  name: FVP_Base_RevC-2xAEMvA

  rtvars:
    LOCAL_NET_PORT:
      type: string
      value: 8022

  params:
    # Basic dimensions for RAM and CPU.
    -C bp.dram_size: 4
    -C cluster0.NUM_CORES: 4
    -C cluster1.NUM_CORES: 4
    -C cluster0.PA_SIZE: 48
    -C cluster1.PA_SIZE: 48

    # Misc FVP controls.
    --stat: null
    -C bp.vis.disable_visualisation: 1
    -C bp.refcounter.non_arch_start_at_default: 1                     # Firmware is expected to enable the timer at boot time. However, turning this parameter on is a model-specific way of enabling the counter module out of reset.
    -C bp.refcounter.use_real_time: 0                                 # Update the Generic Timer counter at a real-time base frequency instead of simulator time
    -C bp.secure_memory: 1                                            # enable security checking by TZC-400
    -C bp.ve_sysregs.exit_on_shutdown: 1                              # SYS_CFG_SHUTDOWN exits simulation
    -C pctl.startup: 0.0.0.0                                          # Comma-separated list of cores (wildcards allowed) to be powered up at startup or system reset
    -C cluster0.clear_reg_top_eret: 2                                 # Behaviour of the upper 32-bits of the Xn registers when changing between AArch32 state and AArch64 state.  2: upper 32-bits set to 0 for a random selection of accessible registers.
    -C cluster1.clear_reg_top_eret: 2

    # Networking. By default use user-space networking, mapping port 22 in the
    # FVP to a user-specified port on the host (see rtvar:LOCAL_NET_PORT). This
    # enables ssh.
    -C bp.smsc_91c111.enabled: 1
    -C bp.hostbridge.userNetworking: 1
    -C bp.hostbridge.userNetPorts: ${rtvar:LOCAL_NET_PORT}=22

    # FVP Performance tweaks.
    -C cache_state_modelled: 0                                        # Disable d-cache and i-cache state for all components
    -C cluster0.stage12_tlb_size: 1024                                # Increase TLB size from default of 128
    -C cluster1.stage12_tlb_size: 1024
    -C cluster0.check_memory_attributes: 0                            # Disable checking that SW-set memory attributes conform to architecturally required constraints
    -C cluster1.check_memory_attributes: 0

    # GIC config options.
    -C cluster0.gicv3.cpuintf-mmap-access-level: 2                    # Allowed values are: 0-mmap access is supported for GICC,GICH,GICV registers. 1-mmap access is supported only for GICV registers. 2-mmap access is not supported.
    -C cluster1.gicv3.cpuintf-mmap-access-level: 2
    -C cluster0.gicv3.without-DS-support: 1                           # GICv3 CPU interfaces do not support disabling security in the distributor
    -C cluster1.gicv3.without-DS-support: 1
    -C cluster0.gicv4.mask-virtual-interrupt: 1                       # If true, virtual interrupts can be masked from being reported to virtual CPU interface by setting ICH_HCR_EL2.DVIM 1. No control otherwise.
    -C cluster1.gicv4.mask-virtual-interrupt: 1

    # These SMMU registers are configuring the arch model with a personality. Features to implement/expose.
    # What is this personality?
    -C pci.pci_smmuv3.mmu.SMMU_AIDR: 2
    -C pci.pci_smmuv3.mmu.SMMU_IDR0: 0x0046123B
    -C pci.pci_smmuv3.mmu.SMMU_IDR1: 0x00600002
    -C pci.pci_smmuv3.mmu.SMMU_IDR3: 0x1714
    -C pci.pci_smmuv3.mmu.SMMU_IDR5: 0xFFFF0475
    -C pci.pci_smmuv3.mmu.SMMU_S_IDR1: 0xA0000002
    -C pci.pci_smmuv3.mmu.SMMU_S_IDR2: 0
    -C pci.pci_smmuv3.mmu.SMMU_S_IDR3: 0

    # Enable virtio-rng. If Linux/DT is correctly configured, it can use this to
    # speed up RNG init.
    -C bp.virtio_rng.enabled: 1

  terminals:
    bp.terminal_0:
      friendly: term0
      port_regex: 'terminal_0: Listening for serial connection on port (\d+)'
      type: stdout

    bp.terminal_1:
      friendly: term1
      port_regex: 'terminal_1: Listening for serial connection on port (\d+)'
      type: stdout

    bp.terminal_2:
      friendly: term2
      port_regex: 'terminal_2: Listening for serial connection on port (\d+)'
      type: stdout

    bp.terminal_3:
      friendly: term3
      port_regex: 'terminal_3: Listening for serial connection on port (\d+)'
      type: stdout