Peter Maydell <peter.mayd...@linaro.org> writes: > On 10 June 2011 14:43, Jan Kiszka <jan.kis...@siemens.com> wrote: >> On 2011-06-10 15:10, Peter Maydell wrote: >>> This makes the wiring of this signal look like a property of the >>> isa-serial device, which is a bit odd, since it's just as much >>> a property of the piix3. Actually it's neither, it's a property >>> of the machine model, and you might actually want a syntax a bit >>> more like: >>> >>> piix3 = piix3(property=value, property=value...); >>> serial = isa-serial(property=value...); >>> connect(serial.irq, piix3.irq[3]); >> >> In fact, in the ISA case, it is a device property: The device, and only >> the device decides which IRQ to use - from the bus it is attached to. So >> attaching an ISA device to the bus of an ISA bridge like the PIIX3 and >> selecting local IRQ 3 are the steps we can already express today. > > Ah, in that case Anthony's suggestion of > -device piix3,id=piix3 -device isa-serial,id=serial,irq=piix3.irq[3] > wrong in a different way -- the isa-serial shouldn't care > what other device is providing the ISA bus it is sitting on, > it just has a property of which ISA irq line it is using > (and rely on an isa bus abstraction to wire things up at > the machine model level). [As you say, this works now.] > > But I think that's a non-typical case compared to the usual one > of "these wires are just hardwired this way by the machine".
IIRC, the PCI bus also provides a number of IRQ lines for the device to tickle (INTA#..INTD#). There's rarely a need to configure their use, though.