From 5da627a424b3ad2d38a81886ba4a18e5123a6788 Mon Sep 17 00:00:00 2001 From: wdenk Date: Thu, 9 Oct 2003 20:09:04 +0000 Subject: * Patch by Steven Scholz, 10 Oct 2003 - Add support for Altera FPGA ACEX1K * Patches by Thomas Lange, 09 Oct 2003: - Endian swap ATA identity for all big endian CPUs, not just PPC - MIPS only: New option CONFIG_MEMSIZE_IN_BYTES for passing memsize args to linux - add support for dbau1x00 board (MIPS32) --- include/altera.h | 73 ++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 45 insertions(+), 28 deletions(-) (limited to 'include/altera.h') 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_ */ -- cgit v1.2.3