Neutron targets a specific hardware and emulation environment. This page describes what is supported and what you need to run or develop the bootloader.

Supported Hardware

Raspberry Pi Zero 2W. The primary target. It uses a BCM2710A1 SoC (quad-core Cortex-A53, ARMv8-A). The GPU loads the ARM kernel image (e.g. kernel8.img) at physical address 0x80000. Neutron is built to run from that address and to use the BCM2837-style peripheral map (peripherals at base 0x3F000000).

Raspberry Pi 3B. Same SoC family (BCM2837, Cortex-A53) and same load address and peripheral layout. Neutron built for Zero 2W runs on Pi 3B without changes.

Other Raspberry Pi models (e.g. Pi 4, Pi 5) use different SoCs and memory maps. Neutron is not designed for those boards without porting work.

QEMU Emulation

Machine: raspi3b. Development and testing use QEMU’s Raspberry Pi 3B model:

  • qemu-system-aarch64 -machine raspi3b -cpu cortex-a53 -m 1G
  • The bootloader is passed as the kernel: -kernel bin/kernel8.img
  • The SD card is emulated with a raw disk image: -drive file=bin/sd.img,if=sd,format=raw
  • Serial I/O is typically wired to the host terminal: -serial mon:stdio

The raspi3b machine exposes the same peripheral base (0x3F000000) and key devices (PL011 UART, GPIO, mailbox, SDHOST) as the real hardware, so behaviour in QEMU is representative.

Do not use QEMU’s generic virt machine with the current Neutron codebase. Addresses and peripherals (e.g. UART at 0x09000000) do not match and the bootloader will not work as intended.

Toolchain

Neutron is built with an AArch64 cross-compiler. The Makefile defaults to the prefix aarch64-linux-gnu- (e.g. on Debian/Ubuntu: gcc-aarch64-linux-gnu, binutils-aarch64-linux-gnu). You can override with make CROSS=aarch64-none-elf- ... if you use the bare-metal toolchain instead.

Summary

EnvironmentStatusNotes
Raspberry Pi Zero 2WSupportedUse SD card with boot files and ATOM.BIN
Raspberry Pi 3BSupportedSame as Zero 2W
QEMU raspi3bSupportedKernel + SD image as above
QEMU virtNot supportedWrong memory map and peripherals
Other Raspberry PiNot supportedDifferent SoC and layout

For build and run steps, see Build Configuration.