Le sam. 05 avril 2014 22:34:38 CEST, Alexander Graf a écrit :
On 05.04.2014, at 22:26, Hervé Poussineau <hpous...@reactos.org> wrote:
Hi Andreas,
Le sam. 05 avril 2014 17:41:43 CEST, Andreas Färber a écrit :
Hi Hervé,
Am 20.03.2014 00:36, schrieb Andreas Färber:
From: Hervé Poussineau <hpous...@reactos.org>
Remove now duplicated code from prep board.
Signed-off-by: Hervé Poussineau <hpous...@reactos.org>
Signed-off-by: Andreas Färber <andreas.faer...@web.de>
---
hw/pci-host/prep.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++++
hw/ppc/prep.c | 94 ++----------------------------------------------------
2 files changed, 88 insertions(+), 91 deletions(-)
I'm facing endianness-test failures in -rc1 on both openSUSE ppc/ppc64
and OSX ppc64 (below) as well as "broken pipe" on OSX ppc.
$ make check-qtest-ppc V=1
[...]
/ppc/endianness/prep: **
ERROR:/Users/andreas/QEMU/tests/endianness-test.c:131:test_endianness:
assertion failed (isa_inw(test, 0xe2) == 0x8765): (0x00004321 == 0x00008765)
FAIL
[...]
/ppc/endianness/split/prep: **
ERROR:/Users/andreas/QEMU/tests/endianness-test.c:206:test_endianness_split:
assertion failed (isa_inw(test, 0xe2) == 0x8765): (0x00004321 == 0x00008765)
FAIL
[...]
/ppc/endianness/combine/prep: **
ERROR:/Users/andreas/QEMU/tests/endianness-test.c:253:test_endianness_combine:
assertion failed (isa_inw(test, 0xea) == 0x8765): (0x00004321 == 0x00008765)
FAIL
[...]
FAIL: tests/endianness-test
On x86 everything is fine. git-bisect points to this commit.
There is one "FIXME: handle endianness switch" in here, but I don't spot
such code where it's being moved from either.
The FIXME here is only when we'll handle dynamic endianess switching of
the system (not of the CPU). It was not present in code moved in this
commit, and I only added the comment to tell where to place it.
My suspect is the cpu_inw() -> ldl_p() change, but I'm unsure whether
the code or the test is wrong...
Code removed in this commit was using DEVICE_NATIVE_ENDIAN, and then using
cpu_inl, which does a ldl_p.
Code added in this commit is using DEVICE_LITTLE_ENDIAN, and then is using
ldl_p.
So, yes, it seems that endianness of memory region does change things. Native
endian means native endian of the guest of of the host?
It means "default endianness of the guest cpu" so that accesses coming from the
CPU get passed in the value they had in the CPU registers :).
In that case, behaviour should be the same between x86 host and
openSUSE ppc/ppc64 and OSX ppc64 hosts.
The culprit is elsewhere...
Hervé