From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43540) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WWXBk-00036E-U0 for qemu-devel@nongnu.org; Sat, 05 Apr 2014 16:27:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WWXBf-0001Bu-7X for qemu-devel@nongnu.org; Sat, 05 Apr 2014 16:27:40 -0400 Message-ID: <53406704.7060705@reactos.org> Date: Sat, 05 Apr 2014 22:26:44 +0200 From: =?UTF-8?B?SGVydsOpIFBvdXNzaW5lYXU=?= MIME-Version: 1.0 References: <1395272166-687-1-git-send-email-andreas.faerber@web.de> <1395272166-687-3-git-send-email-andreas.faerber@web.de> <53402437.7030400@web.de> In-Reply-To: <53402437.7030400@web.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PULL for-2.0 2/7] raven: Implement non-contiguous I/O region List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= , paolo bonzini Cc: qemu-ppc@nongnu.org, Alexander Graf , qemu-devel@nongnu.org Hi Andreas, Le sam. 05 avril 2014 17:41:43 CEST, Andreas F=C3=A4rber a =C3=A9crit : > Hi Herv=C3=A9, > > Am 20.03.2014 00:36, schrieb Andreas F=C3=A4rber: >> From: Herv=C3=A9 Poussineau >> >> Remove now duplicated code from prep board. >> >> Signed-off-by: Herv=C3=A9 Poussineau >> Signed-off-by: Andreas F=C3=A4rber >> --- >> 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=3D1 > [...] > /ppc/endianness/prep: *= * > ERROR:/Users/andreas/QEMU/tests/endianness-test.c:131:test_endianness: > assertion failed (isa_inw(test, 0xe2) =3D=3D 0x8765): (0x00004321 =3D=3D= 0x00008765) > FAIL > [...] > /ppc/endianness/split/prep: *= * > ERROR:/Users/andreas/QEMU/tests/endianness-test.c:206:test_endianness_s= plit: > assertion failed (isa_inw(test, 0xe2) =3D=3D 0x8765): (0x00004321 =3D=3D= 0x00008765) > FAIL > [...] > /ppc/endianness/combine/prep: *= * > ERROR:/Users/andreas/QEMU/tests/endianness-test.c:253:test_endianness_c= ombine: > assertion failed (isa_inw(test, 0xea) =3D=3D 0x8765): (0x00004321 =3D=3D= 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 spo= t > such code where it's being moved from either. > > 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=20 using cpu_inl, which does a ldl_p. Code added in this commit is using DEVICE_LITTLE_ENDIAN, and then is=20 using ldl_p. So, yes, it seems that endianness of memory region does change things.=20 Native endian means native endian of the guest of of the host? I also checked tests/endianness-test.c. The failing test is: isa_outl(test, 0xe0, 0x87654321); g_assert_cmphex(isa_inl(test, 0xe0), =3D=3D, 0x87654321); g_assert_cmphex(isa_inw(test, 0xe2), =3D=3D, 0x8765); g_assert_cmphex(isa_inw(test, 0xe0), =3D=3D, 0x4321); which seems perfectly valid as ISA is little-endian. However, PReP is marked as bswap=3D true in this file, which means that=20 values are inverted before writing and after reading them. Paolo, what does it mean? It is supposed to be true for big endian=20 machines, and false for little endian machines ? Herv=C3=A9