Starlet has full control over the PPC, but not the other way around.
Mini can halt and restart the PPC at any time.
The common procedure for starlet is:
- halt PPC
- put PPC code somewhere in memory
- upload a PPC boot stub over the EXI bus. That stub contains an
instruction to branch to the prior uploaded PPC code
- restart the PPC
But since its useful to reload code on starlet too, mini has an IPC
call to reload ARM code too. Its like IOS_Reload, except you can load
anything you want.
Both, PPC and ARM code can be uploaded via our bootmii console client
(using an USBGecko). The only requisite for that is mini running on
starlet. PPC code might even be stuck in an exception handler, you
could still bootstrap it :)
> Also, IIRC Starlet only has a small amount of dedicated RAM (much like the
> DS), so anything beyond this RAM limit would go into main memory and block
> PowerPC, making it completely worthless to offload more than that amount of
> code to Starlet as PowerPC can do the same thing faster.
Exactly, everything that could be done on PPC side should be done on
PPC side. Mini is supposed to be minimalistic (duh). For more info
about its memory layout and usage, check mini's linker script and the
output of readelf.
Regards,
dhewg