diff options
author | Blue Swirl <blauwirbel@gmail.com> | 2012-11-17 16:38:05 +0000 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2012-11-17 16:38:05 +0000 |
commit | ab4dd33dc3127a3830591b597a1f42be3686e1fd (patch) | |
tree | df00e3eb08af8c6da6745acf62d085e2cda5f028 | |
parent | 83eeb39669a19716a44bcad5a34158543b3779b8 (diff) | |
parent | c96c53b5f10c4b34e9fe1dcb1a5aadf204c16279 (diff) |
Merge branch 'vga.1' of git://git.kraxel.org/qemu
* 'vga.1' of git://git.kraxel.org/qemu:
vga: fix mmio vga register mapping
vga: fix bochs alignment issue
-rw-r--r-- | docs/specs/standard-vga.txt | 3 | ||||
-rw-r--r-- | hw/vga-pci.c | 7 | ||||
-rw-r--r-- | hw/vga.c | 3 |
3 files changed, 7 insertions, 6 deletions
diff --git a/docs/specs/standard-vga.txt b/docs/specs/standard-vga.txt index 1cecccd469..8a4c1e93cd 100644 --- a/docs/specs/standard-vga.txt +++ b/docs/specs/standard-vga.txt @@ -36,7 +36,8 @@ IO ports used 03c0 - 03df : standard vga ports 01ce : bochs vbe interface index port -01cf : bochs vbe interface data port +01cf : bochs vbe interface data port (x86 only) +01d0 : bochs vbe interface data port Memory regions used diff --git a/hw/vga-pci.c b/hw/vga-pci.c index ec29cac7f4..947e35c76f 100644 --- a/hw/vga-pci.c +++ b/hw/vga-pci.c @@ -84,9 +84,10 @@ static void pci_vga_ioport_write(void *ptr, hwaddr addr, uint64_t val, unsigned size) { PCIVGAState *d = ptr; + switch (size) { case 1: - vga_ioport_write(&d->vga, addr, val); + vga_ioport_write(&d->vga, addr + 0x3c0, val); break; case 2: /* @@ -94,8 +95,8 @@ static void pci_vga_ioport_write(void *ptr, hwaddr addr, * indexed registers with a single word write because the * index byte is updated first. */ - vga_ioport_write(&d->vga, addr, val & 0xff); - vga_ioport_write(&d->vga, addr+1, (val >> 8) & 0xff); + vga_ioport_write(&d->vga, addr + 0x3c0, val & 0xff); + vga_ioport_write(&d->vga, addr + 0x3c1, (val >> 8) & 0xff); break; } } @@ -2321,9 +2321,8 @@ static const MemoryRegionPortio vbe_portio_list[] = { { 0, 1, 2, .read = vbe_ioport_read_index, .write = vbe_ioport_write_index }, # ifdef TARGET_I386 { 1, 1, 2, .read = vbe_ioport_read_data, .write = vbe_ioport_write_data }, -# else - { 2, 1, 2, .read = vbe_ioport_read_data, .write = vbe_ioport_write_data }, # endif + { 2, 1, 2, .read = vbe_ioport_read_data, .write = vbe_ioport_write_data }, PORTIO_END_OF_LIST(), }; |