osdev4/qemu.sh

47 lines
959 B
Bash
Raw Normal View History

2021-09-01 17:38:16 +03:00
#!/bin/sh
set -e
if [ -z "${MACH}" ]; then
MACH=rpi3b
fi
2021-09-03 15:48:32 +03:00
if [ -z "$QEMU_BIN" ]; then
QEMU_BIN=qemu-system-aarch64
fi
2021-09-01 17:38:16 +03:00
ARCH=aarch64-unknown-none-${MACH}
KERNEL=target/${ARCH}/debug/kernel
2021-09-03 21:48:46 +03:00
QEMU_OPTS="-chardev stdio,wait=off,id=char0,mux=on \
2021-09-03 15:48:32 +03:00
-mon chardev=char0"
if [ "$QEMU_DINT" = 1 ]; then
QEMU_OPTS="$QEMU_OPTS -d int"
fi
2021-09-01 17:38:16 +03:00
case ${MACH} in
rpi3b)
QEMU_OPTS="$QEMU_OPTS \
-serial null \
2021-09-03 15:48:32 +03:00
-serial chardev:char0 \
-dtb bcm2837-rpi-3-b.dtb \
2021-09-01 17:38:16 +03:00
-M raspi3b"
;;
virt)
KERNEL=target/${ARCH}/debug/kernel.bin
QEMU_OPTS="$QEMU_OPTS \
2021-09-03 15:48:32 +03:00
-serial chardev:char0 \
-M virt,virtualization=on \
-cpu cortex-a57 \
-m 256"
2021-09-01 17:38:16 +03:00
esac
QEMU_OPTS="$QEMU_OPTS \
-kernel ${KERNEL} \
2021-09-03 15:48:32 +03:00
-display none \
2021-09-01 17:38:16 +03:00
-s"
./build.sh
2021-09-03 15:48:32 +03:00
${QEMU_BIN} ${QEMU_OPTS}