On 4/22/10, Richard Henderson <r...@twiddle.net> wrote: > On 04/22/2010 12:38 PM, Blue Swirl wrote: > > Subpages are used when there are several devices on the same page. > > It's needed for at least Sparc32. > > > That's fine. > > > > Subwidth (with NULL) is used mainly to indicate that the device does > > not accept accesses in some access widths. Sparc32 and Sparc64 need > > this (or some other way to signal bus errors for bad access widths). > > > This is also fine. Although by using NULL all you'd get is a qemu > null pointer dereference; I suppose this might get caught and > translated to an cpu exception, but I think it would be preferable > long-term to be more explicit about this and fill in the entries > with a function that would explicitly raise the exception.
Perhaps also the bus layer could do something here. > What this *does* confirm for me is that we don't need to support > multiple devices at the same address, differentiated by the size > of the reference. Which is something that the current subpage > implementation actually supports. Yes, I also agree it's a bit overkill. > I'll submit a patch to clean this up. > > > > In fact, many system devices on Sparc64 should only accept 64 bit > > accesses, but currently we can't enforce this. > > > Cool. This is something that should be fixed by the end result > of the driver interface re-design that pbrook and I have been > discussing on IRC. Interesting. Could you make a summary of the design for the benefit of the list?