From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48173) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V3QCn-00012H-LO for qemu-devel@nongnu.org; Sun, 28 Jul 2013 08:36:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V3QCh-00070z-O7 for qemu-devel@nongnu.org; Sun, 28 Jul 2013 08:36:09 -0400 Received: from mail-we0-x22d.google.com ([2a00:1450:400c:c03::22d]:46347) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V3QCh-00070s-I1 for qemu-devel@nongnu.org; Sun, 28 Jul 2013 08:36:03 -0400 Received: by mail-we0-f173.google.com with SMTP id x55so3202583wes.32 for ; Sun, 28 Jul 2013 05:36:02 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Sun, 28 Jul 2013 14:35:54 +0200 Message-Id: <1375014954-31916-2-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH for-1.6] fw_cfg: the I/O port variant expects little-endian List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland The I/O port variant of fw_cfg is used by sparc64, which is a big-endian machine. Firmware swaps bytes before sending them to fw_cfg, so we need to unswap them in the device. This is only used on sparc64 and on (little-endian) x86, so it does not affect any other target. 32-bit Sparc and PPC all use memory-mapped fw_cfg. Reported-by: Mark Cave-Ayland Signed-off-by: Paolo Bonzini --- hw/nvram/fw_cfg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c index 0a35015..d0820e5 100644 --- a/hw/nvram/fw_cfg.c +++ b/hw/nvram/fw_cfg.c @@ -324,7 +324,7 @@ static const MemoryRegionOps fw_cfg_data_mem_ops = { static const MemoryRegionOps fw_cfg_comb_mem_ops = { .read = fw_cfg_comb_read, .write = fw_cfg_comb_write, - .endianness = DEVICE_NATIVE_ENDIAN, + .endianness = DEVICE_LITTLE_ENDIAN, .valid.accepts = fw_cfg_comb_valid, }; -- 1.8.1.4