[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Re: >2 serial ports?
From: |
Michael Tokarev |
Subject: |
Re: [Qemu-devel] Re: >2 serial ports? |
Date: |
Mon, 22 Mar 2010 11:35:17 +0300 |
User-agent: |
Mozilla-Thunderbird 2.0.0.22 (X11/20090706) |
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