Re: 32-bit HIGHMEM and game console downstreams

Ash Logan
2025-09-16T02:10:28Z

On 15/9/25 00:14, Segher Boessenkool wrote:

Hello!

> On Sat, Sep 13, 2025 at 08:53:08PM +1000, Ash Logan wrote:
>> 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)
>
> There *aren't* many peripherals, so that is quite okay :-)

That's true. The lack of a UART or similar does make USB kinda essential
for an input device in my opinion, though getting it working is
Complicated for DMA reasons. (I think this is the main thing holding the
downstream back in their rebasing efforts)

>> Wii U (2012)
>> - 3x PowerPC 750CL "Espresso" @ 1.2GHz
>
> It is not a 750CL. We never found out what the model # is, if indeed it
> has one! But the CPU cores are compatible to the Broadway, sure, there
> even are configuration bits to make it do the bugs that were fixed in
> Espresso! (Just like Broadway can emulate a Gekko, 750CXe, the GCN
> thing).
>
> It does have its own PVR value of course, that is something at least :-)
>
> (Espresso is one chip btw, with three mostly symmetrical cores).

Yeah, I was just going for the closest "public" chip :) I think the PVR
is closer to the CXe too, but all the HIDs, missing THRM, missing
frequency scaling - it's very CL-y...

>> - 32MB "MEM1" + 2GB "MEM2" (also starts 256MiB in) + various small SRAMs
>
> It has 32MB MEM1? Huh. Why?

New generation upgrade? MEM1 does get used for Wii U software too,
usually to keep framebuffers and other 3D things, so I guess they wanted
just a little more for all the 1080p buffers the new console juggles.

>> 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,
>
> Can you remind me what that is about? It shouldn't be too hard to
> include it in mainline GCC.

The short version is "every stwcx. should be prefaced with a dcbst" -
something to do with bus snooping (store-with-flush, store-with-kill)
I'd guess. I have some GCC patches drafted (activated by -mcpu=espresso)
here: https://gitlab.com/linux-wiiu/smp-patches

I'm impressed by how often IBM stuffed up atomics during this
generation. The Xbox 360 has an extremely similar issue despite being an
entirely different lineage of chip. No surprise the console vendors all
went to x86 and ARM right after, I suppose.

Thanks,
Ash