diff options
Diffstat (limited to 'c/src/lib/libbsp/sparc/shared/include/grslink.h')
-rw-r--r-- | c/src/lib/libbsp/sparc/shared/include/grslink.h | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/include/grslink.h b/c/src/lib/libbsp/sparc/shared/include/grslink.h deleted file mode 100644 index 575a24aee4..0000000000 --- a/c/src/lib/libbsp/sparc/shared/include/grslink.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Header file for RTEMS GRSLINK SLINK master driver - * - * COPYRIGHT (c) 2009. - * Cobham Gaisler AB. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - */ - -#ifndef __GRSLINK_H__ -#define __GRSLINK_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/**** Configuration ****/ -/* Collect statistics ? */ -#define SLINK_COLLECT_STATISTICS - -/* Frequency of SLINK SCLK */ -#define SLINK_FREQ_HZ 6000000 -/* Number of queues used in driver */ -#define SLINK_NUMQUEUES 4 - -/* The four values below are only used in the demo software */ -#define SLINK_CORE_REGBASE 0x80000600 -#define SLINK_CORE_IRQ 6 -#define IRQ_CNTRL_REG 0x80000200 -#define IRQ_CNTRL_MASK_OFFSET 0x40 - -/* - * Structure returned by SLINK_statistics if SLINK_COLLECT_STATISTCS has - * been defined - */ -typedef struct { - unsigned int parerr; /* Number of parity errors */ - unsigned int recov; /* Number of receive overflows */ - unsigned int reads; /* Number of completed READs */ - unsigned int writes; /* Number of performed WRITES */ - unsigned int sequences; /* Number of started SEQUENCEs */ - unsigned int seqcomp; /* Number of completed SEQUENCEs */ - unsigned int interrupts; /* Number of INTERRUPT transfers */ - unsigned int lostwords; /* Number of lost words due to full queue */ -} SLINK_stats; - -/**** SLINK status codes ****/ -#define SLINK_ABORTED 0 -#define SLINK_QFULL 1 -#define SLINK_ACTIVE 2 -#define SLINK_AMBAERR 3 -#define SLINK_COMPLETED 4 -#define SLINK_PARERR 5 -#define SLINK_ROV 6 /* Only used internally in driver */ - -/**** SLINK master register fields *****/ -/* Control register */ -#define SLINK_C_SLEN_POS 16 -#define SLINK_C_SRO (1 << 8) -#define SLINK_C_SCN_POS 4 -#define SLINK_C_PAR (1 << 3) -#define SLINK_C_AS (1 << 2) -#define SLINK_C_SE (1 << 1) -#define SLINK_C_SLE (1 << 0) - -/* Status register fields */ -#define SLINK_S_SI_POS 16 -#define SLINK_S_PERR (1 << 7) -#define SLINK_S_AERR (1 << 6) -#define SLINK_S_ROV (1 << 5) -#define SLINK_S_RNE (1 << 4) -#define SLINK_S_TNF (1 << 3) -#define SLINK_S_SC (1 << 2) -#define SLINK_S_SA (1 << 1) -#define SLINK_S_SRX (1 << 0) - -/* Mask register fields */ -#define SLINK_M_PERRE (1 << 7) -#define SLINK_M_AERRE (1 << 6) -#define SLINK_M_ROVE (1 << 5) -#define SLINK_M_RNEE (1 << 4) -#define SLINK_M_TNFE (1 << 3) -#define SLINK_M_SCE (1 << 2) -#define SLINK_M_SAE (1 << 1) -#define SLINK_M_SRXE (1 << 0) - -/**** Macros ****/ -/* Get channel field from received SLINK word */ -#define SLINK_WRD_CHAN(x) ((x >> 16) & 0xF) -/* Get IO card # from received SLINK word */ -#define SLINK_WRD_CARDNUM(x) ((x >> 21) & 0x3) -/* Get data part from SLINK word */ -#define SLINK_WRD_PAYLOAD(x) (x & 0xFFFF) - -/* Checks status value to see if transmit queue has free slot */ -#define SLINK_STS_TRANSFREE(x) (x & SLINK_S_TNF) -/* Get Sequence Index value */ -#define SLINK_STS_SI(x) ((x >> 16) & 0xFF) - -/**** Function declarations, driver interface ****/ -/* Initializes the SLINK core */ -int SLINK_init(unsigned int nullwrd, int parity, int qsize, - void (*interrupt_trans_handler)(int), - void (*sequence_callback)(int)); - -/* Enables the core */ -void SLINK_start(void); - -/* Disables the core */ -void SLINK_stop(void); - -/* Reads one word */ -int SLINK_read(int data, int channel, int *reply); - -/* Writes one word */ -int SLINK_write(int data, int channel); - -/* Peforms a SEQUENCE */ -int SLINK_seqstart(int *a, int *b, int n, int channel, int reconly); - -/* Aborts a SEQUENCE */ -void SLINK_seqabort(void); - -/* Status of current or last SEQUENCE */ -int SLINK_seqstatus(void); - -/* Number of words transferred in last SEQUENCE */ -int SLINK_seqwrds(void); - -/* Returns value of core's status register */ -int SLINK_hwstatus(void); - -/* Returns number of elements in queue associated with IO card */ -int SLINK_queuestatus(int iocard); - -/* Take first element from queue for IO card # 'iocard' */ -int SLINK_dequeue(int iocard, int *elem); - -/* Returns structure containing core driver statistics */ -SLINK_stats *SLINK_statistics(void); - -#ifdef __cplusplus -} -#endif - -#endif /* __GRSLINK_H__ */ |