MCA(8) BSD System Manager's Manual MCA(8)NAME
mca -- Machine Check Architecture control utility
mca [-d] [-f filename]
The mca utility provides minimal functionality to dump or display MCA records that were saved by the kernel during boot. The default behav-
iour of the mca utility is to display all new MCA records on stdout. When the -d option is given, the records are dumped in binary form.
The default file to which records are dumped is /var/log/mca.log. This can be changed by specifying the -f option. New records are appended
to the dump file.
Previously dumped records can be displayed by giving the name of the dump file with the -f option.
/var/log/mca.log default dump file
The mca utility appeared in FreeBSD 5.0 for ia64.
The development of the mca utility is still a work in progress.
BSD February 11, 2006 BSD
Check Out this Related Man Page
MCA(9) BSD Kernel Developer's Manual MCA(9)NAME
MCA, mca_intr_establish, mca_intr_disestablish, mca_intr_evcnt, mca_conf_read, mca_conf_write -- MicroChannel Architecture bus
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 registers
provide a window into a device to determine device-specific properties and configuration. The configuration of devices and their POS regis-
ters is performed using IBM's system configuration software.
The MCA bus uses level-triggered interrupts while the ISA bus uses edge-triggered interrupts. 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 mind.
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.
A structure use to inform the driver of MCA bus properties. It contains the following 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; /* 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.
Dis-establish the interrupt handler on the MCA bus specified by mc for the interrupt described completely 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 mc.
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 configuration 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 registers are device spe-
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 automat-
ically 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 registers.
SEE ALSO mca(4), autoconf(9), bus_dma(9), bus_space(9), driver(9), isa(9)BUGS
The machine-independent MCA driver does not currently support DMA. MCA devices which require DMA operation currently access the DMA capabil-
BSD October 7, 2001 BSD