>Under newbus, of course, things look slightly different, so I tried >this: > >device sio2 at isa? port 0x280 flags 0x0201 irq 5 >device sio3 at isa? port 0x288 flags 0x0201 >device sio4 at isa? port 0x290 flags 0x0201 > [ ... ] >device sio9 at isa? port 0x2b8 flags 0x0201 > >Natch: "panic: NULL irq resource!" from nexus_setup_intr() in >sys/i386/i386/nexus.c while probing sio3 (and I know that sio2 >is probing successfully - see below).
This was apparently broken when sio was converted to new-bus. The driver (actually mainly isa.c) used to simply skip irq allocation for devices with no irq (COM_MULTIPORT non-master ones and polled ones). >Assuming (from the panic message) that it wants an IRQ, I've tried this: > >device sio2 at isa? port 0x280 flags 0x0201 irq 5 conflicts >device sio3 at isa? port 0x288 flags 0x0201 irq 5 conflicts > [ ... ] >device sio9 at isa? port 0x2b8 flags 0x0201 irq 5 conflicts > >Same bat-panic, same bat-probe. I don't understand why this doesn't get further, since the RF_SHAREABLE flag is (incorrectly) specified. sio fast interrupts are particularly unshareable. sio now forces fast interrupts, although this is wrong for sio pccard devices. >So, guys -- What is the officially blessed way of sharing IRQs under >newbus? It should be almost the same as it used to be: specify RF_SHAREABLE for allocating shared irq resources; this corresponds to not specifying INTR_EXCL in the pre-new-bus interface (intr_create()?). Bruce To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-current" in the body of the message