32-bit HIGHMEM and game console downstreams

Ash Logan ash at heyquark.com
Sat Sep 13 20:53:08 AEST 2025


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/


More information about the Linuxppc-dev mailing list