temp2 === qemu ``` #!/bin/bash rm -rf build mkdir build install cd build ../configure --prefix=`pwd`/../install --python=/usr/bin/python2.7 --target-list=riscv64-linux-user,riscv64-softmmu,riscv32-linux-user,riscv32-softmmu ``` ``` #!/bin/bash QEMU_SYSTEM=qemu-system-riscv64 MACHINE="virt" DTB=xxx.dtb BBL_PATH=bbl set -x if [[ $1 == 'gdb' ]]; then gdb --args \ ${QEMU_SYSTEM} \ -machine ${MACHINE} \ -nographic \ -m 1G elif [[ $1 == 'free' ]]; then ${QEMU_SYSTEM} \ -kernel ${BBL_PATH} \ -machine ${MACHINE} \ -dtb ${DTB} \ -nographic \ -m 1G \ -smp 2 \ -append "console=ttyS0" \ -netdev type=user,id=net0,hostfwd=tcp::5588-:22 \ -device virtio-net-device,netdev=net0 else ${QEMU_SYSTEM} \ -kernel ${BBL_PATH} \ -machine ${MACHINE} \ -dtb ${DTB} \ -nographic \ -m 1G \ -smp 1 \ -append "console=ttyS0" \ -netdev type=user,id=net0,hostfwd=tcp::5588-:22 \ -device virtio-net-device,netdev=net0 \ -gdb tcp::16977 \ -S fi ``` ``` #!/bin/bash riscv64-linux-gdb -x gdbrc # gdbrc # set confirm off set pagination off define filevm file /vmlinux end define filebbl file bbl end filebbl #filevm add-symbol-file vmlinux 0xffffffe0016bfe18 target remote :16977 ``` For opensbi use ``` #!/bin/bash QEMU_SYSTEM=./qemu-system-riscv64 MACHINE="virt" FW_JUMP=/opensbi/build/platform/qemu/virt/firmware/fw_jump.elf FW_PAYLOAD=/opensbi/build/platform/qemu/virt/firmware/fw_payload.elf IMAGE=/linux/arch/riscv/boot/Image ROOTFS=/buildroot-2019.05/output/images/rootfs.ext4 set -x case "$1" in "payload") ${QEMU_SYSTEM} \ -M ${MACHINE} \ -nographic \ -m 1G \ -kernel ${FW_PAYLOAD} \ -drive file=${ROOTFS},format=raw,id=hd0 \ -device virtio-blk-device,drive=hd0 \ -append "root=/dev/vda rw console=ttyS0" ;; "jump") ${QEMU_SYSTEM} \ -M ${MACHINE} \ -nographic \ -m 1G \ -kernel ${FW_JUMP} \ -device loader,file=${IMAGE},addr=0x80200000 \ -drive file=${ROOTFS},format=raw,id=hd0 \ -device virtio-blk-device,drive=hd0 \ -append "root=/dev/vda rw console=ttyS0" ;; "gdb") ${QEMU_SYSTEM} \ -M ${MACHINE} \ -nographic \ -m 1G \ -kernel ${FW_PAYLOAD} \ -drive file=${ROOTFS},format=raw,id=hd0 \ -device virtio-blk-device,drive=hd0 \ -append "root=/dev/vda rw console=ttyS0" \ -gdb tcp::16977 \ -S ;; "debug") gdb --args ${QEMU_SYSTEM} -M ${MACHINE} -nographic -m 1G ;; *) echo "..." ;; esac # Network ''' -netdev type=user,id=net0,hostfwd=tcp::5588-:22 \ -device virtio-net-device,netdev=net0 \ ''' ```