mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-04-20 23:41:08 +00:00
Add variables for setting the Major and Minor version of the ARM Instruction Set Architecture, and add those variables in the various places needed for the FVP Base virtual machine to run with those instructions. Signed-off-by: Jon Mason <jon.mason@arm.com>
76 lines
3.2 KiB
Plaintext
76 lines
3.2 KiB
Plaintext
# Configuration for Armv8-A Base Platform FVP
|
|
|
|
#@TYPE: Machine
|
|
#@NAME: Armv8-A Base Platform FVP machine
|
|
#@DESCRIPTION: Machine configuration for Armv8-A Base Platform FVP model
|
|
|
|
require conf/machine/include/arm/arch-armv8-5a.inc
|
|
|
|
# Set variables here to make it easier to change Instruction Set Architectures
|
|
# on the FVP Base machine, which should make it easier to test both the tunes
|
|
# and the virtual hardware. These variables are set via the DEFAULT_TUNE
|
|
ARM_ISA_MAJOR = "${@int(d.getVar('ARMPKGARCH').split('v')[1][0])}"
|
|
ARM_ISA_MINOR = "${@int(d.getVar('ARMPKGARCH')[d.getVar('ARMPKGARCH').find('-')+1]) if '-' in d.getVar('ARMPKGARCH') else 0 }"
|
|
|
|
ARM_SYSTEMREADY_FIRMWARE = "trusted-firmware-a:do_deploy"
|
|
ARM_SYSTEMREADY_ACS_CONSOLE = "default"
|
|
EXTRA_IMAGEDEPENDS = "${ARM_SYSTEMREADY_FIRMWARE}"
|
|
|
|
MACHINE_FEATURES = "efi vfat"
|
|
|
|
IMAGE_NAME_SUFFIX = ""
|
|
IMAGE_FSTYPES += "wic"
|
|
WKS_FILE ?= "efi-disk.wks.in"
|
|
|
|
SERIAL_CONSOLES = "115200;ttyAMA0"
|
|
|
|
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
|
|
KERNEL_DTB_NAME = "fvp-base-revc.dtb"
|
|
KERNEL_DEVICETREE = "arm/${KERNEL_DTB_NAME}"
|
|
KERNEL_IMAGETYPE = "Image"
|
|
|
|
EXTRA_IMAGEDEPENDS += "trusted-firmware-a"
|
|
|
|
# FVP u-boot configuration
|
|
UBOOT_MACHINE = "vexpress_fvp_defconfig"
|
|
|
|
EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd-boot", "grub-efi", d)}"
|
|
|
|
# As this is a virtual target that will not be used in the real world there is
|
|
# no need for real SSH keys.
|
|
MACHINE_EXTRA_RRECOMMENDS += "ssh-pregen-hostkeys"
|
|
|
|
TEST_TARGET = "OEFVPTarget"
|
|
TEST_TARGET_IP = "127.0.0.1:2222"
|
|
DEFAULT_TEST_SUITES:append = " fvp_boot fvp_devices"
|
|
TEST_FVP_DEVICES ?= "rtc watchdog networking virtiorng cpu_hotplug"
|
|
|
|
FVP_PROVIDER ?= "fvp-base-a-aem-native"
|
|
FVP_EXE ?= "FVP_Base_RevC-2xAEMvA"
|
|
FVP_CONFIG[bp.ve_sysregs.exit_on_shutdown] ?= "1"
|
|
FVP_CONFIG[bp.virtio_net.enabled] ?= "1"
|
|
FVP_CONFIG[bp.virtio_net.hostbridge.userNetworking] ?= "1"
|
|
# Tell testimage to connect to localhost:2222, and forward that to SSH in the FVP.
|
|
FVP_CONFIG[bp.virtio_net.hostbridge.userNetPorts] = "2222=22"
|
|
FVP_CONFIG[bp.virtio_rng.enabled] ?= "1"
|
|
FVP_CONFIG[cache_state_modelled] ?= "0"
|
|
FVP_CONFIG[cluster0.check_memory_attributes] ?= "0"
|
|
FVP_CONFIG[cluster1.check_memory_attributes] ?= "0"
|
|
FVP_CONFIG[cluster0.stage12_tlb_size] ?= "1024"
|
|
FVP_CONFIG[cluster1.stage12_tlb_size] ?= "1024"
|
|
FVP_CONFIG[bp.secureflashloader.fname] ?= "bl1-fvp.bin"
|
|
FVP_CONFIG[bp.flashloader0.fname] ?= "fip-fvp.bin"
|
|
FVP_CONFIG[bp.virtioblockdevice.image_path] ?= "${IMAGE_NAME}.wic"
|
|
|
|
# FVP Base default is 8.0, so there is no has_arm_v8-0 for it. However, this is needed for every version after. So set this accordingly
|
|
FVP_EXTRA_ARGS = "--parameter cluster0.has_arm_v${ARM_ISA_MAJOR}-${ARM_ISA_MINOR}=1 --parameter cluster1.has_arm_v${ARM_ISA_MAJOR}-${ARM_ISA_MINOR}=1"
|
|
FVP_EXTRA_ARGS += "${@bb.utils.contains('TUNE_FEATURES', 'sve', '--parameter cluster0.has_sve=1 --parameter cluster1.has_sve=1', '', d)}"
|
|
FVP_EXTRA_ARGS += "${@bb.utils.contains('TUNE_FEATURES', 'sve2', '--parameter cluster0.sve.has_sve2=1 --parameter cluster1.sve.has_sve2=1', '', d)}"
|
|
|
|
FVP_CONSOLES[default] = "terminal_0"
|
|
FVP_TERMINALS[bp.terminal_0] ?= "Console"
|
|
FVP_TERMINALS[bp.terminal_1] ?= ""
|
|
FVP_TERMINALS[bp.terminal_2] ?= ""
|
|
FVP_TERMINALS[bp.terminal_3] ?= ""
|
|
FVP_CONFIG[bp.secure_memory] ?= "1"
|