1## SPDX-License-Identifier: GPL-2.0-only 2 3# To execute, do: 4# qemu-system-riscv64 -M virt -m 1024M -nographic -bios build/coreboot.rom \ 5# -drive if=pflash,file=build/coreboot.rom,format=raw 6 7if BOARD_EMULATION_QEMU_RISCV_RV64 8 9config BOARD_EMULATION_QEMU_RISCV 10 def_bool y 11 select ARCH_RISCV_RV64 12endif 13 14if BOARD_EMULATION_QEMU_RISCV_RV32 15 16config BOARD_EMULATION_QEMU_RISCV 17 def_bool y 18 select ARCH_RISCV_RV32 19endif 20 21if BOARD_EMULATION_QEMU_RISCV 22 23config BOARD_SPECIFIC_OPTIONS 24 def_bool y 25 select BOARD_ROMSIZE_KB_32768 26 select FLATTENED_DEVICE_TREE 27 select MISSING_BOARD_RESET 28 select DRIVERS_UART_8250MEM 29 select RISCV_HAS_OPENSBI 30 select ARCH_RISCV_S 31 select ARCH_RISCV_U 32 select ARCH_RISCV_PMP 33 select ARCH_BOOTBLOCK_RISCV 34 select ARCH_VERSTAGE_RISCV 35 select ARCH_ROMSTAGE_RISCV 36 select ARCH_RAMSTAGE_RISCV 37 select RISCV_USE_ARCH_TIMER 38 39config MEMLAYOUT_LD_FILE 40 string 41 default "src/mainboard/emulation/qemu-riscv/memlayout.ld" 42 43config MAINBOARD_DIR 44 default "emulation/qemu-riscv" 45 46config MAINBOARD_PART_NUMBER 47 default "QEMU RISCV" 48 49config MAX_CPUS 50 int 51 default 1 52 53config RISCV_ARCH 54 string 55 default "rv64imafd" if ARCH_RISCV_RV64 56 default "rv32im" if ARCH_RISCV_RV32 57 58config RISCV_ABI 59 string 60 default "lp64d" if ARCH_RISCV_RV64 61 default "ilp32" if ARCH_RISCV_RV32 62 63config RISCV_CODEMODEL 64 string 65 default "medany" if ARCH_RISCV_RV64 66 default "medany" if ARCH_RISCV_RV32 67 68config RISCV_WORKING_HARTID 69 int 70 default 0 71 72config DRAM_SIZE_MB 73 int 74 default 16383 75 help 76 Qemu maps MMIO at ALIGN_UP(top_of_mem, 16 * GiB) 77 To avoid confusing the dram probing algorithm, avoid large dram sizes (16G - 1m) 78 79config OPENSBI_PLATFORM 80 string 81 default "generic" 82 83config OPENSBI_TEXT_START 84 hex 85 default 0x80020000 86 87endif # BOARD_EMULATION_QEMU_RISCV 88