Summary of PnP BIOS problems

From: Thomas Hood (jdthoodREMOVETHIS@yahoo.co.uk)
Date: Fri Sep 21 2001 - 16:31:46 EST


I have been looking into the cause of my PnP BIOS woes recently
and FYI here is what I've found out.

1) setpnp contains a bug such that arguments of 0 given to the
   irq or dma command cause setpnp to disable the irq or dma.
   setpnp ought to (try to) set the irq or dma to zero. The
   way to disable an irq or dma is to do this:
      setpnp -- 0b irq -1
   (The '--' is required so that the '-1' isn't mistaken for an
    option.)
   A patch has been submitted to the pcmcia-cs bug tracking
   system.

2) parport_pc.c contains a bit of mysterious code that rejects
   the assignment of DMA0. parport_pc treats this as if it
   meant "disabled". This was discussed in another thread.
   I suspect that the rejection of DMA0 is unnecessary, but
   I may well be wrong. The current code should at least be
   commented ... by someone who knows for sure why the code
   is there.

3) pnp_bios.c contained a bug (fixed in -ac13) such that the
   driver would report disabled irqs as IRQ0. (It ought to
   report a disabled irq as irq -1.)

4) pnp_bios.c swaps the "boot" and "current" configurations.
   The result is that on my ThinkPad "setpnp -b 0b irq 7" changes
   the current configuration while "setpnp 0b irq 7" changes
   the boot configuration. Also, "setpnp on" copies the current
   to the boot config instead of vice versa. There may be
   other strange side-effects of this. I have just submitted
   a patch to fix this.

5) The pnpbios driver queries the BIOS for all PnP devices at
   init time, then it acts as if the configurations of these
   devices never change, whereas setpnp does change the
   configurations. Code is needed that will fix this, but
   only for machines whose BIOSes won't crash the machine if
   they are called later than init time. Once the preceding
   issues have been addressed (in a couple of weeks) I'll try
   to implement this fix ... unless someone more competent than
   myself wants to volunteer. :)

6) There remains a problem that I haven't yet figured out:
   On my ThinkPad 600, running the recent -ac kernels (at
   least since 2.4.7) does something to the PnP BIOS such
   that on a subsequent reboot, the current configuration
   of all configurable devices is set to "disable". I am
   currently working around this problem by running setpnp
   during my boot sequence (which is why I have been so
   interested in the pnpbios driver of late). The bug
   should be fixed properly, but I have no idea where the
   bug might be. Anyone have any ideas?

7) While I'm at it I might as well ask a question that I asked
   before: Would it be possible to connect the isa-pnp driver
   to the pnpbios driver in such a way that device drivers
   would not have to query both in order to determine the
   hardware config. What I have in mind is that the isa-pnp
   driver would call pnpbios if PnP setup was done by the
   BIOS; otherwise it would go ahead and do the PnP configuration
   itself, as usual. If this could be implemented then it
   would save us having to make all the device drivers pnpbios-
   aware.

Thomas Hood
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Sep 23 2001 - 21:00:45 EST