diff options
Diffstat (limited to 'c/src/lib/libbsp/sparc/shared/include/gr1553bm.h')
-rw-r--r-- | c/src/lib/libbsp/sparc/shared/include/gr1553bm.h | 204 |
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__ */ |