From 3d037b42b4a23b8c2b87eac8a4d1ad59d7b674fa Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Thu, 23 May 2019 07:41:20 +0000 Subject: [PATCH] scripts/qemustart: add riscv64 support --- scripts/qemustart | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/scripts/qemustart b/scripts/qemustart index dbb8deddaf..c860ab88d6 100755 --- a/scripts/qemustart +++ b/scripts/qemustart @@ -248,6 +248,41 @@ start_qemu_malta() { "${o_qemu_extra[@]}" } +start_qemu_riscv() { + local is64 + local qemu_exe + local rootfs="$o_rootfs" + local kernel="$o_kernel" + local mach="${o_mach:-virt}" + + # o_subtarget can be xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, etc.. + is64="$(echo $o_subtarget | grep -o 64)" + qemu_exe="qemu-system-riscv$is64" + + [ -n "$kernel" ] || kernel="$o_bindir/openwrt-riscv64-${o_subtarget%-*}-vmlinux-initramfs.elf" + + [ -z "$rootfs" ] || { + if [ ! -f "$rootfs" -a -s "$rootfs.gz" ]; then + gunzip "$rootfs.gz" + fi + o_qemu_extra+=( \ + "-drive" "file=$rootfs,format=raw" \ + "-append" "root=/dev/sda rootwait" \ + ) + } + + [ -z "$o_network" ] || { + o_qemu_extra+=( + -netdev bridge,id=wan,br="$BR_WAN,helper=$HELPER" -device pcnet,netdev=wan,mac="$MAC_WAN" + -netdev bridge,id=lan,br="$BR_LAN,helper=$HELPER" -device pcnet,netdev=lan,mac="$MAC_LAN" + ) + } + + "$qemu_exe" -machine "$mach" -nographic \ + -kernel "$kernel" \ + "${o_qemu_extra[@]}" +} + start_qemu_x86() { local qemu_exe local kernel="$o_kernel" @@ -327,6 +362,7 @@ start_qemu() { case "$o_target" in armvirt) start_qemu_armvirt ;; malta) start_qemu_malta ;; + riscv) start_qemu_riscv ;; x86) start_qemu_x86 ;; *) __errmsg "target $o_target is not supported yet" -- 2.30.2