[Core Change] Port i8259 fixes from XQEMU 1.x

32cba22 i8259: in edge triggered mode apparently a training edge should cancel the interrupt
ad6aef5 nforce chipset seems to allow setting irq0-3 to level triggered
This commit is contained in:
Matt Borgerson 2018-06-26 12:29:48 -07:00
parent 0ed317ff4b
commit 6338bfae98
2 changed files with 5 additions and 0 deletions

View File

@ -147,6 +147,9 @@ static void pic_set_irq(void *opaque, int irq, int level)
}
s->last_irr |= mask;
} else {
#ifdef XBOX
s->irr &= ~mask;
#endif
s->last_irr &= ~mask;
}
}

View File

@ -95,7 +95,9 @@ ISADevice *i8259_init_chip(const char *name, ISABus *bus, bool master)
dev = DEVICE(isadev);
qdev_prop_set_uint32(dev, "iobase", master ? 0x20 : 0xa0);
qdev_prop_set_uint32(dev, "elcr_addr", master ? 0x4d0 : 0x4d1);
#ifndef XBOX
qdev_prop_set_uint8(dev, "elcr_mask", master ? 0xf8 : 0xde);
#endif
qdev_prop_set_bit(dev, "master", master);
qdev_init_nofail(dev);