32-bit HIGHMEM and game console downstreams

Ash Logan
2025-09-13T10:53:20Z

Hello!

LWN recently did a piece on 32-bit support in the kernel, and thought as
a user of 32-bit I would share my 2c. [1]

I maintain a downstream fork of 6.6 to support the Nintendo Wii U
hardware [2]. I'm also in regular contact with another doing the same
for the older Wii [3]. Linux on this era of game consoles is doing
pretty well :)

The Wii and Wii U are both 32-bit PowerPC machines with holes in their
memory map, which I think makes them interesting for this discussion.
Let me summarize the hardware and kernels involved:

Wii (2006)
- 1x PowerPC 750CL "Broadway" @ 729MHz
- 24MB "MEM1" + 64MB "MEM2" (non-contiguous - MEM2 starts 256MiB in)
- Kernel 4.19 (+ CIP patchset), dev has been working on forward-porting
all the drivers one major version at a time (he's currently up to 5.15
last I checked) + limited upstream support (hardware bringup, UART, not
many peripherals)

Wii U (2012)
- 3x PowerPC 750CL "Espresso" @ 1.2GHz
- 32MB "MEM1" + 2GB "MEM2" (also starts 256MiB in) + various small SRAMs
- Kernel 6.6 (+ LTS patchset), I also had a run at upstreaming some of
it in 2022 [4] and would eventually like to go again

Special mention to the GameCube, basically a slower Wii with only 24MB
direct RAM and 16MB of non-mapped "ARAM". Wii Linux has experimental
support for this where they use the ARAM as swap.

All of these are flatmem devices, as that's all the 32-bit PowerPC arch
supports, with the Wii U additionally enabling highmem for its 2GB of
RAM. Both devices have a small memory area (MEM1) with the "bulk" of RAM
starting at 256MiB. The Wii U in particular sounds like a candidate
system for densemem - I would like to read up more about this if I can,
I was only able to find seemingly unrelated information about CXL when
searching online.

There is a somewhat active userbase for both devices. I only have stats
for the Wii U side, but some rough nginx grepping for the last few days
- Sep 7th-Sep 12th - shows 39 downloads of distribution tarballs and
bootloader binaries in that period, not including torrents. In the past
2 weeks - Aug 29th-Sep 12th - 9 people joined the community Discord, 442
total. Anecdotally, the Wii Linux userbase appears at least twice as big
(based on their Discord activity).

Distribution-wise, we're supported by ArchPOWER [5], Adélie Linux [6],
and other distros. The Wii U's Espresso has CPU errata requiring a
patched compiler, and both distributions ship separate package repos for
this CPU. ArchPOWER requested I rebase onto 6.6 so they could have
firmware compression - previously the Wii U was on 4.19 - so there is
some demand for newer kernel features as well.

I know I'm talking about hobbyist use - and mostly downstream use at
that - and I do suspect that in the event of a wider 32-bit deprecation
we'd be fine on the final LTS, whatever that ends up being. Still, I
think the Wii and Wii U represent a decent number of 32-bit users, so I
wanted to add to the conversation here.

Thanks,
Ash

[1] https://lwn.net/Articles/1035727/
[2] https://linux-wiiu.org/
[3] https://wii-linux.org/
[4] https://lore.kernel.org/lkml/20221119113041.284419-1-ash@heyquark.com/
[5] https://archlinuxpower.org/
[6] https://www.adelielinux.org/