qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [5849] Change MMIO callbacks to use offsets, not absol


From: Robert Reif
Subject: Re: [Qemu-devel] [5849] Change MMIO callbacks to use offsets, not absolute addresses.
Date: Mon, 23 Feb 2009 20:05:33 -0500
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.19) Gecko/20081204 SeaMonkey/1.1.14

Paul Brook wrote:
Sparc devices are passed in their physical addresses.  They are
currently hard wired
because there is no proper bus/slot layer and only on-broad devices are
implemented
anyway.  However each system may have the same hardware located at
different locations
so this may not be typical QEMU behavior. Real hardware deals with real
addresses.

Oh real hardware address decoding is typically implemented as chip selects in the host bridge, routing tables in the switch fabric, and/or having individual devices do address decoding and claiming transactions on a shared bus. Modelling full per-device address decoding simply isn't feasible, we have to use additional knowledge (e.g. PCI BARs or fixed address fanges) to perform that decoding at a higher level.

The layers above the device emulation must be responsible for generating the
the physical address appropriately. This is looking at the problem from a sparc
perspective.

Sparc hardware is very fault happy and will generate a fault if you look at it funny. This isn't an issue when running a fully debugged OS but limits QEMU's usefulness
as a OS development platform.

The open boot self tests do strange and unimplemented things and I would
like to see more of that work in the future. The same applies to more than the
currently supported OSs.  I would rather have the hardware emulation work
properly and run any OS than the current approach of trying a specific
OS and hardware configuration and fixing what breaks.  All I want is QEMU
to be a better product.

How do you propose having the hardware drivers generate meaningful and timely faults when an improper access is performed so it behaves like real low level software expects the hardware to behave? A device could generate a fault and pass the offset up to a higher layer that has knowledge of the real physical address but that
currently doesn't exist.




reply via email to

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