From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48546) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WXFI5-0001zv-30 for qemu-devel@nongnu.org; Mon, 07 Apr 2014 15:33:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WXFHz-0005sj-23 for qemu-devel@nongnu.org; Mon, 07 Apr 2014 15:33:09 -0400 Message-ID: <5342FD5B.1020203@web.de> Date: Mon, 07 Apr 2014 21:32:43 +0200 From: =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= 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> <53406704.7060705@reactos.org> In-Reply-To: <53406704.7060705@reactos.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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?SGVydsOpIFBvdXNzaW5lYXU=?= , Alexander Graf Cc: Peter Maydell , Paolo Bonzini , qemu-ppc@nongnu.org, qemu-devel@nongnu.org, Bruce Rogers Am 05.04.2014 22:26, schrieb Hervé Poussineau: > 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 >>> >>> Remove now duplicated code from prep board. >>> >>> Signed-off-by: Hervé Poussineau >>> Signed-off-by: Andreas Färber >>> --- >>> 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. >> >> 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? > > I also checked tests/endianness-test.c. > The failing test is: > isa_outl(test, 0xe0, 0x87654321); > g_assert_cmphex(isa_inl(test, 0xe0), ==, 0x87654321); > g_assert_cmphex(isa_inw(test, 0xe2), ==, 0x8765); > g_assert_cmphex(isa_inw(test, 0xe0), ==, 0x4321); > which seems perfectly valid as ISA is little-endian. > > However, PReP is marked as bswap= true in this file, which means that > values are inverted before writing and after reading them. I tested .bswap = false - that fixes ppc64 host but breaks x86_64 host. Any further suggestions anyone? Regards, Andreas > Paolo, what does it mean? It is supposed to be true for big endian > machines, and false for little endian machines ? > > Hervé