[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RfC PATCH] vga: add mmio bar to standard vga
From: |
Avi Kivity |
Subject: |
Re: [Qemu-devel] [RfC PATCH] vga: add mmio bar to standard vga |
Date: |
Wed, 19 Sep 2012 12:16:46 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120828 Thunderbird/15.0 |
On 09/18/2012 12:51 PM, Gerd Hoffmann wrote:
> This patch adds a mmio bar to the qemu standard vga which allows to
> access the standard vga registers and bochs dispi interface registers
> via mmio.
>
> diff --git a/hw/vga-pci.c b/hw/vga-pci.c
> index 9abbada..e05e2ef 100644
> --- a/hw/vga-pci.c
> +++ b/hw/vga-pci.c
> @@ -30,9 +30,36 @@
> #include "qemu-timer.h"
> #include "loader.h"
>
> +/*
> + * QEMU Standard VGA -- MMIO area spec.
> + *
> + * Using PCI bar #2, keeping #1 free, which leaves the
> + * door open to upgrade bar #0 to 64bit.
> + *
> + * mmio area layout:
> + * 0x0000 -> 0x03ff reserved, for possible virtio extension.
> + * 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.
> +
> +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.
--
error compiling committee.c: too many arguments to function