Home Man
Today's Posts

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

NetBSD 6.1.5 - man page for mca (netbsd section 9)

MCA(9)				  BSD Kernel Developer's Manual 			   MCA(9)

     MCA, mca_intr_establish, mca_intr_disestablish, mca_intr_evcnt, mca_conf_read,
     mca_conf_write -- MicroChannel Architecture bus

     #include <sys/bus.h>
     #include <dev/mca/mcavar.h>
     #include <dev/mca/mcadevs.h>

     void *
     mca_intr_establish(mca_chipset_tag_t mc, mca_intr_handle_t hdl, int level,
	 int (*handler)(void *), void *arg);

     mca_intr_disestablish(mca_chipset_tag_t mc, mca_intr_handle_t hdl);

     const struct evcnt *
     mca_intr_evcnt(mca_chipset_tag_t mc, mca_intr_handle_t hdl);

     mca_conf_read(mca_chipset_tag_t mc, int slot, int reg);

     mca_conf_write(mca_chipset_tag_t mc, int slot, int reg, int data);

     The MCA device provides support for IBM's MicroChannel Architecture bus found on IBM PS/2
     systems and selected workstations.  It was designed as a replacement bus for the ISA bus
     found on IBM's older machines.  However, the bus specifications were only available under
     license, so MCA did not achieve widespread acceptance in the industry.

     Being a replacement for the ISA bus, the MCA bus does share some similar aspects with the
     ISA bus.  Some MCA devices can be detected via the usual ISA-style probing.  However, most
     device detection is done through the Programmable Option Select (POS) registers.  These reg-
     isters provide a window into a device to determine device-specific properties and configura-
     tion.  The configuration of devices and their POS registers is performed using IBM's system
     configuration software.

     The MCA bus uses level-triggered interrupts while the ISA bus uses edge-triggered inter-
     rupts.  Level triggered interrupts have the advantage that they can be shared among multiple
     device.  Therefore, most MCA-specific devices should be coded with shared interrupts in

     Drivers for devices attached to the MCA bus will make use of the following data types:

	      Chipset tag for the MCA bus.

	      The opaque handle describing an established interrupt handler.

     struct mca_attach_args
	      A structure use to inform the driver of MCA bus properties.  It contains the fol-
	      lowing members:

		      bus_space_tag_t ma_iot;	      /* MCA I/O space tag */
		      bus_space_tag_t ma_memt;	      /* MCA mem space tag */
		      bus_dma_tag_t ma_dmat;	      /* MCA DMA tag */
		      int ma_slot;		      /* MCA slot number */
		      int ma_pos[8];		      /* MCA POS values */
		      int ma_id;		      /* MCA device */

     mca_intr_establish(mc, hdl, level, handler, arg)
	      Establish a MCA interrupt handler on the MCA bus specified by mc for the interrupt
	      described completely by hdl.  The priority of the interrupt is specified by level.
	      When the interrupt occurs the function handler is called with argument arg.

     mca_intr_disestablish(mc, hdl)
	      Dis-establish the interrupt handler on the MCA bus specified by mc for the inter-
	      rupt described completely hdl.

     mca_intr_evcnt(mc, hdl)
	      Do interrupt event counting on the MCA bus specified by mc for the event described
	      completely by hdl.

     mca_conf_read(mc, slot, reg)
	      Read the POS register reg for the device in slot slot on the MCA bus specified by

     mca_conf_write(mc, slot, reg, data)
	      Write data data to the POS register reg for the device in slot slot on the MCA bus
	      specified by mc.

     The MCA bus is a direct-connection bus.  During autoconfiguration, the parent specifies the
     MCA device ID for the found device in the ma_id member of the mca_attach_args structure.
     Drivers should match on the device ID.  Device capabilities and configuration information
     should be read from device POS registers using mca_conf_read().  Some important configura-
     tion information found in the POS registers include the I/O base address, memory base
     address and interrupt number.  The location of these configurable options with the POS reg-
     isters are device specific.

     The MCA bus supports 32-bit, bidirectional DMA transfers.	Currently, no machine-independent
     support for MCA DMA is available.

     The MCA subsystem itself is implemented within the file sys/dev/mca/mca_subr.c.  Machine-
     dependent portions can be found in sys/arch/<arch>/mca/mca_machdep.c.  The database of known
     devices exists within the file sys/dev/mca/mcadevs_data.h and is generated automatically
     from the file sys/dev/mca/mcadevs.  New vendor and product identifiers should be added to
     this file.  The database can be regenerated using the Makefile sys/dev/mca/Makefile.mcadevs.

     A good source of information about MCA devices is IBM's system configuration disk.  The disk
     contains .adf files which describe the location of device configuration options in the POS

     mca(4), autoconf(9), bus_dma(9), bus_space(9), driver(9), isa(9)

     The machine-independent MCA driver does not currently support DMA.  MCA devices which
     require DMA operation currently access the DMA capabilities directly.

BSD					 October 7, 2001				      BSD

All times are GMT -4. The time now is 09:12 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
Show Password