[PATCH v2 0/8] target/ppc: powerpc_excp improvements [74xx] (5/n)

Fabiano Rosas posted 8 patches 2 years, 2 months ago
Failed in applying to current master (apply log)
target/ppc/excp_helper.c | 197 +++++++++++++++++++++++++++++++++++++++
1 file changed, 197 insertions(+)
[PATCH v2 0/8] target/ppc: powerpc_excp improvements [74xx] (5/n)
Posted by Fabiano Rosas 2 years, 2 months ago
Changes from v1:

- Restored the 'sc 1' support to avoid breaking the pegasos2 machine.

I tested this version in the G4 with the following OSes:

- Linux 5.15 (5.16 seems to be broken, even with master)
- FreeBSD 13
- Mac OS 9.2
- Mac OS Darwin 6.0
- Mac OS X 10.4
- MorphOS 3.15 (-M pegasos2 and -M mac99,via=pmu)

Based on legoater/ppc-7.0

v1:
https://lore.kernel.org/r/20220126164200.1048677-1-farosas@linux.ibm.com

Fabiano Rosas (8):
  target/ppc: Introduce powerpc_excp_74xx
  target/ppc: Simplify powerpc_excp_74xx
  target/ppc: 74xx: Machine Check exception cleanup
  target/ppc: 74xx: External interrupt cleanup
  target/ppc: 74xx: Program exception cleanup
  target/ppc: 74xx: System Call exception cleanup
  target/ppc: 74xx: System Reset interrupt cleanup
  target/ppc: 74xx: Set SRRs directly in exception code

 target/ppc/excp_helper.c | 197 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 197 insertions(+)

-- 
2.34.1


Re: [PATCH v2 0/8] target/ppc: powerpc_excp improvements [74xx] (5/n)
Posted by Mark Cave-Ayland 2 years, 2 months ago
On 27/01/2022 20:11, Fabiano Rosas wrote:

> Changes from v1:
> 
> - Restored the 'sc 1' support to avoid breaking the pegasos2 machine.
> 
> I tested this version in the G4 with the following OSes:
> 
> - Linux 5.15 (5.16 seems to be broken, even with master)
> - FreeBSD 13
> - Mac OS 9.2
> - Mac OS Darwin 6.0
> - Mac OS X 10.4
> - MorphOS 3.15 (-M pegasos2 and -M mac99,via=pmu)
> 
> Based on legoater/ppc-7.0
> 
> v1:
> https://lore.kernel.org/r/20220126164200.1048677-1-farosas@linux.ibm.com
> 
> Fabiano Rosas (8):
>    target/ppc: Introduce powerpc_excp_74xx
>    target/ppc: Simplify powerpc_excp_74xx
>    target/ppc: 74xx: Machine Check exception cleanup
>    target/ppc: 74xx: External interrupt cleanup
>    target/ppc: 74xx: Program exception cleanup
>    target/ppc: 74xx: System Call exception cleanup
>    target/ppc: 74xx: System Reset interrupt cleanup
>    target/ppc: 74xx: Set SRRs directly in exception code
> 
>   target/ppc/excp_helper.c | 197 +++++++++++++++++++++++++++++++++++++++
>   1 file changed, 197 insertions(+)

That certainly covers a good range MacOS images so I'm happy to give:

Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>

Just out of curiosity have you tried booting MacOS 9.2 under KVM-PR? Last time I 
tried on my G4 Mac Mini here, OS X worked fine but 9.2 failed early after jumping 
into the 68k emulator. Unfortunately due to the split real mode (see 
https://github.com/torvalds/linux/commit/c01e3f66cd5cdc1f727f4c7b0c10b3e3bdb91ba7 
where MSR_IR != MSR_DR) I can't step through with QEMU's gdbstub to see what is going 
wrong...


ATB,

Mark.

Re: [PATCH v2 0/8] target/ppc: powerpc_excp improvements [74xx] (5/n)
Posted by BALATON Zoltan 2 years, 2 months ago
On Thu, 27 Jan 2022, Mark Cave-Ayland wrote:
> On 27/01/2022 20:11, Fabiano Rosas wrote:
>
>> Changes from v1:
>> 
>> - Restored the 'sc 1' support to avoid breaking the pegasos2 machine.
>> 
>> I tested this version in the G4 with the following OSes:
>> 
>> - Linux 5.15 (5.16 seems to be broken, even with master)
>> - FreeBSD 13
>> - Mac OS 9.2
>> - Mac OS Darwin 6.0
>> - Mac OS X 10.4
>> - MorphOS 3.15 (-M pegasos2 and -M mac99,via=pmu)
>> 
>> Based on legoater/ppc-7.0
>> 
>> v1:
>> https://lore.kernel.org/r/20220126164200.1048677-1-farosas@linux.ibm.com
>> 
>> Fabiano Rosas (8):
>>    target/ppc: Introduce powerpc_excp_74xx
>>    target/ppc: Simplify powerpc_excp_74xx
>>    target/ppc: 74xx: Machine Check exception cleanup
>>    target/ppc: 74xx: External interrupt cleanup
>>    target/ppc: 74xx: Program exception cleanup
>>    target/ppc: 74xx: System Call exception cleanup
>>    target/ppc: 74xx: System Reset interrupt cleanup
>>    target/ppc: 74xx: Set SRRs directly in exception code
>>
>>   target/ppc/excp_helper.c | 197 +++++++++++++++++++++++++++++++++++++++
>>   1 file changed, 197 insertions(+)
>
> That certainly covers a good range MacOS images so I'm happy to give:
>
> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>
> Just out of curiosity have you tried booting MacOS 9.2 under KVM-PR? Last 
> time I tried on my G4 Mac Mini here, OS X worked fine but 9.2 failed early 
> after jumping into the 68k emulator. Unfortunately due to the split real mode 
> (see 
> https://github.com/torvalds/linux/commit/c01e3f66cd5cdc1f727f4c7b0c10b3e3bdb91ba7 
> where MSR_IR != MSR_DR) I can't step through with QEMU's gdbstub to see what 
> is going wrong...

Can't comment on that as I don't have PPC hardware but in case you don't 
know it yet, check out this blog entry (and its part 2):

https://www.talospace.com/2018/08/making-your-talos-ii-into-power-mac.html

which talks about running KVM-PR on POWER9 and why MacOS may not work at 
least with newer POWER CPUs. But if you run G4 code on G4 it may be a 
different problem but still an interesting article and may give you some 
ideas.

Regards,
BALATON Zoltan

Re: [PATCH v2 0/8] target/ppc: powerpc_excp improvements [74xx] (5/n)
Posted by Fabiano Rosas 2 years, 2 months ago
Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> writes:

> On 27/01/2022 20:11, Fabiano Rosas wrote:
>
>> Changes from v1:
>> 
>> - Restored the 'sc 1' support to avoid breaking the pegasos2 machine.
>> 
>> I tested this version in the G4 with the following OSes:
>> 
>> - Linux 5.15 (5.16 seems to be broken, even with master)
>> - FreeBSD 13
>> - Mac OS 9.2
>> - Mac OS Darwin 6.0
>> - Mac OS X 10.4
>> - MorphOS 3.15 (-M pegasos2 and -M mac99,via=pmu)
>> 
>> Based on legoater/ppc-7.0
>> 
>> v1:
>> https://lore.kernel.org/r/20220126164200.1048677-1-farosas@linux.ibm.com
>> 
>> Fabiano Rosas (8):
>>    target/ppc: Introduce powerpc_excp_74xx
>>    target/ppc: Simplify powerpc_excp_74xx
>>    target/ppc: 74xx: Machine Check exception cleanup
>>    target/ppc: 74xx: External interrupt cleanup
>>    target/ppc: 74xx: Program exception cleanup
>>    target/ppc: 74xx: System Call exception cleanup
>>    target/ppc: 74xx: System Reset interrupt cleanup
>>    target/ppc: 74xx: Set SRRs directly in exception code
>> 
>>   target/ppc/excp_helper.c | 197 +++++++++++++++++++++++++++++++++++++++
>>   1 file changed, 197 insertions(+)
>
> That certainly covers a good range MacOS images so I'm happy to give:
>
> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>
> Just out of curiosity have you tried booting MacOS 9.2 under KVM-PR? Last time I 
> tried on my G4 Mac Mini here, OS X worked fine but 9.2 failed early after jumping 
> into the 68k emulator. Unfortunately due to the split real mode (see 
> https://github.com/torvalds/linux/commit/c01e3f66cd5cdc1f727f4c7b0c10b3e3bdb91ba7 
> where MSR_IR != MSR_DR) I can't step through with QEMU's gdbstub to see what is going 
> wrong...

Never crossed my mind actually. =)

I don't immediately see why the step wouldn't work due to split
mode. Let me understand that patch first. KVM-PR is full of surprises.

>
>
> ATB,
>
> Mark.

Re: [PATCH v2 0/8] target/ppc: powerpc_excp improvements [74xx] (5/n)
Posted by Mark Cave-Ayland 2 years, 2 months ago
On 27/01/2022 23:08, Fabiano Rosas wrote:

> Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> writes:
> 
>> On 27/01/2022 20:11, Fabiano Rosas wrote:
>>
>>> Changes from v1:
>>>
>>> - Restored the 'sc 1' support to avoid breaking the pegasos2 machine.
>>>
>>> I tested this version in the G4 with the following OSes:
>>>
>>> - Linux 5.15 (5.16 seems to be broken, even with master)
>>> - FreeBSD 13
>>> - Mac OS 9.2
>>> - Mac OS Darwin 6.0
>>> - Mac OS X 10.4
>>> - MorphOS 3.15 (-M pegasos2 and -M mac99,via=pmu)
>>>
>>> Based on legoater/ppc-7.0
>>>
>>> v1:
>>> https://lore.kernel.org/r/20220126164200.1048677-1-farosas@linux.ibm.com
>>>
>>> Fabiano Rosas (8):
>>>     target/ppc: Introduce powerpc_excp_74xx
>>>     target/ppc: Simplify powerpc_excp_74xx
>>>     target/ppc: 74xx: Machine Check exception cleanup
>>>     target/ppc: 74xx: External interrupt cleanup
>>>     target/ppc: 74xx: Program exception cleanup
>>>     target/ppc: 74xx: System Call exception cleanup
>>>     target/ppc: 74xx: System Reset interrupt cleanup
>>>     target/ppc: 74xx: Set SRRs directly in exception code
>>>
>>>    target/ppc/excp_helper.c | 197 +++++++++++++++++++++++++++++++++++++++
>>>    1 file changed, 197 insertions(+)
>>
>> That certainly covers a good range MacOS images so I'm happy to give:
>>
>> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>>
>> Just out of curiosity have you tried booting MacOS 9.2 under KVM-PR? Last time I
>> tried on my G4 Mac Mini here, OS X worked fine but 9.2 failed early after jumping
>> into the 68k emulator. Unfortunately due to the split real mode (see
>> https://github.com/torvalds/linux/commit/c01e3f66cd5cdc1f727f4c7b0c10b3e3bdb91ba7
>> where MSR_IR != MSR_DR) I can't step through with QEMU's gdbstub to see what is going
>> wrong...
> 
> Never crossed my mind actually. =)
> 
> I don't immediately see why the step wouldn't work due to split
> mode. Let me understand that patch first. KVM-PR is full of surprises.

IIRC from a debugging point of view the problem was that the QEMU *_debug() functions 
can't translate correctly in split mode, so if gdbstub is enabled with KVM all you 
end up seeing in gdb is junk :(


ATB,

Mark.

Re: [PATCH v2 0/8] target/ppc: powerpc_excp improvements [74xx] (5/n)
Posted by Cédric Le Goater 2 years, 2 months ago
On 1/27/22 21:11, Fabiano Rosas wrote:
> Changes from v1:
> 
> - Restored the 'sc 1' support to avoid breaking the pegasos2 machine.
> 
> I tested this version in the G4 with the following OSes:
> 
> - Linux 5.15 (5.16 seems to be broken, even with master)


Have you tried pmac32 defconfig plus these configs :

CONFIG_SERIAL_PMACZILOG=y
CONFIG_SERIAL_PMACZILOG_TTYS=y
CONFIG_SERIAL_PMACZILOG_CONSOLE=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

5.17-rc1 looks fine with your patchset.

Thanks,

C.


> - FreeBSD 13
> - Mac OS 9.2
> - Mac OS Darwin 6.0
> - Mac OS X 10.4
> - MorphOS 3.15 (-M pegasos2 and -M mac99,via=pmu)
> 
> Based on legoater/ppc-7.0
> 
> v1:
> https://lore.kernel.org/r/20220126164200.1048677-1-farosas@linux.ibm.com
> 
> Fabiano Rosas (8):
>    target/ppc: Introduce powerpc_excp_74xx
>    target/ppc: Simplify powerpc_excp_74xx
>    target/ppc: 74xx: Machine Check exception cleanup
>    target/ppc: 74xx: External interrupt cleanup
>    target/ppc: 74xx: Program exception cleanup
>    target/ppc: 74xx: System Call exception cleanup
>    target/ppc: 74xx: System Reset interrupt cleanup
>    target/ppc: 74xx: Set SRRs directly in exception code
> 
>   target/ppc/excp_helper.c | 197 +++++++++++++++++++++++++++++++++++++++
>   1 file changed, 197 insertions(+)
>