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 *),
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
A structure use to inform the driver of TURBOchannel bus properties. 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 com-
pletely 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 arg.
Dis-establish the interrupt handler with device dev for the interrupt described
Do interrupt event counting with device dev for the event described completely by
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 the barrier must complete
before any CPU-to-memory writes after it.
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 corre-
sponding 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 autoconfiguration, the parent spec-
ifies 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. Support is provided by
the standard bus_dma(9) interface.
The TURBOchannel subsystem itself is implemented within the file sys/dev/tc/tc_subr.c.
Machine-dependent portions can be found in sys/arch/<arch>/tc/tcbus.c.
tc(4), autoconf(9), bus_dma(9), bus_space(9), driver(9)
BSD October 7, 2001 BSD