*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->NetBSD man pages -> tc (9)              
Title
Content
Arch
Section
 

TC(9)

Contents


NAME    [Toc]    [Back]

     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

SYNOPSIS    [Toc]    [Back]

     #include <machine/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);

DESCRIPTION    [Toc]    [Back]

     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.

DATA TYPES    [Toc]    [Back]

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

     struct tc_attach_args
              A structure use to inform the driver of TURBOchannel bus properties.
  It contains the following members:

                      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.

FUNCTIONS    [Toc]    [Back]

     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
              arg.

     tc_intr_disestablish(dev, cookie)
              Dis-establish the interrupt handler with device dev for the
              interrupt described completely cookie.

     tc_intr_evcnt(dev, 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.

     tc_wmb()
              A write memory barrier.  Any CPU-to-memory writes before before
              the barrier must complete before any CPU-to-memory writes after
              it.

     tc_syncbus()
              Synchronise writes on the TURBOchannel bus by ensuring CPU
              writes are propagated across the TURBOchannel bus.

     tc_badaddr(tcaddr)
              Returns non-zero if the given address tcaddr is invalid.

     TC_DENSE_TO_SPARSE(addr)
              Convert the given physical address addr in TURBOchannel dense
              space to the corresponding address in TURBOchannel sparse space.

     TC_PHYS_TO_UNCACHED(addr)
              Convert the given system memory physical address addr to the
              physical address of the corresponding region that is not cached.

AUTOCONFIGURATION    [Toc]    [Back]

     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.

DMA SUPPORT    [Toc]    [Back]

     The TURBOchannel bus supports 32-bit, bidirectional DMA transfers.  Support
 is provided by the standard bus_dma(9) interface.

CODE REFERENCES    [Toc]    [Back]

     This section describes places within the NetBSD source tree where actual
     code implementing or utilising 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
     sys/arch/<arch>/tc/tcbus.c.

SEE ALSO    [Toc]    [Back]

      
      
     tc(4), autoconf(9), bus_dma(9), bus_space(9), driver(9)

BSD                             October 7, 2001                            BSD
[ Back ]
 Similar pages
Name OS Title
tcasic OpenBSD TURBOchannel host bus support
asc OpenBSD NCR 53c[f]94 on-board or TURBOchannel SCSI controller
ioasic_submatch NetBSD baseboard I/O control ASIC for DEC TURBOchannel systems
ioasic_attach_devs NetBSD baseboard I/O control ASIC for DEC TURBOchannel systems
ioasic_intr_disestablish NetBSD baseboard I/O control ASIC for DEC TURBOchannel systems
ioasic_intr_evcnt NetBSD baseboard I/O control ASIC for DEC TURBOchannel systems
ioasic_intr_establish NetBSD baseboard I/O control ASIC for DEC TURBOchannel systems
ioasic NetBSD baseboard I/O control ASIC for DEC TURBOchannel systems
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service