diff --git a/config/FVP_Base_RevC-2xAEMvA-base.yaml b/config/FVP_Base_RevC-2xAEMvA-base.yaml index 89328ebc1a74a58a71f6d0d0947c168d7ca1c508..86d8cf9cb0f8d59504fd789fe43bec88a243a69e 100644 --- a/config/FVP_Base_RevC-2xAEMvA-base.yaml +++ b/config/FVP_Base_RevC-2xAEMvA-base.yaml @@ -58,13 +58,17 @@ run: -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? + # These SMMU registers are configuring the arch model with a personality. Features to implement/expose. The model defaults plus a few useful features. + # SMMUv3.2 -C pci.pci_smmuv3.mmu.SMMU_AIDR: 2 - -C pci.pci_smmuv3.mmu.SMMU_IDR0: 0x0046123B - -C pci.pci_smmuv3.mmu.SMMU_IDR1: 0x00600002 + # Enable ASID16, for sharing process address spaces with devices + -C pci.pci_smmuv3.mmu.SMMU_IDR0: 0x080FF6BF + -C pci.pci_smmuv3.mmu.SMMU_IDR1: 0x0CE73D20 + # Enable FWB, Small TT, Range invalidation, and BBM level 2. -C pci.pci_smmuv3.mmu.SMMU_IDR3: 0x1714 + # Enable 16kB pages, VAX. Bit[3] is res0. -C pci.pci_smmuv3.mmu.SMMU_IDR5: 0xFFFF0475 + # Enable secure side, SEL2, 2-bit SID -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 diff --git a/docker/Dockerfile.fvp b/docker/Dockerfile.fvp index 9b2026de62e69012a60ba8373649a48ffcbe6c73..d6cc9d2bdba7a1bedbb18856b5e775560a08765d 100644 --- a/docker/Dockerfile.fvp +++ b/docker/Dockerfile.fvp @@ -4,6 +4,11 @@ ARG BASE FROM ${BASE} +# Install packages that the FVP relies upon. +RUN apt-get install --assume-yes --no-install-recommends --option=debug::pkgProblemResolver=yes \ + libdbus-1-3 \ + libpulse0 + # Install FVP_Base_RevC-2xAEMvA. This is parameterized so the caller can easily # update the version and architecture for different builds, or even omit it by # providing the special name "none". diff --git a/test/test.py b/test/test.py index 78051d572a8029d909e771e43d8c1b002f919f48..edf93e67421a3312489868028b9ced6d602ce60a 100755 --- a/test/test.py +++ b/test/test.py @@ -183,7 +183,6 @@ def print_results(junit=None): def run(cmd, timeout=None, expect=0, capture=False): print(f'+ {cmd}') ret = subprocess.run(cmd, timeout=timeout, shell=True, - universal_newlines=True, stdout=subprocess.PIPE if capture else None, stderr=subprocess.STDOUT if capture else None) if ret.returncode != expect: @@ -288,7 +287,7 @@ def run_configs(configs, overlay=None, rtvarss=None): for result, stdout in pool.starmap(run_config, params): results.append(result) if stdout: - sys.stdout.write(stdout) + sys.stdout.write(stdout.decode()) def do_main(args):