From: Gerd Hoffmann <kraxel@redhat.com>
To: Avi Kivity <avi@redhat.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [RfC PATCH] vga: add mmio bar to standard vga
Date: Wed, 19 Sep 2012 13:35:09 +0200 [thread overview]
Message-ID: <5059ADED.9000504@redhat.com> (raw)
In-Reply-To: <50598D7E.8010909@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 1031 bytes --]
>> + * 0x0400 -> 0x041f vga ioports (0x3c0 -> 0x3df), remapped 1:1
>
> Do they support word accesses to set both index and data?
>
>> + * 0x0500 -> 0x0515 bochs dispi interface registers, mapped flat without
>> + * index/data ports. Use (index << 1) as offset for
>> + * (16bit) register access.
>> + */
>
> BAR should disappear with -M old.
Sure. I have a patch in flight which adds the pc-1.3 machine type, once
this is in I can easily add the compat stuff.
>> +static const MemoryRegionOps pci_vga_ioport_ops = {
>> + .read = pci_vga_ioport_read,
>> + .write = pci_vga_ioport_write,
>> + .valid.min_access_size = 1,
>> + .valid.max_access_size = 4,
>> + .impl.min_access_size = 1,
>> + .impl.max_access_size = 1,
>> + .endianness = DEVICE_LITTLE_ENDIAN,
>> +};
>
> Looks like word writes are supported provided the memory API breaks up
> writes in little endian order. Better to make it explicit.
Like the attached incremental patch?
cheers,
Gerd
[-- Attachment #2: 0001-fixup-vga-mmio.patch --]
[-- Type: text/plain, Size: 1752 bytes --]
>From d46b14dfd74dcc37fe187dc76cd681ad7dbff2d5 Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Wed, 19 Sep 2012 13:31:04 +0200
Subject: [PATCH] [fixup] vga mmio
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
hw/vga-pci.c | 25 ++++++++++++++++++++++---
1 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/hw/vga-pci.c b/hw/vga-pci.c
index e05e2ef..7fd305d 100644
--- a/hw/vga-pci.c
+++ b/hw/vga-pci.c
@@ -78,14 +78,33 @@ static uint64_t pci_vga_ioport_read(void *ptr, target_phys_addr_t addr,
unsigned size)
{
PCIVGAState *d = ptr;
- return vga_ioport_read(&d->vga, addr);
+ uint64_t ret = 0;
+
+ switch (size) {
+ case 1:
+ ret = vga_ioport_read(&d->vga, addr);
+ break;
+ case 2:
+ ret = vga_ioport_read(&d->vga, addr);
+ ret |= vga_ioport_read(&d->vga, addr+1) << 8;
+ break;
+ }
+ return ret;
}
static void pci_vga_ioport_write(void *ptr, target_phys_addr_t addr,
uint64_t val, unsigned size)
{
PCIVGAState *d = ptr;
- vga_ioport_write(&d->vga, addr, val);
+ switch (size) {
+ case 1:
+ vga_ioport_write(&d->vga, addr, val);
+ break;
+ case 2:
+ vga_ioport_write(&d->vga, addr, val & 0xff);
+ vga_ioport_write(&d->vga, addr+1, (val >> 8) & 0xff);
+ break;
+ }
}
static const MemoryRegionOps pci_vga_ioport_ops = {
@@ -94,7 +113,7 @@ static const MemoryRegionOps pci_vga_ioport_ops = {
.valid.min_access_size = 1,
.valid.max_access_size = 4,
.impl.min_access_size = 1,
- .impl.max_access_size = 1,
+ .impl.max_access_size = 2,
.endianness = DEVICE_LITTLE_ENDIAN,
};
--
1.7.1
next prev parent reply other threads:[~2012-09-19 11:35 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-18 9:51 [Qemu-devel] [RfC PATCH] vga: add mmio bar to standard vga Gerd Hoffmann
2012-09-18 10:32 ` Benjamin Herrenschmidt
2012-09-18 11:49 ` Gerd Hoffmann
2012-09-19 9:16 ` Avi Kivity
2012-09-19 11:35 ` Gerd Hoffmann [this message]
2012-09-19 12:13 ` Avi Kivity
2012-09-19 18:45 ` Blue Swirl
2012-09-20 5:43 ` Gerd Hoffmann
2012-09-22 12:12 ` Blue Swirl
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=5059ADED.9000504@redhat.com \
--to=kraxel@redhat.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--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).