summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc/shared/include/gr1553bm.h
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/sparc/shared/include/gr1553bm.h')
-rw-r--r--c/src/lib/libbsp/sparc/shared/include/gr1553bm.h204
1 files changed, 0 insertions, 204 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/include/gr1553bm.h b/c/src/lib/libbsp/sparc/shared/include/gr1553bm.h
deleted file mode 100644
index 058bc59a45..0000000000
--- a/c/src/lib/libbsp/sparc/shared/include/gr1553bm.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/* GR1553B BM driver
- *
- * COPYRIGHT (c) 2010.
- * 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 __GR1553BM_H__
-#define __GR1553BM_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Register GR1553B driver needed by BM driver */
-extern void gr1553bm_register(void);
-
-struct gr1553bm_entry {
- uint32_t time; /* bit31=1, bit 30=0 */
- uint32_t data; /* bit31=0, bit 30=0 */
-};
-
-#define GR1553BM_ERROPTS_MANL 0x02
-#define GR1553BM_ERROPTS_UDWL 0x04
-#define GR1553BM_ERROPTS_IMCL 0x08
-#define GR1553BM_ERROPTS_ALL 0x0e
-
-/* Function used to implement a custom copy routine.
- * Returns number of bytes the desctionation address
- * should be incremented with.
- *
- * \param dst Optional Destination address
- * \param src Source DMA address
- * \param nentires Number of entries to be processed.
- * \param data Custom Data (set by config)
- */
-typedef int (*bmcopy_func_t)(
- unsigned int dst,
- struct gr1553bm_entry *src,
- int nentries,
- void *data
- );
-
-/* IRQ function callback, called on BM DMA error */
-typedef void (*bmisr_func_t)(void *bm, void *data);
-
-/* BM driver configuration */
-struct gr1553bm_config {
-
- /*** Time options ***/
-
- /* 8-bit time resolution, the BM will update the time according
- * to this setting. 0 will make the time tag be of highest
- * resolution (no division), 1 will make the BM increment the
- * time tag once for two time ticks (div with 2), etc.
- */
- uint8_t time_resolution;
-
- /* Enable Time Overflow IRQ handling. Setting this to 1
- * makes the driver to update the 64-bit time by it self,
- * it will use time overflow IRQ to detect when the 64-bit
- * time counter must be incremented.
- *
- * If set to zero, the driver expect the user to call
- * gr1553bm_time() regularly, it must be called more often
- * than the time overflows to avoid an incorrect time.
- */
- int time_ovf_irq;
-
-
-
- /*** Filtering options ***/
-
- /* Bus error log options
- *
- * bit0,4-31 = reserved, set to zero
- * Bit1 = Enables logging of Invalid mode code errors
- * Bit2 = Enables logging of Unexpected Data errors
- * Bit3 = Enables logging of Manchester/parity errors
- */
- unsigned int filt_error_options;
-
- /* RT Address filtering bit mask. Each bit enables (if set)
- * logging of a certain RT sub address. Bit 31 enables logging
- * of broadcast messages.
- */
- unsigned int filt_rtadr;
-
- /* RT Subaddress filtering bit mask, bit definition:
- * 31: Enables logging of mode commands on subadr 31
- * 1..30: BitN enables/disables logging of RT subadr N
- * 0: Enables logging of mode commands on subadr 0
- */
- unsigned int filt_subadr;
-
- /* Mode code Filter, is written into "BM RT Mode code filter"
- * register, please see hardware manual for bit declarations.
- */
- unsigned int filt_mc;
-
-
-
- /*** Buffer options ***/
-
- /* Size of buffer in bytes, must be aligned to 8-byte
- * The size is limited to max 4Mb.
- */
- unsigned int buffer_size;
-
- /* Custom buffer, must be aligned to 8-byte and be of buffer_size
- * length. If NULL dynamic memory allocation is used.
- */
- void *buffer_custom;
-
- /* Custom Copy function, may be used to implement a more
- * effective way of copying the DMA buffer. For example
- * the DMA log may need to be compressed before copied
- * onto a storage, this function can be used to avoid an
- * extra copy.
- */
- bmcopy_func_t copy_func;
-
- /* Optional Custom Data passed on to copy_func() */
- void *copy_func_arg;
-
-
-
- /*** Interrupt options ***/
-
- /* Custom DMA error function, note that this function is called
- * from Interrupt Context. Set to NULL to disable this callback.
- */
- bmisr_func_t dma_error_isr;
-
- /* Optional Custom Data passed on to dma_error_isr() */
- void *dma_error_arg;
-};
-
-/* Open BM device by instance number (minor)
- *
- * The return value is used as input parameter in all other function calls
- * in the A
- */
-extern void *gr1553bm_open(int minor);
-
-/* Close previously opened Bm device */
-extern void gr1553bm_close(void *bm);
-
-/* Configure the BM driver before starting */
-extern int gr1553bm_config(void *bm, struct gr1553bm_config *cfg);
-
-/* Start logging */
-extern int gr1553bm_start(void *bm);
-
-/* Get 64-bit 1553 Time. Low 24-bit time is acquired from BM hardware,
- * the MSB is taken from a software counter internal to the driver. The
- * counter is incremented every time the Time overflows by:
- * - using "Time overflow" IRQ if enabled in user configuration
- * - by checking IRQ flag (IRQ disabled), it is required that user
- * calls this function before the next time overflow.
- *
- * The BM timer is limited to 24-bits, in order to handle overflows
- * correctly and maintain a valid time an Interrupt handler is used
- * or this function must be called when IRQ is not used.
- *
- * Update software time counters and return the current time.
- */
-extern void gr1553bm_time(void *bm, uint64_t *time);
-
-/* Return zero when logging has not been started, non-zero when logging
- * has been started
- */
-extern int gr1553bm_started(void *bm);
-
-/* Check how many entries are currently stored in the BM Log DMA-area */
-extern int gr1553bm_available(void *bm, int *nentries);
-
-/* Stop logging */
-extern void gr1553bm_stop(void *bm);
-
-/* Read a maximum number of entries from LOG buffer. This function
- * must be
- *
- * Arguments
- * bm - Private pointer returned by gr1553bm_open()
- * dst - Address where log data is written
- * max - (IN/OUT) Maximum number of entires, when successfull
- * the number of entries actually written is stored
- * into the address of max.
- *
- * Result
- * 0 = success
- * -1 = fail. (may be due to BM logging not started)
- */
-extern int gr1553bm_read(void *bm, struct gr1553bm_entry *dst, int *max);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __GR1553BM_H__ */