08f5e342b0
--tls generates a self-signed cert (SANs: localhost, 127.0.0.1, LAN IP) so a headless box is reachable directly over HTTPS, which browsers treat as a secure context (required for cross-origin isolation). make web now defaults to TLS.
57 lines
1.8 KiB
Makefile
57 lines
1.8 KiB
Makefile
# Canonical firmware: clone https://github.com/crosspoint-reader/crosspoint-reader
|
|
# next to this repo, then build its PlatformIO `default` environment.
|
|
FIRMWARE_REPO ?= ../crosspoint-reader
|
|
FIRMWARE_DIR ?= $(FIRMWARE_REPO)/.pio/build/default
|
|
SD_SRC ?= $(FIRMWARE_REPO)/sdcard
|
|
QEMU_SRC ?= _scratch/qemu-src
|
|
QEMU_BIN = $(QEMU_SRC)/build/qemu-system-riscv32
|
|
QEMU_WASM_SRC ?= _scratch/qemu-wasm-src
|
|
WASM_OUT ?= dist/wasm
|
|
VARIANT ?= x3
|
|
|
|
.PHONY: firmware sdimage qemu qemu-wasm web web-test run run-upstream chip clean
|
|
|
|
firmware:
|
|
esptool --chip esp32c3 merge-bin -o flash.bin \
|
|
0x0 $(FIRMWARE_DIR)/bootloader.bin \
|
|
0x8000 $(FIRMWARE_DIR)/partitions.bin \
|
|
0x10000 $(FIRMWARE_DIR)/firmware.bin
|
|
truncate -s 16M flash.bin
|
|
cp $(FIRMWARE_DIR)/firmware.elf firmware.elf
|
|
|
|
# Local-disk implementation of the SD block interface.
|
|
sdimage:
|
|
scripts/mksd.sh $(SD_SRC) sd.img
|
|
|
|
qemu:
|
|
QEMU_SRC=$(QEMU_SRC) scripts/build-qemu.sh
|
|
|
|
qemu-wasm:
|
|
QEMU_WASM_SRC=$(QEMU_WASM_SRC) WASM_OUT=$(WASM_OUT) JOBS=2 scripts/build-qemu-wasm.sh
|
|
|
|
# Serve over HTTPS by default so headless/LAN access is cross-origin isolated. Override with WEB_TLS=.
|
|
WEB_TLS ?= --tls
|
|
web: qemu-wasm
|
|
python3 scripts/serve-web.py $(WEB_TLS)
|
|
|
|
web-test:
|
|
node scripts/test-web.mjs
|
|
|
|
# Select X4 with `make run VARIANT=x4`. Add `-display none` for headless.
|
|
run: qemu
|
|
$(QEMU_BIN) -machine xteink,variant=$(VARIANT) -L $(QEMU_SRC)/pc-bios \
|
|
-serial stdio -drive file=flash.bin,if=mtd,format=raw \
|
|
$(if $(wildcard sd.img),-drive file=sd.img,if=sd,format=raw)
|
|
|
|
# Unpatched release binary retained as the fast generic ESP32-C3 baseline.
|
|
run-upstream:
|
|
nix run .#run-upstream -- flash.bin
|
|
|
|
# Legacy Wokwi protocol model; retained as a small host-tested reference.
|
|
chip:
|
|
$(MAKE) -C chip
|
|
|
|
clean:
|
|
$(MAKE) -C chip clean
|
|
rm -f flash.bin flash16.bin firmware.elf
|