On 16/10/2020 13:19, BALATON Zoltan via wrote:
On Fri, 16 Oct 2020, Mark Cave-Ayland wrote:
On 16/10/2020 00:47, BALATON Zoltan via wrote:
This is the cut down version of the earlier series omitting unfinished
patches that I plan to rework later and rebased to Mark's qemu-macppc
branch. Compared to v7 the only change is the cast to (target_ulong)
from (uint32_t) as requested by Mark in patch 1.
FWIW the reason for suggesting the cast to target_ulong is so that the same code
works for both qemu-system-ppc and qemu-system-ppc64. For qemu-system-ppc that
should correctly drop the sign extension from 32-bit, whilst still allowing someone
to load a 64-bit ELF into qemu-system-ppc64 if requested.
Can you confirm that the sign extension behaviour is still correct for both
qemu-system-ppc and qemu-system-ppc64? If so I'm happy to give it a R-B tag.
I've tried it now again with both ppc and ppc64: both OpenBIOS and a G3 beige ROM can
be loaded with qemu-system-ppc but qemu-system-ppc64 fails with OpenBIOS when casting
to target_ulong (i think because target_ulong is 64 bit there but g3beige is still 32
bit but I haven't throughly debugged it). But everything works with my original
uint32_t cast, so ditch it and use my original version. Should I resubmit or you can
fix up? (I think I wait until it's clear if this will be taken by David or you and
send a fixed version cc-ing David if this is decided to go through the PPC queue.)
Hmmm yes I see that qemu-system-ppc64 fails because target_ulong will always
represent a 64-bit quantity, even if you request a 32-bit CPU. Rather than add some
CPU-specific code let's keep the uint32_t cast for now as I would hope it is unlikely
someone would load an ELF in high memory, and perhaps the sign-extended address bug
will get fixed later.
With the cast reverted to uint32_t then for patches 1 and 2:
Reviewed-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk>
If you can send a v9 with the cast fixed I'll apply this to my qemu-macppc branch
right away.
ATB,
Mark.