talos-rpi5/patches/talos-rpi5/sbc-raspberrypi5/0002-Fix-serial-console-for-RPi5-CM5-debug-UART.patch
Mathias Beaulieu-Duncan 970d9685f1 Fix serial console for RPi5/CM5 debug UART (ttyAMA10)
The overlay was using console=ttyAMA0 (GPIO 14/15) but the RPi5 debug
UART is ttyAMA10 (JST connector between HDMI ports on Pi5, test pads
TP35/TP36 on CM5). Also adds earlycon for early boot output and disables
GPIO UART on Pi5 in config.txt to avoid U-Boot compatibility issues.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 19:47:18 -05:00

65 lines
2.3 KiB
Diff

From 7c1f75d724e54df5382d7900a0fdfac50f870043 Mon Sep 17 00:00:00 2001
From: Mathias Beaulieu-Duncan <mathias@svrnty.io>
Date: Fri, 13 Feb 2026 19:43:02 -0500
Subject: [PATCH] Fix serial console for RPi5/CM5 debug UART
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The overlay was using console=ttyAMA0 (GPIO 14/15 UART) but the RPi5
debug UART — the JST connector between HDMI ports on Pi5, or test pads
TP35/TP36 on CM5 — is ttyAMA10.
Changes:
- main.go: Use console=ttyAMA10,115200 (Pi5 debug UART, not GPIO UART0)
- main.go: Add earlycon=pl011,0x107d001000,115200n8 for early boot output
before the full PL011 driver initializes
- config.txt: Add [pi5] enable_uart=0 to match upstream and avoid U-Boot
compatibility issues (the debug UART is always active regardless)
The earlycon parameter uses the BCM2712 debug UART MMIO base address
(0x107d001000) to provide kernel output immediately after ExitBootServices,
bridging the gap between U-Boot handoff and full driver init.
---
installers/rpi5/src/config.txt | 7 ++++++-
installers/rpi5/src/main.go | 3 ++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/installers/rpi5/src/config.txt b/installers/rpi5/src/config.txt
index 1445d0e..7af461e 100644
--- a/installers/rpi5/src/config.txt
+++ b/installers/rpi5/src/config.txt
@@ -11,8 +11,13 @@ kernel=u-boot.bin
arm_64bit=1
# Run as fast as firmware / board allows.
arm_boost=1
-# Enable the primary/console UART.
+# Enable the primary/console UART (globally).
enable_uart=1
+# Disable UART on Pi5 to avoid U-Boot compatibility issue.
+# The debug UART (ttyAMA10) is always active regardless of this setting.
+[pi5]
+enable_uart=0
+[all]
# Disable Bluetooth.
dtoverlay=disable-bt
# Disable Wireless Lan.
diff --git a/installers/rpi5/src/main.go b/installers/rpi5/src/main.go
index 38cd824..fed3819 100644
--- a/installers/rpi5/src/main.go
+++ b/installers/rpi5/src/main.go
@@ -32,8 +32,9 @@ func (i *RpiInstaller) GetOptions(extra rpiOptions) (overlay.Options, error) {
return overlay.Options{
Name: "rpi5",
KernelArgs: []string{
+ "earlycon=pl011,0x107d001000,115200n8",
"console=tty0",
- "console=ttyAMA0,115200",
+ "console=ttyAMA10,115200",
"sysctl.kernel.kexec_load_disabled=1",
"talos.dashboard.disabled=1",
},
--
2.50.1 (Apple Git-155)