qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-1.6] fw_cfg: the I/O port variant expects li


From: Mark Cave-Ayland
Subject: Re: [Qemu-devel] [PATCH for-1.6] fw_cfg: the I/O port variant expects little-endian
Date: Mon, 29 Jul 2013 12:44:12 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20130116 Icedove/10.0.12

On 28/07/13 13:35, Paolo Bonzini wrote:

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<address@hidden>
Signed-off-by: Paolo Bonzini<address@hidden>
---
  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,
  };

Hi Paolo,

I can confirm that this fixes SPARC64 boot for me - thanks!

Tested-by: Mark Cave-Ayland <address@hidden>


ATB,

Mark.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]