PNP design philosophy?

From: Peter Leif Rasmussen (plr@cedara.com)
Date: Thu Mar 09 2000 - 09:45:50 EST


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.

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?

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.

I would therefore hope that reasonable defaults are attempted used by the
kernel so no conflicts occur (presently, I am not able to run the mentioned
ISA-PNP soundcard because of an IRQ conflict), but that it is also manually
configurable either through command line options or /proc.

If someone could therefore enlighten me and calm me down, or tell me that
I'll have to start hacking the kernel myself I'd appreciate it. Or that I
am a dofus that missed the boat and that it is a well thought out issue :-)

Thank you very much,

Peter

--
main(){char*s="O_>>^PQAHBbPQAHBbPOOH^^PAAHBJPAAHBbPA_H>BB";int i,j,k=1,l,m,n;
for(j=0;j<7;j++)for(l=0;m=l-6+j,i=m/6,n=j*6+i,k=1<<m%6,l<41-j;l++)
putchar(l<6-j?' ':l==40-j?'\n':k&&s[n]&k?'*':' ');}

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



This archive was generated by hypermail 2b29 : Wed Mar 15 2000 - 21:00:15 EST