pnp man page on Inferno

Man page or keyword search:  
man Server   579 pages
apropos Keyword Search (all sections)
Output format
Inferno logo
[printable version]

PNP(3)									PNP(3)

NAME
       pnp, pci - Plug 'n' Play ISA and PCI Interfaces

SYNOPSIS
       bind -a '#$' /dev

       /dev/pci/bus.dev.fnctl
       /dev/pci/bus.dev.fnraw

       /dev/pnp/ctl
       /dev/pnp/csnnctl
       /dev/pnp/csnnraw
       ...

DESCRIPTION
       This  device  provides  a limited interface to the PCI bus and Plug 'n'
       Play ISA devices.  Both are present on most PC  platforms;  on  others,
       only the pci interface is present (because there is no ISA bus).

   PCI Interface
       PCI devices are addressed logically by a bus number, a device number on
       that bus, and a function number within the device.  The set of all such
       device  functions  may  be enumerated by traversing the /dev/pci direc‐
       tory; the driver serves two files for each function.  These are a  con‐
       trol  file  which may be read for a textual summary of the device func‐
       tion, and a `raw' file which may be read to obtain the raw contents  of
       PCI configuration space.

       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,	 sepa‐
       rated  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.

   Plug 'n' Play
       Plug 'n' Play ISA devices are discovered by sending  a  fixed  `unlock'
       sequence	 over  an  I/O	port,  and then reading back data from another
       port.  An arbitration algorithm is used to separate out the  individual
       cards  and enumerate them in turn.  Each card is assigned a unique num‐
       ber, called a CSN, in the range	1-255  as  a  result  of  enumeration.
       Cards  also have a fixed 64 bit identification number, set by the manu‐
       facturer, which is used by the arbitration algorithm  to	 resolve  con‐
       flicts.	 The first 32 bits describe the type of the card, and the sec‐
       ond 32 bits form a serial number for the particular  instance  of  that
       card  type.   When formatted textually, it appears as 3 upper-case let‐
       ters (typically representing the manufacturer), followed by 4 hex  dig‐
       its, then a period, then 8 hex digits.  The substring before the period
       is the card type, and the substring after the period is the serial num‐
       ber.

       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  configura‐
       tion 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 may be read to determine the ID of the card, and a raw file 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 vari‐
       ous  configurable  resources  of the card, but this has not been imple‐
       mented 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 imple‐
       mented.

EXAMPLES
       To list all PCI functions:

	      cat /dev/pci/*ctl

       To find just the PCI video card (class 3):

	      grep '^03' /dev/pci/*ctl

SOURCE
       /os/pc/devpnp.c
       /os/port/devpci.c

BUGS
       There  is  currently  no way to write to PCI configuration space, or to
       perform reads of less than 32 bits.   Access  to	 the  I/O  and	memory
       regions of a PCI device is not provided.

       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)
[top]

List of man pages available for Inferno

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net