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
Plug & Play
RE:Plug & Play
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...
> 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...
RE:Plug & Play
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
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
RE:Plug & Play
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
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