bind -a '#$' /dev /dev/pci/bus.dev.fnctl /dev/pci/bus.dev.fnraw /dev/pnp/ctl /dev/pnp/csnnctl /dev/pnp/csnnraw ...
The first field of a PCI control file contains the class, sub-class and programming interface values for the device function, expressed as 2-digit hexadecimal values, and separated by periods. The second field yields the vendor ID and device ID, each as 4-digit hex numbers, separated by a slash. The third field is the associated interrupt line in decimal. The remainder of the line enumerates any valid base address registers for the function, using two fields for each. In the first field, the index of the register is followed by a colon, and then the value of the register itself. The following field gives the associated size of the memory (or I/O space) that is mapped by the register.
The enumeration algorithm needs to be enabled by specifying the port number to write the unlock sequence out on. This can be configured to take place at boot time by adding a line like the following to plan9.ini:
pnp0=port=0x203
Here port should be chosen to not conflict with any existing devices. It must be in the range 0x203-0x3ff. Alternatively, one can use the following command:
echo port 0x203 >/dev/pnp/ctl
Note that a side-effect of PnP enumeration is to reset the configuration state of all such cards; any settings made by a Plug and Play BIOS will be lost. Reading the file /dev/pnp/ctl returns one of the strings enabled port or disabled.
For each enumerated card, two files are served in /dev/pnp. A control file (/dev/pnp/csnnctl) may be read to determine the ID of the card, and a raw file (/dev/pnp/csnnraw) may be read to obtain the configuration data associated with the card. It is intended that the control file should take commands which set the various configurable resources of the card, but this has not been implemented yet.
A mechanism is provided for configuring cards via plan9.ini(10.6). A line of the form pnpn=idstring ... will cause the driver to look for the card named by idstring and, if found, assign it the CSN n. The intention is that any additional text after the idstring is interpreted as if it was written to the card's ctl file, but this is not yet implemented.
cat /dev/pci/*ctl
To find just the PCI video card (class 3):
grep '^03' /dev/pci/*ctl
The ability to set a Plug 'n' Play card's configurable settings has not been implemented.
There should be a user program for identifying and configuring Plug 'n' Play cards.
PNP(3 ) | Rev: Thu Feb 15 14:43:36 GMT 2007 |