qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [OpenBIOS] Re: [RFC PATCH 0/2] QEMU/openbios: PPC Software TLB suppo


From: Cédric Le Goater
Subject: Re: [OpenBIOS] Re: [RFC PATCH 0/2] QEMU/openbios: PPC Software TLB support in the G4 family
Date: Fri, 26 Nov 2021 13:45:26 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0

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)                                                     */
....



reply via email to

[Prev in Thread] Current Thread [Next in Thread]