On 11/26/21 13:13, Fabiano Rosas wrote:
Segher Boessenkool segher@kernel.crashing.org writes:
Hi!
On Fri, Nov 26, 2021 at 09:34:44AM +0100, Cédric Le Goater wrote:
On 11/25/21 10:38, Segher Boessenkool wrote:
On Thu, Nov 25, 2021 at 01:45:00AM +0100, BALATON Zoltan wrote:
As for guests, those running on the said PowerMac G4 should have support for these CPUs so maybe you can try some Mac OS X versions (or maybe
OSX uses hardware pagetables.
MorphOS but that is not the best for debugging as there's no source available nor any help from its owners but just to see if it boots it may be sufficient, it should work on real PowerMac G4).
I have no idea what MorphOS uses, but I bet HPT as well. That is because HPT is fastest in general. Software TLB reloads are good in special cases only; the most common is real-time OSes, which can use its lower guaranteed latency for some special address spaces (and can have a simpler address map in general).
The support was added to QEMU knowing that Linux didn't handle soft TLBs. And the commit says that it was kept disabled initially. I guess that was broken these last years.
Ah :-) So when was it enabled, do you know?
Hm.. That commit message does not match the code. They simply added the software TLB implementation to an already existing SOFT_74xx MMU model. I don't see anything that would keep it disabled at that time.
because most of the cpu definitions in ppc_defs[] are protected by a :
#if defined (TODO)
See below. commit 8ca3f6c3824c ("Allow selection of all defined PowerPC 74xx (aka G4) CPUs.") removed the TODO without a reason :/ This is old, when SVN was in used.
Thanks,
C.
.... #if defined (TODO) /* PowerPC 7450 (G4) */ POWERPC_DEF("7450", CPU_POWERPC_7450, 0xFFFFFFFF, 7450), /* Code name for PowerPC 7450 */ POWERPC_DEF("Vger", CPU_POWERPC_7450, 0xFFFFFFFF, 7450), #endif #if defined (TODO) /* PowerPC 7450 v1.0 (G4) */ POWERPC_DEF("7450v1.0", CPU_POWERPC_7450_v10, 0xFFFFFFFF, 7450), #endif #if defined (TODO) /* PowerPC 7450 v1.1 (G4) */ POWERPC_DEF("7450v1.1", CPU_POWERPC_7450_v11, 0xFFFFFFFF, 7450), #endif #if defined (TODO) /* PowerPC 7450 v1.2 (G4) */ POWERPC_DEF("7450v1.2", CPU_POWERPC_7450_v12, 0xFFFFFFFF, 7450), #endif #if defined (TODO) /* PowerPC 7450 v2.0 (G4) */ POWERPC_DEF("7450v2.0", CPU_POWERPC_7450_v20, 0xFFFFFFFF, 7450), #endif #if defined (TODO) /* PowerPC 7450 v2.1 (G4) */ POWERPC_DEF("7450v2.1", CPU_POWERPC_7450_v21, 0xFFFFFFFF, 7450), #endif #if defined (TODO) /* PowerPC 7441 (G4) */ POWERPC_DEF("7441", CPU_POWERPC_74x1, 0xFFFFFFFF, 7440), /* PowerPC 7451 (G4) */ ....