Two more defects making Pi 3 boot silently: 1. The kernel8.img that ships in the Pi OS armhf boot partition is a gzip-compressed PE-COFF Image (first 4 bytes 0x1f8b0800). QEMU's `-kernel` does NOT auto-decompress; it tries to execute the gzip header as ARM code and the CPU faults immediately. Result: zero bytes on ttyAMA0, simulator looks dead. Switch the asset_id to a pre-decompressed kernel (24 MiB raw vs 9.7 MiB gzipped) so QEMU gets a valid Image to boot. 2. Even with a real kernel, the original cmdline `console=ttyAMA0` alone wasn't enough — the kernel can't initialise the BCM2837 PL011 UART early enough for `printk` to reach the serial console under QEMU's bare-metal boot (no Pi firmware to set it up beforehand). Adding `earlycon=pl011,mmio32,0x3f201000` makes the kernel program the UART itself in the early boot path. Verified: boot output starts streaming within 100 ms of QEMU launch instead of never. The cmdline also locks the baud rate at 115200 to match the agetty drop-in created by scripts/configure-pi3-autologin.sh. |
||
|---|---|---|
| .. | ||
| app | ||
| scripts | ||
| sdk | ||
| tests | ||
| .env.example | ||
| Dockerfile | ||
| debug_qemu.py | ||
| mcp_server.py | ||
| mcp_sse_server.py | ||
| requirements.txt | ||