diff options
Diffstat (limited to 'c/src/lib/libbsp/sparc/shared/include/gr1553bc.h')
-rw-r--r-- | c/src/lib/libbsp/sparc/shared/include/gr1553bc.h | 250 |
1 files changed, 0 insertions, 250 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/include/gr1553bc.h b/c/src/lib/libbsp/sparc/shared/include/gr1553bc.h deleted file mode 100644 index ec766d2147..0000000000 --- a/c/src/lib/libbsp/sparc/shared/include/gr1553bc.h +++ /dev/null @@ -1,250 +0,0 @@ -/* GR1553B BC 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. - * - * OVERVIEW - * ======== - * This driver controls the BC device, located at an on-chip AMBA or an - * AMBA-over-PCI bus. The driver operates the BC device and provides you - * with interrupt services and core control. The driver start execution of - * a synchronuos and/or an asynchronous BC descriptor List. The list contains - * a descriptor table and a software description to make some operations - * possible, for example translate descriptor-address into descriptor-number. - * - * BC descriptors are generated by the list API, available in gr1553bc_list.h. - * - * See gr1553bc_list.h for more information. - */ - -#ifndef __GR1553BC_H__ -#define __GR1553BC_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declaration */ -struct gr1553bc_list; -struct gr1553bc_major; -struct gr1553bc_minor; -struct gr1553bc_minor_cfg; -struct gr1553bc_major_cfg; - -#ifdef __cplusplus -} -#endif - -#include <stdint.h> -#include <bsp/gr1553bc_list.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* Register GR1553B driver needed by BC driver */ -extern void gr1553bc_register(void); - -/* A BC descriptor accessed as is */ -struct gr1553bc_bd_raw { - volatile uint32_t words[4]; -}; - -/* A BC descriptor accessed as a transfer descriptor */ -struct gr1553bc_bd_tr { - volatile uint32_t settings[2]; - volatile uint32_t dptr; - volatile uint32_t status; -}; - -/* A BC descriptor accessed as a conditional descriptor */ -struct gr1553bc_bd_cond { - volatile uint32_t cond; - volatile uint32_t bdptr; - volatile uint32_t padding[2]; -}; - -/* A BC descriptor accessed any way */ -union gr1553bc_bd { - struct gr1553bc_bd_raw raw; - struct gr1553bc_bd_tr tr; - struct gr1553bc_bd_cond cond; -}; - -/* Current state of the BC hardware */ -struct gr1553bc_status { - unsigned int status; - unsigned int time; -}; - -#define KEEP_TIMESLOT 0x10 -/* Initialize a BC descriptor. The words written is controllable by - * the flags argument. - * - * flags: - * bit[N=0..3]: 1 = set BD wordN according to argument wordN, - * 0 = do not modify BD wordN - * - * If bit KEEP_TIMESLOT is set the time slot of word0 is preserved, - * this bit only have an affect when the descriptor is a transfer - * descriptor. - */ -extern void gr1553bc_bd_init( - union gr1553bc_bd *bd, - unsigned int flags, - uint32_t word0, - uint32_t word1, - uint32_t word2, - uint32_t word3 - ); - -/* Initialize a Transfer descriptor - * - * Arguments: - * struct gr1553bc_bd_tr *bd - * uint32_t setting0 - * uint32_t setting1 - * uint32_t data - * uint32_t status - */ -#define gr1553bc_bd_tr_init(bd, set0, set1, data, status) \ - gr1553bc_bd_init((union gr1553bc_bd *)bd,\ - 0xf, set0, set1, data, status) -/* Initializa a Condition descriptor - * - * Arguments: - * struct gr1553bc_bd_cond *bd - * uint32_t cond - * uint32_t jump_adr - */ -#define gr1553bc_bd_cond_init(bd, cond, jump_adr) \ - gr1553bc_bd_init((union gr1553bc_bd *)bd, \ - 0xf, cond, jump_adr, 0, 0) - -/* Size of a descriptor */ -#define GR1553BC_BD_SIZE sizeof(struct gr1553bc_bd_raw) - -/* Alignment of a descriptor */ -#define GR1553BC_BD_ALIGN 16 - -/* End of list marker */ -#define GR1553BC_TR_EOL 0x80ffffff - -#define GR1553BC_BD_TYPE 0x80000000 - -/* Condition descriptor bits */ -#define GR1553BC_UNCOND_JMP 0x820000ff -#define GR1553BC_UNCOND_IRQ 0x860000ff -#define GR1553BC_UNCOND_NOJMP 0x82000000 - -/* Transfer descriptor bits */ -#define GR1553BC_TR_DUMMY_0 0x00000000 -#define GR1553BC_TR_DUMMY_1 0x80000000 - -#define GR1553BC_TR_TIME 0x0000ffff - -#define GR1553BC_TR_EXTTRIG 0x40000000 - -/* Take a GR1553BC hardware device identified by instance index (minor). - * A pointer is returned that is used internally by the GR1553BC - * driver, it is used as an input paramter 'bc' to all other - * functions that manipulate the hardware. - */ -extern void *gr1553bc_open(int minor); - -extern void gr1553bc_close(void *bc); - -/* Stores Current Major/Minor frame number and the Slot number executing - * into the location indicated by 'mid'. There may be two lists executing - * in "parallel", the 'async' argument select for which list the MID is - * looked up, the Syncronous (async=0) list or the Asynchronous (async=1) - * list. - * - */ -extern int gr1553bc_indication(void *bc, int async, int *mid); - -/* Trigger external time sync by writing to the BC action register. - * This may be good for debugging or if the time management is - * implemented in software. - * - * if trig=0 the external trigger memory is cleared. - * if trig!=0 the external trigger memory is set. - */ -extern void gr1553bc_ext_trig(void *bc, int trig); - -/* Configure the GR1553BC driver */ -/*extern int gr1553bc_config(struct gr1553bc_config *cfg);*/ - -/* Start major frame processing. At least one list pointer must be - * non-zero to affect BC operation. The BC communication is enabled - * depending on list and Interrupts are enabled. This function can - * be called multiple times. - * - * If a list is already executing it will be replaced with the new - * list. - * - * list - Schedule Transfer List - * list_async - Asynchronous list - */ -extern int gr1553bc_start - ( - void *bc, - struct gr1553bc_list *list, - struct gr1553bc_list *list_async - ); - -/* Pause GR1553B BC scheduled transfers. - * - * Does not affect asynchronous operation. - */ -extern int gr1553bc_pause(void *bc); - -/* Restart GR1553B BC scheduled transfers, after being paused - * - * Does not affect asynchronous operation. - */ -extern int gr1553bc_restart(void *bc); - -/* Stop BC transmission. - * - * OPTIONS - * bit0 - 1=STOP schedule list - * bit1 - 1=STOP asynchronous list - */ -extern int gr1553bc_stop(void *bc, int options); - -/* Standard IRQ function setup. IRQ can be generated by condition descriptors - * or by transfer descriptors or by errors. - * - * Condition descriptors are inserted into the list by user, each condition - * may have a custom function and data assigned to it, see - * gr1553bc_slot_irq_prepare(). IRQs generated by condition descriptors are - * not handled by this function. - * - * Transfer descriptors can generate IRQ if enabled by user. - * - * IRQs generated by transfer descriptors or by BC errors (DMA error etc.) - * is handled by this standard ISR handler. - */ -extern int gr1553bc_irq_setup - ( - void *bc, - bcirq_func_t func, - void *data - ); - -/* Get Current BC hardware state/status. The Status is stored into the - * area pointed to by status. See "struct gr1553bc_status" for more - * info. - */ -extern void gr1553bc_status(void *bc, struct gr1553bc_status *status); - -#ifdef __cplusplus -} -#endif - -#endif /* __GR1553BC_H__ */ |