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"
|
2021-09-03 10:53:20 +03:00
|
|
|
|
|
|
|
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 \
|
2021-09-03 10:53:20 +03:00
|
|
|
-dtb bcm2837-rpi-3-b.dtb \
|
2021-09-01 17:38:16 +03:00
|
|
|
-M raspi3b"
|
|
|
|
;;
|
2021-09-03 10:53:20 +03:00
|
|
|
virt)
|
|
|
|
KERNEL=target/${ARCH}/debug/kernel.bin
|
|
|
|
QEMU_OPTS="$QEMU_OPTS \
|
2021-09-03 15:48:32 +03:00
|
|
|
-serial chardev:char0 \
|
2021-09-03 10:53:20 +03:00
|
|
|
-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}
|