diff options
author | grehan <grehan@FreeBSD.org> | 2013-09-06 05:55:43 +0000 |
---|---|---|
committer | grehan <grehan@FreeBSD.org> | 2013-09-06 05:55:43 +0000 |
commit | b669765ba2f25c8728a64074b58066017eff9e5f (patch) | |
tree | 79fc1b81ba6f4c675ddc3fdb1a57959b11c638a9 /usr.sbin/bhyve | |
parent | 1d24f8b2c76c5013cd5b2e661fb0f035fba19a5c (diff) | |
download | FreeBSD-src-b669765ba2f25c8728a64074b58066017eff9e5f.zip FreeBSD-src-b669765ba2f25c8728a64074b58066017eff9e5f.tar.gz |
Allow level-triggered interrupt sources. While this isn't
precisely emulated, it is good enough for the single consumer
i.e. irq4, the serial port on Linux.
Diffstat (limited to 'usr.sbin/bhyve')
-rw-r--r-- | usr.sbin/bhyve/ioapic.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/usr.sbin/bhyve/ioapic.c b/usr.sbin/bhyve/ioapic.c index c712692..114b446 100644 --- a/usr.sbin/bhyve/ioapic.c +++ b/usr.sbin/bhyve/ioapic.c @@ -101,13 +101,13 @@ ioapic_set_pinstate(struct vmctx *ctx, int pin, bool newstate) * XXX * We only deal with: * - edge triggered interrupts - * - physical destination mode * - fixed delivery mode + * Level-triggered sources will work so long as their is + * no sharing. */ low = ioapic->redtbl[pin]; high = ioapic->redtbl[pin] >> 32; if ((low & IOART_INTMASK) == IOART_INTMCLR && - (low & IOART_TRGRMOD) == IOART_TRGREDG && (low & IOART_DESTMOD) == IOART_DESTPHY && (low & IOART_DELMOD) == IOART_DELFIXED) { vector = low & IOART_INTVEC; |