Plug & Play

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
PopStevo

Plug & Play

Post by PopStevo »

Hi,
I need help with understanding how Plug and Play works.
This is what I've read so far: when booting, the BIOS finds all the devices in the system and then makes resource assignments for each device to use.
But here's what I don't get: does the BIOS tell the devices which system resources to use, or does the OS have to access the assignment table (ESCD) and tell each driver which system resources should the device it controlls use.
Or have I got everything wrong? THANX
User avatar
gaf
Member
Member
Posts: 349
Joined: Thu Oct 21, 2004 11:00 pm
Location: Munich, Germany

RE:Plug & Play

Post by gaf »

Hi,
> when booting, the BIOS finds all the devices
> in the system and then makes resource
> assignments for each device to use.

I wouldn't rely on that. There are also BIOSes that only configure devices that are needed to boot the computer. In that case you'll have to configure the rest of the devices yourself. There are some documents telling you how to access the configuration data of PnP ISA cards and PCI cards at Bonafide:
http://www.osdever.net/documents/PNPBIO ... ?the_id=51
http://www.osdever.net/documents/PNP-IS ... ?the_id=54

> Does the BIOS tell the devices which system
> resources to use, or does the OS have to access
> the assignment table (ESCD) and tell each driver
> which system resources should the device it
> controlls use.

The BIOS will autodetect all Plug and Play compatible hardware. Therefore the OS only needs to inform it about legacy devices (non PnP ISA cards) in order to avoid conflicts when booting.

regards,
gaf

btw: I'll be away for the next 2 weeks, so don't be surprised if I don't answer any subsequent questions...
PopStevo

RE:Plug & Play

Post by PopStevo »

Thanx, but I guess I didn't put the question right.
I mean do I have to inform the devices (hardware) of its assignments or does the BIOS do that for me?
I think that I can't change the resources that non PnP devices use, but PnP devices can use the resources that the OS tells them... This is what I mean does the OS tell them or the BIOS?
THX again
User avatar
gaf
Member
Member
Posts: 349
Joined: Thu Oct 21, 2004 11:00 pm
Location: Munich, Germany

RE:Plug & Play

Post by gaf »

Hello
It really depends on your BIOS - some configure all the hardware so that you won't have to do anything and others only setup the devices necessary to start the OS (harddisk, console, keyboard). In the later case you'll have to configure the rest by yourself. What you basically need to do is get the PnP information from the BIOS and then configure all devices that have not yet been set up.

1. Access the PnP BIOS via the pmode entrypoint as described in the 'PNPBIOSSpecification' in order to get the configuration data of all mainboard devices (PIC, KBD controller, PIT).
2. Access the system BUS (ISA, PCI) to get the configuration data of all installed cards. You can find some usefull infos about how to do this in a ISA system in a document called 'PNP-ISA-v1.0a' - unfortunately I haven't found anything like this about PCI so far.
3. Now that you know which resources are already in use, you can configure all devices that have not been set up yet accordingly.

All the documents I mentioned above are available here:
http://www.microsoft.com/whdc/system/pn ... fault.mspx

regards,
gaf
Post Reply