# # SPDX-License-Identifier: BlueOak-1.0.0 # # Copyright (c) Berkus Decker # [tasks.kernel-binary] env = { "BINARY_FILE" = "${KERNEL_ELF}" } run_task = "custom-binary" [tasks.qemu] env = { "QEMU_RUNNER_OPTS" = "${QEMU_SERIAL_OPTS}", "TARGET_DTB" = "${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/targets/bcm2710-rpi-3-b-plus.dtb" } extend = "qemu-runner" [tasks.qemu-cb] disabled = true [tasks.qemu-gdb] env = { "QEMU_RUNNER_OPTS" = "${QEMU_SERIAL_OPTS} ${QEMU_GDB_OPTS}", "TARGET_DTB" = "${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/targets/bcm2710-rpi-3-b-plus.dtb" } extend = "qemu-runner" [tasks.zellij-nucleus] env = { "KERNEL_BIN" = "${KERNEL_BIN}" } run_task = "zellij-config" [tasks.zellij-cb] disabled = true [tasks.zellij-cb-gdb] disabled = true [tasks.gdb-config] script_runner = "@duckscript" script = [ ''' writefile ${GDB_CONNECT_FILE} "target extended-remote :5555\n" appendfile ${GDB_CONNECT_FILE} "break 0x80000\n" appendfile ${GDB_CONNECT_FILE} "continue\n" ''' ] # Problem: this eats STDIN! need to run in subshell or sth [tasks.gdb] dependencies = ["build", "kernel-binary", "gdb-config"] env = { "RUST_GDB" = "${GDB}" } script = [ "rust-gdb -x ${GDB_CONNECT_FILE} ${KERNEL_ELF}" ] [tasks.gdb-cb] disabled = true [tasks.install-nm] install_crate = { crate_name = "cargo-binutils", binary = "rust-nm", test_arg = ["--help"] } [tasks.install-rustfilt] install_crate = { crate_name = "rustfilt", binary = "rustfilt", test_arg = ["--help"] } [tasks.nm] dependencies = ["build", "kernel-binary", "install-nm", "install-rustfilt"] script = [ "${NM} -- ${KERNEL_ELF} | sort -k 1 | rustfilt" ] [tasks.sdcard] dependencies = ["build", "kernel-binary"] script_runner = "@duckscript" script = [ ''' kernelImage = set "kernel8.img" cp ${KERNEL_BIN} ${VOLUME}/${kernelImage} echo "Copied nucleus to ${VOLUME}/${kernelImage}" ''' ] [tasks.cb-eject] disabled = true [tasks.hopper] dependencies = ["build", "kernel-binary"] # The cmd line below causes a bug in hopper, see https://www.dropbox.com/s/zyw5mfx0bepcjb1/hopperv4-RAW-bug.mov?dl=0 #"hopperv4 --loader RAW --base-address 0x80000 --entrypoint 0x80000 --file-offset 0 --plugin arm --cpu aarch64 --variant generic --contains-code true --executable ${KERNEL_BIN}" script = [ "hopperv4 --loader ELF --executable ${KERNEL_ELF}" ]