Re: [Etherboot-developers] Re: etherboot && isa pnp
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: <ebi...@ln...> - 2001-06-09 12:06:32
|
Markus Gutschke <ma...@gu...> writes: > It's been forever since I looked into this, so I am probably getting > all the details wrong. I believe that PNP devices are completely > invisible, until the system probes for them and activates them. > Probing works by writing some "magic" bit patterns that somehow > allow for enumerating all PNP devices. There are some shared ports, and the enumeration works by allowing multiple devices to respond at once. Then after you have an idea of the maximal set of bits that can be set you simply narrow the addresses down. > Once a PNP device has been > found, it can be queried for the resources that it requires. The BIOS > or the OS should then compare these requirements with all the other > resources used by all other hardware, allocate the resources and > configured the PNP device accordingly. Only now does the device show > up in the system. Pretty much. For practical purposes this is the same as PCI. 2.4.x has support in the kernel for doing all of that. > Ken is probably right that some interaction with the BIOS is > involved, but I am even more hazy on those issues. Normally there is a bios option PNP OS. As long as you tell it your OS is not PNP your BIOS should setup the device with a valid range of ports. > I just checked with the source code of Linux v2.4.5ac10 and there is > code for ISA PNP in linux/drivers/pnp. I don't think that this code > by itself provides sufficient information to write PNP support for > etherboot, but if you also track down the specs, then you could probably > write a couple of lines of code that allow etherboot to activate a PNP > networking card. Actually it should be if you assume the BIOS allocates resources for the device. In which case it should simply be a matter of doing pnp to discover the device, and it's currently assigned resources. It should be able to be used much like pci.c is used now. > You probably have to be careful not to activate any > other cards, not to activate any interrupts or DMA, querying the BIOS > for a range of addresses that is unused and deactivating the device > after use. If the BIOS won't set up resources for the card you have problems. It is hard to get the assignments of all devices on the system. On the other hand it is probably reasonable to have a default set of resources that you assume are going to work, if the BIOS hasn't done it's job and set up those resources. Eric |