diff options
Diffstat (limited to 'include/altera.h')
| -rw-r--r-- | include/altera.h | 73 | 
1 files changed, 45 insertions, 28 deletions
| diff --git a/include/altera.h b/include/altera.h index 88f72db03..74b6729f9 100644 --- a/include/altera.h +++ b/include/altera.h @@ -28,46 +28,63 @@  #define _ALTERA_H_  /* - * Note that this is just  Altera FPGA interface boilerplate. - * There is no support for Altera devices yet. - * - * See include/xilinx.h for a working example. + * See include/xilinx.h for another working example.   */ -/* In your board's config.h file you should define CONFIG_FPGA as such: - *	#define CONFIG_FPGA 	(CFG_ALTERA_xxx | CFG_ALTERA_IF_xxx ) - */ +/* Altera Model definitions + *********************************************************************/ +#define CFG_ACEX1K		CFG_FPGA_DEV( 0x1 ) -/* Altera Model definitions */ -#define CFG_ALTERA_xxxx		( CFG_FPGA_ALTERA | CFG_FPGA_DEV( 0x1 )) +#define CFG_ALTERA_ACEX1K	(CFG_FPGA_ALTERA | CFG_ACEX1K)  /* Add new models here */ -/* Altera Interface definitions */ -#define CFG_ALTERA_IF_xxx		CFG_FPGA_IF( 0x1 ) +/* Altera Interface definitions + *********************************************************************/ +#define CFG_ALTERA_IF_PS	CFG_FPGA_IF( 0x1 )	/* passive serial */  /* Add new interfaces here */ -typedef enum {                     /* typedef Altera_iface */ -    min_altera_iface_type,        /* insert all new types after this */ -/* Add new interfaces here */ -    max_altera_iface_type         /* insert all new types before this */ -} Altera_iface;                   /* end, typedef Altera_iface */ +typedef enum {				/* typedef Altera_iface */ +	min_altera_iface_type,		/* insert all new types after this */ +	passive_serial,			/* serial data and external clock */ +	passive_parallel_synchronous,	/* parallel data */ +	passive_parallel_asynchronous,	/* parallel data */ +	passive_serial_asynchronous,	/* serial data w/ internal clock (not used)	*/ +	altera_jtag_mode,		/* jtag/tap serial (not used ) */ +	max_altera_iface_type		/* insert all new types before this */ +} Altera_iface;				/* end, typedef Altera_iface */ -typedef enum {                     /* typedef Altera_Family */ -    min_altera_type,              /* insert all new types after this */ +typedef enum {			/* typedef Altera_Family */ +    min_altera_type,		/* insert all new types after this */ +    Altera_ACEX1K,		/* ACEX1K Family */  /* Add new models here */ -    max_altera_type               /* insert all new types before this */ -} Altera_Family;                  /* end, typedef Altera_Family */ +    max_altera_type		/* insert all new types before this */ +} Altera_Family;		/* end, typedef Altera_Family */ -typedef struct {                   /* typedef Altera_desc */ -    Altera_Family    family;      /* part type */ -    Altera_iface     iface;       /* interface type */ -    size_t            size;        /* bytes of data part can accept */ -    void *            base;        /* base interface address */ -} Altera_desc;                    /* end, typedef Altera_desc */ +typedef struct {		/* typedef Altera_desc */ +	Altera_Family	family;	/* part type */ +	Altera_iface	iface;	/* interface type */ +	size_t		size;	/* bytes of data part can accept */ +	void *		iface_fns;/* interface function table */ +	void *		base;	/* base interface address */ +	int		cookie;	/* implementation specific cookie */ +} Altera_desc;			/* end, typedef Altera_desc */ +/* Generic Altera Functions + *********************************************************************/  extern int altera_load( Altera_desc *desc, void *image, size_t size );  extern int altera_dump( Altera_desc *desc, void *buf, size_t bsize );  extern int altera_info( Altera_desc *desc ); -extern int altera_reloc( Altera_desc *desc, ulong reloc_off ); +extern int altera_reloc( Altera_desc *desc, ulong reloc_offset ); + +/* Board specific implementation specific function types + *********************************************************************/ +typedef int (*Altera_pre_fn)( int cookie ); +typedef int (*Altera_config_fn)( int assert_config, int flush, int cookie ); +typedef int (*Altera_status_fn)( int cookie ); +typedef int (*Altera_done_fn)( int cookie ); +typedef int (*Altera_clk_fn)( int assert_clk, int flush, int cookie ); +typedef int (*Altera_data_fn)( int assert_data, int flush, int cookie ); +typedef int (*Altera_abort_fn)( int cookie ); +typedef int (*Altera_post_fn)( int cookie ); -#endif  /* _ALTERA_H_ */ +#endif /* _ALTERA_H_ */ |