mbox series

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

Message ID 20220126164200.1048677-1-farosas@linux.ibm.com (mailing list archive)
Headers show
Series target/ppc: powerpc_excp improvements [74xx] (5/n) | expand

Message

Fabiano Rosas Jan. 26, 2022, 4:41 p.m. UTC
This handles the exception code for the 74xx family, i.e. 7400, 7410,
7440, 7445, 7450, 7455, 7457.

This is another family that is quite well known, so it should be
straight-forward as well.

Based on legoater/ppc-7.0

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 | 175 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 175 insertions(+)

Comments

BALATON Zoltan Jan. 26, 2022, 5:55 p.m. UTC | #1
On Wed, 26 Jan 2022, Fabiano Rosas wrote:
> This handles the exception code for the 74xx family, i.e. 7400, 7410,
> 7440, 7445, 7450, 7455, 7457.
>
> This is another family that is quite well known, so it should be
> straight-forward as well.

I guess this is what may break VOF on pegasos2. Was Philippe's test case 
for this machine ever merged? (Although that may use the firmware ROM that 
was preferred as it tests more of the machine and may predate VOF so not 
sure it also tests with VOF.) The way to test it is this:

Get morphos demo ISO from https://www.morphos-team.net/morphos-3.15.iso
Extract boot.img from the root directory of the CD
Run QEMU as shown at http://zero.eik.bme.hu/~balaton/qemu/amiga/#morphos

(For debugging maybe enabling vof traces would give more info but it was 
a while so I don't remember the details any more.)

> Based on legoater/ppc-7.0

I could test when it's merged or when it applies on master but I don't 
usually test on branches. Did you verify it still works with pegasos2 or 
could you please make sure it won't break that use case?

Regards,
BALATON Zoltan

> 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 | 175 +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 175 insertions(+)
>
>
Cédric Le Goater Jan. 26, 2022, 6:23 p.m. UTC | #2
On 1/26/22 18:55, BALATON Zoltan wrote:
> On Wed, 26 Jan 2022, Fabiano Rosas wrote:
>> This handles the exception code for the 74xx family, i.e. 7400, 7410,
>> 7440, 7445, 7450, 7455, 7457.
>>
>> This is another family that is quite well known, so it should be
>> straight-forward as well.
> 
> I guess this is what may break VOF on pegasos2. Was Philippe's test case for this machine ever merged? (Although that may use the firmware ROM that was preferred as it tests more of the machine and may predate VOF so not sure it also tests with VOF.) The way to test it is this:
> 
> Get morphos demo ISO from https://www.morphos-team.net/morphos-3.15.iso
> Extract boot.img from the root directory of the CD
> Run QEMU as shown at http://zero.eik.bme.hu/~balaton/qemu/amiga/#morphos

I could never make it work :/

> 
> (For debugging maybe enabling vof traces would give more info but it was a while so I don't remember the details any more.)
> 
>> Based on legoater/ppc-7.0
> 
> I could test when it's merged or when it applies on master but I don't usually test on branches. Did you verify it still works with pegasos2 or could you please make sure it won't break that use case?

I have a large set of images, here, that I use for non regression tests :

   https://github.com/legoater/qemu-ppc-boot

If we could add a pegasos, that would be nice.

Thanks,

C.
BALATON Zoltan Jan. 26, 2022, 8 p.m. UTC | #3
On Wed, 26 Jan 2022, Cédric Le Goater wrote:
> On 1/26/22 18:55, BALATON Zoltan wrote:
>> On Wed, 26 Jan 2022, Fabiano Rosas wrote:
>>> This handles the exception code for the 74xx family, i.e. 7400, 7410,
>>> 7440, 7445, 7450, 7455, 7457.
>>> 
>>> This is another family that is quite well known, so it should be
>>> straight-forward as well.
>> 
>> I guess this is what may break VOF on pegasos2. Was Philippe's test case 
>> for this machine ever merged? (Although that may use the firmware ROM that 
>> was preferred as it tests more of the machine and may predate VOF so not 
>> sure it also tests with VOF.) The way to test it is this:
>> 
>> Get morphos demo ISO from https://www.morphos-team.net/morphos-3.15.iso
>> Extract boot.img from the root directory of the CD
>> Run QEMU as shown at http://zero.eik.bme.hu/~balaton/qemu/amiga/#morphos
>
> I could never make it work :/

Philippe's test or the MorphOS iso? If the MorphOS boot, what problem do 
you get? I don't have or use avocado so can't comment on the former.

>> (For debugging maybe enabling vof traces would give more info but it was a 
>> while so I don't remember the details any more.)
>> 
>>> Based on legoater/ppc-7.0
>> 
>> I could test when it's merged or when it applies on master but I don't 
>> usually test on branches. Did you verify it still works with pegasos2 or 
>> could you please make sure it won't break that use case?
>
> I have a large set of images, here, that I use for non regression tests :
>
>  https://github.com/legoater/qemu-ppc-boot
>
> If we could add a pegasos, that would be nice.

I'm not sure how could I help with that. Once you can boot from command 
line it should be easy to add to the script as well.

Regards,
BALATON Zoltan
Fabiano Rosas Jan. 26, 2022, 9:58 p.m. UTC | #4
BALATON Zoltan <balaton@eik.bme.hu> writes:

> On Wed, 26 Jan 2022, Fabiano Rosas wrote:
>> This handles the exception code for the 74xx family, i.e. 7400, 7410,
>> 7440, 7445, 7450, 7455, 7457.
>>
>> This is another family that is quite well known, so it should be
>> straight-forward as well.
>
> I guess this is what may break VOF on pegasos2. Was Philippe's test case 
> for this machine ever merged? (Although that may use the firmware ROM that 
> was preferred as it tests more of the machine and may predate VOF so not 
> sure it also tests with VOF.) The way to test it is this:
>
> Get morphos demo ISO from https://www.morphos-team.net/morphos-3.15.iso
> Extract boot.img from the root directory of the CD
> Run QEMU as shown at http://zero.eik.bme.hu/~balaton/qemu/amiga/#morphos
>
> (For debugging maybe enabling vof traces would give more info but it was 
> a while so I don't remember the details any more.)
>
>> Based on legoater/ppc-7.0
>
> I could test when it's merged or when it applies on master but I don't 
> usually test on branches. Did you verify it still works with pegasos2 or 
> could you please make sure it won't break that use case?

I can test with pegasos2. I'll make sure we don't merge this before
testing there.

That said, I forgot about the sc 1 thing and it is indeed broken. I'll
send a v2 fixing it.
Mark Cave-Ayland Jan. 27, 2022, 2:40 p.m. UTC | #5
On 26/01/2022 16:41, Fabiano Rosas wrote:

> This handles the exception code for the 74xx family, i.e. 7400, 7410,
> 7440, 7445, 7450, 7455, 7457.
> 
> This is another family that is quite well known, so it should be
> straight-forward as well.
> 
> Based on legoater/ppc-7.0
> 
> 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 | 175 +++++++++++++++++++++++++++++++++++++++
>   1 file changed, 175 insertions(+)

I'm not overly familiar with PPC exception handling detail, so I can't offer much in 
the way of review I'm afraid. I could do a quick test and make sure nothing breaks 
with my MacOS images though?

Also any thoughts on Christophe's question re: e300 PVRs at 
https://lists.gnu.org/archive/html/qemu-ppc/2022-01/msg00592.html? I can handle 
merging the OpenBIOS changes if someone can come up with a suitable fix.


ATB,

Mark.
Fabiano Rosas Jan. 27, 2022, 3:16 p.m. UTC | #6
Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> writes:

> On 26/01/2022 16:41, Fabiano Rosas wrote:
>
>> This handles the exception code for the 74xx family, i.e. 7400, 7410,
>> 7440, 7445, 7450, 7455, 7457.
>> 
>> This is another family that is quite well known, so it should be
>> straight-forward as well.
>> 
>> Based on legoater/ppc-7.0
>> 
>> 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 | 175 +++++++++++++++++++++++++++++++++++++++
>>   1 file changed, 175 insertions(+)
>
> I'm not overly familiar with PPC exception handling detail, so I can't offer much in 
> the way of review I'm afraid. I could do a quick test and make sure nothing breaks 
> with my MacOS images though?

Sure, no problem. This is more of an FYI and so you know whom to yell at
in case anything breaks for you.

I have some MacOS images I can use to test as well. I'll do a thorough
pass before sending the v2.

> Also any thoughts on Christophe's question re: e300 PVRs at 
> https://lists.gnu.org/archive/html/qemu-ppc/2022-01/msg00592.html? I can handle 
> merging the OpenBIOS changes if someone can come up with a suitable fix.

I believe Cédric has been looking at the 60x, maybe he has some
input. We currently can only run the 604 if I'm not mistaken, so there's
some work to be done to bring all of the 60x back to life. The e300 will
be in the mix.
Cédric Le Goater Jan. 27, 2022, 4:51 p.m. UTC | #7
On 1/27/22 16:16, Fabiano Rosas wrote:
> Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> writes:
> 
>> On 26/01/2022 16:41, Fabiano Rosas wrote:
>>
>>> This handles the exception code for the 74xx family, i.e. 7400, 7410,
>>> 7440, 7445, 7450, 7455, 7457.
>>>
>>> This is another family that is quite well known, so it should be
>>> straight-forward as well.
>>>
>>> Based on legoater/ppc-7.0
>>>
>>> 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 | 175 +++++++++++++++++++++++++++++++++++++++
>>>    1 file changed, 175 insertions(+)
>>
>> I'm not overly familiar with PPC exception handling detail, so I can't offer much in
>> the way of review I'm afraid. I could do a quick test and make sure nothing breaks
>> with my MacOS images though?
> 
> Sure, no problem. This is more of an FYI and so you know whom to yell at
> in case anything breaks for you.

yes ! Thanks,

> I have some MacOS images I can use to test as well. I'll do a thorough
> pass before sending the v2.
> 
>> Also any thoughts on Christophe's question re: e300 PVRs at
>> https://lists.gnu.org/archive/html/qemu-ppc/2022-01/msg00592.html? I can handle
>> merging the OpenBIOS changes if someone can come up with a suitable fix.

Why not simply extend 'struct cpudef' with a flag/feature field ?

> I believe Cédric has been looking at the 60x, maybe he has some
> input. 

yes. 604 is running fine under the 40p machine with OpenBIOS.
I have an old debian 3 disk image for it.

On the same machine, AIX 4x and 5x also run with this firmware :

   http://github.com/artyom-tarasenko/openfirmware/releases/download/40p-20190413/q40pofw-serial.rom

and the g3beige supports 604.

Getting a status on 603 is more complex. We need support for the
6xx SoftTLBs in OpenBIOS to move forward. Christophe and I have
spent some time on this. Work in progress.

602 should be removed IMHO. It has no real value.

601 is a transitional processor. It think it should be good to
keep as a reference. I don't have a workload for it though.

> We currently can only run the 604 if I'm not mistaken, so there's
> some work to be done to bring all of the 60x back to life. The e300 will
> be in the mix.

It should yes. I haven't looked at it yet.

Thanks,

C.