TC(9) BSD Kernel Developer's Manual TC(9)
TC, tc_intr_establish, tc_intr_disestablish, tc_intr_evcnt. tc_mb,
tc_wmb, tc_syncbus, tc_badaddr, TC_DENSE_TO_SPARSE, TC_PHYS_TO_UNCACHED
-- TURBOchannel bus
tc_intr_establish(struct device *dev, void *cookie, int level,
int (*handler)(void *), void *arg);
tc_intr_disestablish(struct device *dev, void *cookie);
const struct evcnt *
tc_intr_evcnt(struct device *dev, void *cookie);
The TC device provides support for the DEC TURBOchannel bus found on all
DEC TURBOchannel machines with MIPS (DECstation 5000 series, excluding
the 5000/200) and Alpha (3000-series) systems. TURBOchannel is a 32-bit
wide synchronous DMA-capable bus, running at 25 MHz on higher-end
machines and at 12.5 MHz on lower-end machines.
Drivers for devices attached to the TURBOchannel bus will make use of the
following data types:
A structure use to inform the driver of TURBOchannel bus proper-
ties. It contains the following members:
The ta_busspeed member specifies the TURBOchannel bus speed and
is useful for time-related functions. Values values are
TC_SPEED_12_5_MHZ for the 12.5 MHz bus and TC_SPEED_25_MHZ for
the 50 MHz bus.
tc_intr_establish(dev, cookie, level, handler, arg)
Establish an interrupt handler with device dev for the interrupt
described completely by cookie, the value passed to the driver
in the ta_cookie member of the tc_attach_args structure. The
priority of the interrupt is specified by level. When the
interrupt occurs the function handler is called with argument
Dis-establish the interrupt handler with device dev for the
interrupt described completely cookie.
Do interrupt event counting with device dev for the event
described completely by cookie.
tc_mb() A read/write memory barrier. Any CPU-to-memory reads/writes
before the barrier must complete before any CPU-to-memory
reads/writes after it.
A write memory barrier. Any CPU-to-memory writes before before
the barrier must complete before any CPU-to-memory writes after
Synchronise writes on the TURBOchannel bus by ensuring CPU
writes are propagated across the TURBOchannel bus.
Returns non-zero if the given address tcaddr is invalid.
Convert the given physical address addr in TURBOchannel dense
space to the corresponding address in TURBOchannel sparse space.
Convert the given system memory physical address addr to the
physical address of the corresponding region that is not cached.
The TURBOchannel bus is a direct-connection bus. During autoconfigura-
tion, the parent specifies the name of the found TURBOchannel module into
the ta_modname member of the tc_attach_args structure. Drivers should
match on this name.
The TURBOchannel bus supports 32-bit, bidirectional DMA transfers. Sup-
port is provided by the standard bus_dma(9) interface.
This section describes places within the NetBSD source tree where actual
code implementing or using the machine-independent TURBOchannel subsystem
can be found. All pathnames are relative to /usr/src.
The TURBOchannel subsystem itself is implemented within the file
sys/dev/tc/tc_subr.c. Machine-dependent portions can be found in
tc(4), autoconf(9), bus_dma(9), bus_space(9), driver(9)
BSD October 7, 2001 BSD