diff options
| author | eran liberty <eran.liberty@gmail.com> | 2008-03-27 00:50:49 +0100 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2008-04-13 14:52:48 -0700 | 
| commit | 3c735e7437150e8615f26930c7819db85634276d (patch) | |
| tree | 868ffae69bd808775b94a0aad52da064f8da7fc9 /include/altera.h | |
| parent | 5ece9ec9f6cd52950ab848e2fe422dacf1d3a335 (diff) | |
| download | olio-uboot-2014.01-3c735e7437150e8615f26930c7819db85634276d.tar.xz olio-uboot-2014.01-3c735e7437150e8615f26930c7819db85634276d.zip | |
Altera Stratix II support
Adds Support for Altera's Stratix II.
Within your board specific init file you will have to call
1. fpga_init (/* relocated code offset. usually => */ gd->reloc_off);
2. fpga_add (fpga_altera, (Altera_desc*)&altera_desc);
Altera_desc* contines (for example):
	{
	 Altera_StratixII,	/* part type */
	 passive_serial,	/* interface type */
	 1,			/* bytes of data part can accept */
	 (void *)(&funcs),	/* interface function table */
	 0L,			/* base interface address */
	 0			/* implementation specific cookie */
	 }
funcs is the interface. It is of type altera_board_specific_func.
It looks like this:
altera_board_specific_func func = {
	pre_fn,
	config_fn,
	status_fn,
	done_fn,
	clk_fn,
	data_fn,
	abort_fn,
	post_fn,
};
you will have to implement these functions, which is usually bit
banging some gpio.
Signed-off-by: Eran Liberty <liberty@extricom.com>
Diffstat (limited to 'include/altera.h')
| -rw-r--r-- | include/altera.h | 21 | 
1 files changed, 17 insertions, 4 deletions
| diff --git a/include/altera.h b/include/altera.h index 7b8cb4a55..c03fe87c4 100644 --- a/include/altera.h +++ b/include/altera.h @@ -27,22 +27,21 @@  #ifndef _ALTERA_H_  #define _ALTERA_H_ -/* - * See include/xilinx.h for another working example. - */ -  /* Altera Model definitions   *********************************************************************/  #define CFG_ACEX1K		CFG_FPGA_DEV( 0x1 )  #define CFG_CYCLON2		CFG_FPGA_DEV( 0x2 ) +#define CFG_STRATIX_II		CFG_FPGA_DEV( 0x4 )  #define CFG_ALTERA_ACEX1K	(CFG_FPGA_ALTERA | CFG_ACEX1K)  #define CFG_ALTERA_CYCLON2	(CFG_FPGA_ALTERA | CFG_CYCLON2) +#define CFG_ALTERA_STRATIX_II	(CFG_FPGA_ALTERA | CFG_STRATIX_II)  /* Add new models here */  /* Altera Interface definitions   *********************************************************************/  #define CFG_ALTERA_IF_PS	CFG_FPGA_IF( 0x1 )	/* passive serial */ +#define CFG_ALTERA_IF_FPP	CFG_FPGA_IF( 0x2 )	/* fast passive parallel */  /* Add new interfaces here */  typedef enum {				/* typedef Altera_iface */ @@ -52,6 +51,8 @@ typedef enum {				/* typedef Altera_iface */  	passive_parallel_asynchronous,	/* parallel data */  	passive_serial_asynchronous,	/* serial data w/ internal clock (not used)	*/  	altera_jtag_mode,		/* jtag/tap serial (not used ) */ +	fast_passive_parallel,	/* fast passive parallel (FPP) */ +	fast_passive_parallel_security,	/* fast passive parallel with security (FPPS) */  	max_altera_iface_type		/* insert all new types before this */  } Altera_iface;				/* end, typedef Altera_iface */ @@ -59,6 +60,7 @@ typedef enum {			/* typedef Altera_Family */      min_altera_type,		/* insert all new types after this */      Altera_ACEX1K,		/* ACEX1K Family */      Altera_CYC2,		/* CYCLONII Family */ +	Altera_StratixII,	/* StratixII Familiy */  /* Add new models here */      max_altera_type		/* insert all new types before this */  } Altera_Family;		/* end, typedef Altera_Family */ @@ -91,4 +93,15 @@ typedef int (*Altera_write_fn)(void *buf, size_t len, int flush, int cookie);  typedef int (*Altera_abort_fn)( int cookie );  typedef int (*Altera_post_fn)( int cookie ); +typedef struct { +	Altera_pre_fn pre; +	Altera_config_fn config; +	Altera_status_fn status; +	Altera_done_fn done; +	Altera_clk_fn clk; +	Altera_data_fn data; +	Altera_abort_fn abort; +	Altera_post_fn post; +} altera_board_specific_func; +  #endif /* _ALTERA_H_ */ |