[lkml]   [2000]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: PNP design philosophy?
    On Thu, 9 Mar 2000, Peter Leif Rasmussen wrote:

    > First, excuse me but I am not on this list (too busy), but keeps up by
    > reading Kernel Traffic @ LinuxCare. I have compiled almost every release
    > of 2.3.* and with 2.3.50 wondered about the following.
    > What is the design philosophy of resource management in the kernel and
    > what should I expect in 2.4?
    > Specifically I am interested in IRQ, DMA and IO, but I suppose there is
    > more to it, and what dependance is expected on the BIOS in i386?
    > What worries me is that I have in one present i386 system:
    > 1.Legacy ISA cards
    > 2.ISA PNP cards
    > 3.PCI cards
    > 4.AGP card
    > 5.USB
    > 6.Basic stuff like keyboard, mouse, serial, parallel, etc.

    I don't understand how you could possibly have an AGP card on an i386 or
    any PCI or USB. Perhaps you are referring to "ix86"??

    The keyboard/mouse/serial/parallel are all handled by the kernel. There
    is no dependence upon the BIOS. I note that startup code insists in using
    the BIOS to set the keyboard repeat-rate, but that can be handled by
    the kernel after the system is booted so even it it didn't work it can
    be fixed once the system is up.

    > And here I don't seem to be able to specify for the kernel what IRQ, DMA
    > and IO port I want to go where. For example an ISA-PNP soundcard no longer
    > lets me tell it what IRQ, DMA and IO I want it to use because it gets it from
    > the PNP code. And I can't see that I am able to tell the PNP code what
    > resources I want to go where?

    Once the kernel is booted, it does not use the BIOS. However, when it
    is starting, still in 'real' mode, the boot code gets and saves
    information about the system from the BIOS. Often this information is
    wrong. For instance, there is a short word that is supposed to contain
    the total memory in kilobytes. 65535 * 1024 = 67,107,864. What happens
    if you have more? Simple, there is another BIOS hack that is supposed
    to handle it. However, some do, some don't.

    You can override possibly bad information, for drivers that support
    command-lines, by adding the appropriate command into the LILO loader
    configuration file.

    Some drivers don't support parameters that are different from their
    defaults because:

    (1) Physical connections do not exist, i.e., if a port is at 0x300,
    it's at 0x300. Nothing can be done about it. Same thing for some

    (2) Old drivers, especially for ISA, may never have been envisioned
    for this capability. In particular, shared interrupts were not available
    until recently. They require the APIC because, even though the 8259
    could be set up for level, the ISA bus had pull-up resistors making
    sharing an IRQ line impossible.

    (3) Some information is simply wrong and you get a better chance by
    just turning OFF PNP in the BIOS. For instance, I have a BusLogic
    SCSI controller which, although the BIOS finds it, the kernel won't
    unless PNP is turned OFF. The ASUS P2B-D/P2B-DS AGP mainboard BIOS
    has this problem.

    I just let the kernel find it without being confused by the bad info
    it has picked up during boot. I just turn OFF PNP.

    > In the particular system, I have to set up the BIOS manually to configure those
    > resources, and that makes my PNP capable Linux kernel dependant on the i386
    > BIOS, which in my book isn't good, because I could have a machine with a BIOS
    > without that capability. I would prefer to just set everything to automatic in
    > the BIOS (or nothing at all) and fiddle with the resources in the kernel.

    The kernels support initialization of the APIC, this is where it gets
    information about the devices.

    Execute `dmesg` >junk and look at the initialization sequence.

    Dick Johnson

    Penguin : Linux version 2.3.41 on an i686 machine (800.63 BogoMips).

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:56    [W:0.048 / U:2.636 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site