From: Robert Reif <reif@earthlink.net>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: Paul Brook <paul@codesourcery.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] 64 bit I/O support v7
Date: Fri, 01 May 2009 13:29:59 -0400 [thread overview]
Message-ID: <49FB3197.3000805@earthlink.net> (raw)
In-Reply-To: <f43fc5580905010851x5680f65btd8c2eabb71aaa73a@mail.gmail.com>
Blue Swirl wrote:
> On 5/1/09, Paul Brook <paul@codesourcery.com> wrote:
>
>>>> sparc hardware is rather abnormal (for qemu at least) because it cares
>>>>
>> > > what happens when you use the wrong width. Most devices don't care, and
>> > > having any NULL functions is liable to introduce significant overhead.
>> >
>>
>>
>>> Ok, so that explains the curious code in m48t59.c:
>>>
>>> ...
>>>
>>> So nvram_writeq should be present on non sparc architectures
>>>
>> > and actually should be doing 8 byte accesses? How do we handle
>> > architecture differences like this? On sparc, it looks like the
>> > sbus controller does this because the actual hardware really
>> > only has an 8 bit bus.
>>
>>
>> Are there actually any cases where this matters?
>>
>> My guess is that in pactice we only have certain SPARC devices that need to
>> trap when you do a wrong sized access, and for everything else you're told
>> not to do that, and qemu can happily return garbage.
>>
>> If this is the case then the IO_MEM_SUBWIDTH code seems like complete
>> overkill. I reccommend ripping it out, and maybe having the registration
>> function replace NULL with the unassigned hander.
>>
>
> Maybe the registration could also be changed so that if the device
> only cares for (say) 16 bits (and does not want trapping for the wrong
> sized access), the 64, 32 and 8 bit cases are emulated at higher
> level. This would shrink the code base a bit and maybe fits to the bus
> model.
>
>
>
>
This sounds like the way to go. The device would only need to support
its natural bus width and a higher level bus driver would be responsible
for doing the bus width conversion or faulting. This moves the bus width
conversion code from each driver up to a specific bus driver. The bus
driver could be a simple as converting NULL to helper functions.
next prev parent reply other threads:[~2009-05-01 17:33 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-21 11:42 [Qemu-devel] [PATCH] 64 bit I/O support v7 Robert Reif
2009-05-01 12:03 ` Paul Brook
2009-05-01 13:46 ` Robert Reif
2009-05-01 14:14 ` Paul Brook
2009-05-01 14:39 ` Robert Reif
2009-05-01 14:52 ` Paul Brook
2009-05-01 15:19 ` Robert Reif
2009-05-01 15:33 ` Paul Brook
2009-05-01 15:51 ` Blue Swirl
2009-05-01 16:36 ` Edgar E. Iglesias
2009-05-01 17:29 ` Robert Reif [this message]
2009-05-02 0:02 ` Robert Reif
2009-05-02 0:40 ` Paul Brook
2009-05-01 23:42 ` Robert Reif
2009-05-01 23:57 ` Paul Brook
2009-05-02 15:23 ` Blue Swirl
2009-05-02 19:35 ` Paul Brook
2009-05-05 1:59 ` Jamie Lokier
2009-05-05 6:05 ` Edgar E. Iglesias
2009-05-01 14:25 ` Robert Reif
2009-05-01 14:39 ` Paul Brook
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=49FB3197.3000805@earthlink.net \
--to=reif@earthlink.net \
--cc=blauwirbel@gmail.com \
--cc=paul@codesourcery.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).