summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authoreran liberty <eran.liberty@gmail.com>2008-03-27 00:50:49 +0100
committerWolfgang Denk <wd@denx.de>2008-04-13 14:52:48 -0700
commit3c735e7437150e8615f26930c7819db85634276d (patch)
tree868ffae69bd808775b94a0aad52da064f8da7fc9 /include
parent5ece9ec9f6cd52950ab848e2fe422dacf1d3a335 (diff)
downloadu-boot-imx-3c735e7437150e8615f26930c7819db85634276d.zip
u-boot-imx-3c735e7437150e8615f26930c7819db85634276d.tar.gz
u-boot-imx-3c735e7437150e8615f26930c7819db85634276d.tar.bz2
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')
-rw-r--r--include/altera.h21
-rw-r--r--include/stratixII.h32
2 files changed, 49 insertions, 4 deletions
diff --git a/include/altera.h b/include/altera.h
index 7b8cb4a..c03fe87 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_ */
diff --git a/include/stratixII.h b/include/stratixII.h
new file mode 100644
index 0000000..37abd9f
--- /dev/null
+++ b/include/stratixII.h
@@ -0,0 +1,32 @@
+/*
+ * (C) Copyright 2007
+ * Eran Liberty, Extricom, eran.liberty@gmail.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ */
+#ifndef _STRATIXII_H_
+#define _STRATIXII_H_
+
+extern int StratixII_load (Altera_desc * desc, void *image, size_t size);
+extern int StratixII_dump (Altera_desc * desc, void *buf, size_t bsize);
+extern int StratixII_info (Altera_desc * desc);
+extern int StratixII_reloc (Altera_desc * desc, ulong reloc_off);
+
+#endif /* _STRATIXII_H_ */