> i'm not entirely sure i understand.  "pnp o/s = no" causes the bios
> to assign an irq to the pcic controller, meaning the pcic controller
> raises that interrupt on insertions/removals, but the driver,
> operating in polling mode, never clears the interrupt so the machine
> wedges trying to service it?  if this is correct, how does ddb
> manage to unwedge things?

In some cases, the issue is that the interrupt generated by the bridge is 
level-triggered, which means that a failure to handle and clear it 
results in an interrupt loop.  I don't know why breaking to DDB would 
ever fix this.  If the interrupt is shared with other hardware (in your 
case, it appears to be shared with the UHCI controller, which is normal) 
then the interplay simply becomes more complex (because the failure may 
be due to bad behaviour in other code which responds differently when 
single-stepped due to timing interactions with the hardware).

> the fix in -current is the pci interrupt routing code which allows
> us to set "pnp os = yes" in the bios and let freebsd make irq
> assignments only for devices it understands?  any chance this will
> MFC-ed?

The "correct" fix is to improve our old and badly broken pccard/cardbus 
code, which is a work in progress.  The interrupt routing code exists so 
that we can deal with bridges which don't have an interrupt correctly 
assigned (typically it's connected OK, but we don't know where to).

-- 
... every activity meets with opposition, everyone who acts has his
rivals and unfortunately opponents also.  But not because people want
to be opponents, rather because the tasks and relationships force
people to take different points of view.  [Dr. Fritz Todt]
           V I C T O R Y   N O T   V E N G E A N C E




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-stable" in the body of the message

Reply via email to