blob: fa931da87038c266f4e1cf66961acb8cf27adb7a [file] [log] [blame]
# Configuration for gem5 running on ARM64
#@TYPE: Machine
#@NAME: Gem5 arm64 machine
#@DESCRIPTION: Machine configuration for Gem5 arm64
TUNE_FEATURES = "aarch64"
require conf/machine/include/arm/arch-armv8a.inc
MACHINE_FEATURES = "optee pci"
KERNEL_IMAGETYPES = "Image vmlinux"
KERNEL_IMAGETYPE = "Image"
IMAGE_FSTYPES += "tar.bz2 ext4"
SERIAL_CONSOLES = "115200;ttyAMA0"
EXTRA_IMAGEDEPENDS += "virtual/gem5-bootloader"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_VERSION_linux-yocto ?= "5.4%"
# Uncomment the following if you need to build gem5 provided bootloader, else
# using standard bootloader by Linux aarch64
# Use gem5 provided bootloader
# PREFERRED_PROVIDER_virtual/gem5-bootloader = "gem5-aarch64-bootloader"
# use the dtb stored in the kernel recipe
# KERNEL_DEVICETREE ?= "gem5-arm64/armv8_gem5_v2_4cpu.dtb"
# Use Linux aarch64 boot wrapper with FDT support and generated
# dtb (gem5-aarch64-dtb.bb)
PREFERRED_PROVIDER_virtual/gem5-bootloader = "boot-wrapper-aarch64"
BOOT_WRAPPER_AARCH64_CMDLINE ?= "\
earlyprintk=pl011,0x1c090000 console=ttyAMA0 root=/dev/vda rw mem=1G \
"
# Use baremetal profile and axf file so dtb is in axf file
GEM5_RUN_PROFILE = "configs/example/arm/baremetal.py"
GEM5_RUN_KERNEL = "linux-system.axf"
GEM5_RUN_EXTRA = ""
GEM5_RUN_DTB = ""
GEM5_RUN_CMDLINE = ""
EXTRA_IMAGEDEPENDS += "gem5-aarch64-native"
# As this is a virtual target that will not be used in the real world there is
# no need for real SSH keys. Disable rng-tools (which takes too long to
# initialise) and install the pre-generated keys.
PACKAGECONFIG:remove:pn-openssh = "rng-tools"
MACHINE_EXTRA_RRECOMMENDS += "ssh-pregen-hostkeys"