Index: qemu-kvm-1.0.1/ioport.c =================================================================== --- qemu-kvm-1.0.1.orig/ioport.c +++ qemu-kvm-1.0.1/ioport.c @@ -177,6 +177,22 @@ int register_ioport_write(pio_addr_t sta return 0; } +static uint32_t ioport_readb_nop(void *opaque, uint32_t addr) +{ + IORange *ioport = opaque; + + printf("ignore 1byte read to %lx\n", addr - ioport->base); + return 0; +} + +static uint32_t ioport_readw_nop(void *opaque, uint32_t addr) +{ + IORange *ioport = opaque; + + printf("ignore 2byte read to %lx\n", addr - ioport->base); + return 0; +} + static uint32_t ioport_readb_thunk(void *opaque, uint32_t addr) { IORange *ioport = opaque; @@ -204,6 +220,20 @@ static uint32_t ioport_readl_thunk(void return data; } +static void ioport_writeb_nop(void *opaque, uint32_t addr, uint32_t data) +{ + IORange *ioport = opaque; + + printf("ignore 1byte write to %lx data %x\n", addr - ioport->base, data); +} + +static void ioport_writew_nop(void *opaque, uint32_t addr, uint32_t data) +{ + IORange *ioport = opaque; + + printf("ignore 2byte write to %lx data %x\n", addr - ioport->base, data); +} + static void ioport_writeb_thunk(void *opaque, uint32_t addr, uint32_t data) { IORange *ioport = opaque; @@ -227,6 +257,24 @@ static void ioport_writel_thunk(void *op void ioport_register(IORange *ioport) { + if ((ioport->base == 0xcf8 || ioport->base == 0xcfc) && + ioport->len == 4) { + register_ioport_read(ioport->base, ioport->len, 1, + ioport_readb_nop, ioport); + register_ioport_read(ioport->base, ioport->len, 2, + ioport_readw_nop, ioport); + + register_ioport_write(ioport->base, ioport->len, 1, + ioport_writeb_nop, ioport); + register_ioport_write(ioport->base, ioport->len, 2, + ioport_writew_nop, ioport); + + register_ioport_read(ioport->base, ioport->len, 4, + ioport_readl_thunk, ioport); + register_ioport_write(ioport->base, ioport->len, 4, + ioport_writel_thunk, ioport); + return; + } register_ioport_read(ioport->base, ioport->len, 1, ioport_readb_thunk, ioport); register_ioport_read(ioport->base, ioport->len, 2,