[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH-for-8.0 1/3] hw/ppc: Replace tswap32() by const_le32()
From: |
Peter Maydell |
Subject: |
Re: [RFC PATCH-for-8.0 1/3] hw/ppc: Replace tswap32() by const_le32() |
Date: |
Tue, 13 Dec 2022 21:37:53 +0000 |
On Tue, 13 Dec 2022 at 18:11, BALATON Zoltan <balaton@eik.bme.hu> wrote:
> I can't remember the details but I think I've had no tswap in sam460ex
> first but that did not work and had to add it but I've probably looked at
> other examples and did not really understand why this was needed. I tested
> on x86_64 so not matching host. The board firmware has some reference to
> this magic value in:
>
> qemu/roms/u-boot-sam460ex/arch/powerpc/lib/bootm.c::boot_jump_linux()
>
> I don't know what it does with it but I think kernel expects it in big
> endian and what we put there should match what U-Boor does (if this is
> actually used on sam460ex which I'm not sure about).
Thanks. That u-boot code uses the same value for EPAPR_MAGIC
as we do (0x45504150), and it puts it in r6 (by doing a function
call), and being native code the register will get that exact
value, not a byte-swapped version.
So to match that we should delete the tswap32() that we
currently have in our hw/ppc/sam460ex.c code.
My guess is that (as with the virtex kernel in our test suite)
the Debian/Ubuntu kernel you tested with worked because it
doesn't actually check the value of the magic number, it only
cares that it gets the FDT address in r3. The giveaway that
the tswap32() is wrong is that we're only swapping one of the
4 things we pass to the guest code in registers -- either
we should need to swap all of them, or none (unless our
magic number value was pre-byteswapped, which it isn't).
-- PMM
- [RFC PATCH-for-8.0 1/3] hw/ppc: Replace tswap32() by const_le32(), (continued)
- [RFC PATCH-for-8.0 1/3] hw/ppc: Replace tswap32() by const_le32(), Philippe Mathieu-Daudé, 2022/12/13
- Re: [RFC PATCH-for-8.0 1/3] hw/ppc: Replace tswap32() by const_le32(), Richard Henderson, 2022/12/13
- Re: [RFC PATCH-for-8.0 1/3] hw/ppc: Replace tswap32() by const_le32(), Philippe Mathieu-Daudé, 2022/12/13
- Re: [RFC PATCH-for-8.0 1/3] hw/ppc: Replace tswap32() by const_le32(), Richard Henderson, 2022/12/13
- Re: [RFC PATCH-for-8.0 1/3] hw/ppc: Replace tswap32() by const_le32(), Peter Maydell, 2022/12/13
- Re: [RFC PATCH-for-8.0 1/3] hw/ppc: Replace tswap32() by const_le32(), Richard Henderson, 2022/12/13
- Re: [RFC PATCH-for-8.0 1/3] hw/ppc: Replace tswap32() by const_le32(), Cédric Le Goater, 2022/12/13
- Re: [RFC PATCH-for-8.0 1/3] hw/ppc: Replace tswap32() by const_le32(), Peter Maydell, 2022/12/13
- Re: [RFC PATCH-for-8.0 1/3] hw/ppc: Replace tswap32() by const_le32(), Edgar E. Iglesias, 2022/12/13
- Re: [RFC PATCH-for-8.0 1/3] hw/ppc: Replace tswap32() by const_le32(), BALATON Zoltan, 2022/12/13
- Re: [RFC PATCH-for-8.0 1/3] hw/ppc: Replace tswap32() by const_le32(),
Peter Maydell <=
- Re: [RFC PATCH-for-8.0 1/3] hw/ppc: Replace tswap32() by const_le32(), Cédric Le Goater, 2022/12/13
[RFC PATCH-for-8.0 2/3] hw/ppc/spapr: Replace tswap64(HPTE) by cpu_to_be64(HPTE), Philippe Mathieu-Daudé, 2022/12/13
- Re: [RFC PATCH-for-8.0 2/3] hw/ppc/spapr: Replace tswap64(HPTE) by cpu_to_be64(HPTE), Peter Maydell, 2022/12/13
- Re: [RFC PATCH-for-8.0 2/3] hw/ppc/spapr: Replace tswap64(HPTE) by cpu_to_be64(HPTE), Daniel Henrique Barboza, 2022/12/16
- Re: [RFC PATCH-for-8.0 2/3] hw/ppc/spapr: Replace tswap64(HPTE) by cpu_to_be64(HPTE), Peter Maydell, 2022/12/16
- Re: [RFC PATCH-for-8.0 2/3] hw/ppc/spapr: Replace tswap64(HPTE) by cpu_to_be64(HPTE), David Gibson, 2022/12/19
- Re: [RFC PATCH-for-8.0 2/3] hw/ppc/spapr: Replace tswap64(HPTE) by cpu_to_be64(HPTE), Peter Maydell, 2022/12/19
- Re: [RFC PATCH-for-8.0 2/3] hw/ppc/spapr: Replace tswap64(HPTE) by cpu_to_be64(HPTE), David Gibson, 2022/12/20
- Re: [RFC PATCH-for-8.0 2/3] hw/ppc/spapr: Replace tswap64(HPTE) by cpu_to_be64(HPTE), Peter Maydell, 2022/12/21
- Re: [RFC PATCH-for-8.0 2/3] hw/ppc/spapr: Replace tswap64(HPTE) by cpu_to_be64(HPTE), Cédric Le Goater, 2022/12/21