aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2012-11-12 12:40:46 +0100
committerGerd Hoffmann <kraxel@redhat.com>2012-11-16 11:27:06 +0100
commitdf9ffb726ff13f850b8829be1bc85ed621b903ac (patch)
tree6efef30636c19ec2de30f42826d3f88db6fd4079
parent6801038bc52d61f81ac8a25fbe392f1bad982887 (diff)
vga: fix bochs alignment issue
The bochs dispi interface traditionally uses port 0x1ce as 16bit index register and port 0x1cf as 16bit data register. The later is unaligned, and probably for that reason the the data register was moved to 0x1d0 for non-x86 archs. This patch makes the data register available at 0x1d0 on x86 too. The old x86 location is kept for compatibility reasons, so both 0x1cf and 0x1d0 can be used as data register on x86. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r--docs/specs/standard-vga.txt3
-rw-r--r--hw/vga.c3
2 files changed, 3 insertions, 3 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.c b/hw/vga.c
index 81aa76bef9..2b0200a164 100644
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -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(),
};