| ## SPDX-License-Identifier: GPL-2.0-only |
| |
| # To execute, do: |
| # qemu-system-riscv64 -M virt -m 1024M -nographic -bios build/coreboot.rom \ |
| # -drive if=pflash,file=build/coreboot.rom,format=raw |
| |
| if BOARD_EMULATION_QEMU_RISCV_RV64 |
| |
| config BOARD_EMULATION_QEMU_RISCV |
| def_bool y |
| select ARCH_RISCV_RV64 |
| endif |
| |
| if BOARD_EMULATION_QEMU_RISCV_RV32 |
| |
| config BOARD_EMULATION_QEMU_RISCV |
| def_bool y |
| select ARCH_RISCV_RV32 |
| endif |
| |
| if BOARD_EMULATION_QEMU_RISCV |
| |
| config BOARD_SPECIFIC_OPTIONS |
| def_bool y |
| select BOARD_ROMSIZE_KB_32768 |
| select MISSING_BOARD_RESET |
| select DRIVERS_UART_8250MEM |
| select RISCV_HAS_OPENSBI |
| select ARCH_RISCV_S |
| select ARCH_RISCV_U |
| select ARCH_RISCV_PMP |
| select ARCH_BOOTBLOCK_RISCV |
| select ARCH_VERSTAGE_RISCV |
| select ARCH_ROMSTAGE_RISCV |
| select ARCH_RAMSTAGE_RISCV |
| select RISCV_USE_ARCH_TIMER |
| |
| config MEMLAYOUT_LD_FILE |
| string |
| default "src/mainboard/emulation/qemu-riscv/memlayout.ld" |
| |
| config MAINBOARD_DIR |
| default "emulation/qemu-riscv" |
| |
| config MAINBOARD_PART_NUMBER |
| default "QEMU RISCV" |
| |
| config MAX_CPUS |
| int |
| default 1 |
| |
| config RISCV_ARCH |
| string |
| default "rv64imafd" if ARCH_RISCV_RV64 |
| default "rv32im" if ARCH_RISCV_RV32 |
| |
| config RISCV_ABI |
| string |
| default "lp64d" if ARCH_RISCV_RV64 |
| default "ilp32" if ARCH_RISCV_RV32 |
| |
| config RISCV_CODEMODEL |
| string |
| default "medany" if ARCH_RISCV_RV64 |
| default "medany" if ARCH_RISCV_RV32 |
| |
| config RISCV_WORKING_HARTID |
| int |
| default 0 |
| |
| config DRAM_SIZE_MB |
| int |
| default 16383 |
| help |
| Qemu maps MMIO at ALIGN_UP(top_of_mem, 16 * GiB) |
| To avoid confusing the dram probing algorithm, avoid large dram sizes (16G - 1m) |
| |
| config OPENSBI_PLATFORM |
| string |
| default "generic" |
| |
| config OPENSBI_TEXT_START |
| hex |
| default 0x80020000 |
| |
| endif # BOARD_EMULATION_QEMU_RISCV |