Trying to probe RAM space to figure out top of memory causes an exception on AArch64 virtual machines with recent versions of QEMU, but we temporarily enable exception handlers for that and use it to help detect if a RAM address is usable or not. However, QEMU docs recommend reading device information from the device-tree blob it provides us at the start of RAM. A previous commit adds a library function to parse device-tree blob that QEMU provides us. Use it to determine top of memory in AArch64 QEMU virtual machines, but still fall back to the RAM probing approach as a last-ditch effort. Change-Id: I4cc888b57cf98e0797ce7f9ddfa2eb34d14cd9c1 Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/80364 Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
59 lines
1.2 KiB
Plaintext
59 lines
1.2 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
# Emulation for QEMU 2.8 ARM Virtual Machine (alias of virt-2.8)
|
|
# https://wiki.qemu.org/Documentation/Platforms/ARM
|
|
|
|
if BOARD_EMULATION_QEMU_AARCH64
|
|
|
|
config BOARD_SPECIFIC_OPTIONS
|
|
def_bool y
|
|
select ARCH_BOOTBLOCK_ARMV8_64
|
|
select ARCH_VERSTAGE_ARMV8_64
|
|
select ARCH_ROMSTAGE_ARMV8_64
|
|
select ARCH_RAMSTAGE_ARMV8_64
|
|
select FLATTENED_DEVICE_TREE
|
|
select ARM64_USE_ARCH_TIMER
|
|
select BOARD_ROMSIZE_KB_16384
|
|
select BOOTBLOCK_CUSTOM
|
|
select BOOT_DEVICE_NOT_SPI_FLASH
|
|
select DRIVERS_UART_PL011
|
|
select HAVE_LINEAR_FRAMEBUFFER
|
|
select MAINBOARD_FORCE_NATIVE_VGA_INIT
|
|
select MAINBOARD_HAS_NATIVE_VGA_INIT
|
|
select MISSING_BOARD_RESET
|
|
select ARM64_USE_ARM_TRUSTED_FIRMWARE
|
|
select PCI
|
|
|
|
config ECAM_MMCONF_BASE_ADDRESS
|
|
default 0x4010000000
|
|
|
|
config ECAM_MMCONF_BUS_NUMBER
|
|
default 256
|
|
|
|
config PCI_IOBASE
|
|
default 0x3eff0000
|
|
|
|
config MEMLAYOUT_LD_FILE
|
|
string
|
|
default "src/mainboard/emulation/qemu-aarch64/memlayout.ld"
|
|
|
|
config MAINBOARD_DIR
|
|
default "emulation/qemu-aarch64"
|
|
|
|
config MAINBOARD_PART_NUMBER
|
|
default "QEMU AArch64"
|
|
|
|
config MAX_CPUS
|
|
int
|
|
default 2
|
|
|
|
config MAINBOARD_VENDOR
|
|
string
|
|
default "QEMU"
|
|
|
|
config DRAM_SIZE_MB
|
|
int
|
|
default 261120 # The maximum dram size is 255GiB.
|
|
|
|
endif # BOARD_EMULATION_QEMU_AARCH64
|