6. Debug console through GSC CCD and a SuzyQ, read-only while CCD is locked
Status
Accepted 2026-10-21.
Context
First boot needs a console that works before display or USB drivers do. Tested 2026-10-21 (ccd-gsc.md):
- A Fyra Labs SuzyQ in the Googlebook’s left USB-C port exposes the Ti50 as
18d1:5066, with Shell, AP, EC and FPMCU consoles. ccdstateshowsUARTAP+TX: the AP UART is bridged both ways while CCD is Locked.- The stock and mainline DTs both name
uart21(0x894000) asserial0. - Opening CCD (
gsctool -a -oplus power-button presses) needs developer mode, and it changes GSC state.
Decision
- Kernel console:
uart21is the first-boot console:stdout-path = "serial0:115200n8",console=ttyMSM0,115200. the build host reads it through the SuzyQ’s AP console. - Read only: agents run the SuzyQ consoles read-only. Before reading, run
stty raw -echoon the tty so nothing echoes back. On the GSC shell, agents send only read-only commands (version,ccdstate,help). Neverccd open/unlock/reset,wp,rebootor any flash command. - Opening CCD (for a full AP flash backup over
raiden_debug_spi) is an owner decision. It happens after unlocking and gets its own ADR. - the build host access: the
uaccessudev rule/etc/udev/rules.d/70-ti50-ccd.rules(owner choice over joininguucp).
Consequences
- The left USB-C port is taken by the SuzyQ during bring-up. Boot media and power go through the right port (a hub with PD pass-through) or the spare SSD.
- If the AP console stays silent under Linux, the fallbacks are ramoops (depthcharge always reserves it) and the panel.
Update 2026-10-21
- The DTS has the console now: it sets
stdout-path = "serial0:115200n8"(commit709212e). - Read-only still applies with our own kernel: the first-boot initramfs prints its captures, then reboots, and has no shell (Initramfs contents and pass criteria).
- Logs: raw AP-console logs go to
dumps/firstboot/. - Second channel: when the console is silent, the stock OS’s dropbox
SYSTEM_LAST_KMSGholds the failed boot’s last 64 KiB (stock pstore).