Files
system76-coreboot/src/mainboard/emulation/qemu-aarch64/Kconfig
Alper Nebi Yasak 8cc1d79ed0 mainboard/qemu-aarch64: Get top of memory from device-tree blob
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>
2024-08-16 16:17:29 +00:00

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