qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Re: Compile files only once: some planning


From: Anthony Liguori
Subject: Re: [Qemu-devel] Re: Compile files only once: some planning
Date: Wed, 24 Mar 2010 15:28:41 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091209 Fedora/3.0-4.fc12 Lightning/1.0pre Thunderbird/3.0

On 03/24/2010 03:24 PM, Blue Swirl wrote:
On 3/24/10, Michael S. Tsirkin<address@hidden>  wrote:
On Wed, Mar 24, 2010 at 10:05:10PM +0200, Blue Swirl wrote:
  >  On 3/24/10, Michael S. Tsirkin<address@hidden>  wrote:
  >  >  On Tue, Mar 23, 2010 at 11:43:51PM +0200, Blue Swirl wrote:
  >  >   >  rtl8139.c, e1000.c: need to convert ldl/stl to 
cpu_physical_memory_read/write.
  >  >
  >  >
  >  >  I don't see how it would help. These still get target_phys_addr_t which
  >  >   is per-target. Further, a ton of devices do
  >  >   cpu_register_physical_memory/qemu_register_coalesced_mmio.
  >  >   These are also per target.
  >
  >  I don't know what I was eating yesterday: there are no references to
  >  ldl/stl in either rtl8139 or e1000. In fact, the conversion is simple
  >  for the device itself, just add a property "be". The attached patch
  >  performs this part.
  >
  >  But now there is a bigger problem, how to pass the property to the
  >  device. It's not fair to require the user to remember to set it.


I still don't fully understand how come e1000 cares about
  target endianness.
It shouldn't. Maybe the real fix is to remove the byte swapping.

My previous pci memory functions patches removed the byte swapping.

The problem is that PCI devices are going to operate in little endian mode (usually) whereas the CPU may be acting in big endian mode. We need to do a byte swap somewhere but the better place to do it is in the PCI bus layer.

Regards,

Anthony Liguori




reply via email to

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