| TC(9) | 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
#include
<sys/bus.h>
#include <dev/tc/tcvar.h>
#include <dev/tc/tcdevs.h>
void
tc_intr_establish(struct
device *dev, void
*cookie, int level,
int (*handler)(void *),
void *arg);
void
tc_intr_disestablish(struct
device *dev, void
*cookie);
const struct evcnt *
tc_intr_evcnt(struct
device *dev, void
*cookie);
void
tc_mb();
void
tc_wmb();
void
tc_syncbus();
int
tc_badaddr(tc_addr_t
tcaddr);
tc_addr_t
TC_DENSE_TO_SPARSE(tc_addr_t
addr);
tc_addr_t
TC_PHYS_TO_UNCACHED(tc_addr_t
addr);
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:
bus_space_tag_t ta_memt; bus_dma_tag_t ta_dmat; char ta_modname[TC_ROM_LLEN+1]; u_int ta_slot; tc_offset_t ta_offset; tc_addr_t ta_addr; void *ta_cookie; u_int ta_busspeed;
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)tc_intr_disestablish(dev,
cookie)tc_intr_evcnt(dev,
cookie)tc_mb()tc_wmb()tc_syncbus()tc_badaddr(tcaddr)TC_DENSE_TO_SPARSE(addr)TC_PHYS_TO_UNCACHED(addr)The TURBOchannel bus is a direct-connection bus. During autoconfiguration, 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. 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.
| October 7, 2001 | NetBSD 11.0 |