# LithosAnanke native (non-UEFI) boot config for Raspberry Pi 5 (BCM2712). # FABRIC-3.md §IV.3 item 6 -- see that section's own doc comment for the # research trail behind each line (confirmed against raspberrypi.com's # current config.txt reference and a real, working Pi 5 bare-metal # project's own checked-in config.txt, not assumed from general Pi # knowledge). # Load our own kernel image directly -- no UEFI, no Linux. kernel_2712.img # is the real filename Pi 5/500/CM5 firmware looks for first (its own # 16K-page-size build); naming our own image this exactly, rather than # falling back to kernel8.img, removes any ambiguity about which file the # firmware picks up. kernel=kernel_2712.img # Disable the firmware's Linux-compatible-image sanity check. Without # this, official docs describe it as checking for "a compatible Device # Tree file before attempting to boot" and warn that "older non-compatible # kernels would be loaded and then hang" -- documented specifically as the # bare-metal-development escape hatch. One real working Pi 5 bare-metal # project's own config.txt does NOT set this and still boots, so it may # not be strictly required for every non-Linux image; kept here anyway # since the official doc names this exact use case and there is no # hardware in hand yet to verify which behavior is actually gated. os_check=0 # Pin the exact devicetree explicitly rather than relying on the # firmware's own board-revision auto-selection (which would also resolve # to this file on real Pi 5 hardware, per general config.txt convention -- # explicit is certain, not just probably-correct). device_tree=bcm2712-rpi-5-b.dtb # Enable the dedicated debug UART (Pi 5's own JST connector, not the GPIO # 14/15 header pins). Not because serial capture hardware is set up for # this bring-up (that decision is HDMI-only, FABRIC-3.md §IV) -- this is # a firmware-side switch that costs nothing when nothing is listening, and # it is the only diagnostic channel that survives a framebuffer failure. # rpi5_uart_base() (rpi5_dtb.c) already exists and is currently uncalled; # this is the hook a UART-based fallback console would use if the mailbox # framebuffer driver's two documented unverified details turn out wrong on # real hardware. enable_uart=1 # Deliberately NOT set, researched but not included this pass: # dtoverlay=uart0 -- GPIO 14/15 header UART; needs a USB-serial # adapter this bring-up doesn't have (HDMI-only # decision). enable_uart=1 above covers the JST # debug UART instead, which needs no extra cable. # dtparam=pciex1 -- one real Pi 5 bare-metal project's own config.txt # comments this as "Required for RP1 access", which # would be surprising (RP1 is always-on in stock Pi # 5 boots) and is community-reported, not confirmed # against official docs. Not needed for this boot # (no RP1 access yet -- FABRIC-3.md §IV.3 item 5 is # still re-scoped, not implemented). Revisit if that # item's own real Broadcom-indirect PCIe work needs # it. # arm_64bit=1 -- researched and dropped: official docs state # "Models that only support a 64-bit kernel ignore # this flag" -- inert on Pi 5, not wrong to include, # just meaningless. The original item 6 wording # named this; corrected here rather than carried # forward.