RC RANDOM CHAOS

Booting Linux on the Sega 32X — three CPUs, 320KB of RAM, no sync primitives

· via Hacker News

Original source

Linux on the Sega 32X. Who needs hardware synchronization primitives anyway?

Hacker News →

A firmware engineer continues a run of retro-console Linux ports — following an earlier Atari Jaguar effort — by bringing the kernel up on Sega’s ill-fated 1994 32X add-on. The stated motivation is practical: board bringup from bare silicon is a sought-after embedded-systems skill, and old, poorly documented hardware forces hands-on work across emulators, scanned datasheets, and reverse engineering. The author traces the habit back to age 12, when they pressured a phone vendor into releasing GPL kernel source and then patched together a leaked MediaTek tree to run Android 5.0 on an unsupported handset.

The 32X itself is a hard target. It stacks two Hitachi SH2 processors on top of the Genesis’s 68000, so getting anything to print over UART means orchestrating three CPUs through memory-mapped I/O — the primary SH2 runs the uploaded code while the secondary is parked, and the 32X has to ask the 68000 to drive the serial line it can’t reach directly. The build starts from Chilly Willy’s popular 32X devkit, extended with a small state machine to push characters out over UART.

The real wall is memory: 256KB plus 64KB is nowhere near enough to hold a kernel. The workaround leans on modern FPGA flash carts (from Krikkz) that emulate cartridge mappers — the bank-switching ICs, like Sega’s SVP or Nintendo’s SuperFX, that historically remapped extra ROM into the console’s addressable window. The tongue-in-cheek title nods to the SH2s’ lack of proper hardware synchronization primitives, the crux of coordinating the multi-CPU boot.

Read the full article

Continue reading at Hacker News →

This is an AI-generated summary. Read the original for the full story.