Paul Brook wrote at Wed, 17 Mar 2010 11:18:09 +0000: >> Oh, well, yes, I remember. qemu is more strict on ISA irq sharing now. >> A bit too strict. >> >> /me goes dig out a old patch which never made it upstream for some >> reason I forgot. Attached. > > This is wrong. Two devices should never be manipulating the same qemu_irq > object. If you want multiple devices connected to the same IRQ then you need > an explicit multiplexer. e.g. arm_timer.c:sp804_set_irq. So... what we have to do here? I've looked at the mentioned routine, here it is: /* Merge the IRQs from the two component devices. */ static void sp804_set_irq(void *opaque, int irq, int level) { sp804_state *s = (sp804_state *)opaque; s->level[irq] = level; qemu_set_irq(s->irq, s->level[0] || s->level[1]); } But I know nothing about qemu internals, so don't quite understand how to do this in case of serial ports. I see it is tracking two timers and raises the irq level if at least one half is raised... That to say - I've got the idea, but how to apply it to serial ports? Thanks! /mjt -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html