>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

Reply via email to