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 /common/altera.c | |
parent | 5ece9ec9f6cd52950ab848e2fe422dacf1d3a335 (diff) | |
download | u-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 'common/altera.c')
-rw-r--r-- | common/altera.c | 43 |
1 files changed, 39 insertions, 4 deletions
diff --git a/common/altera.c b/common/altera.c index 0df7bae..a2b5967 100644 --- a/common/altera.c +++ b/common/altera.c @@ -30,6 +30,7 @@ */ #include <common.h> #include <ACEX1K.h> +#include <stratixII.h> /* Define FPGA_DEBUG to get debug printf's */ /* #define FPGA_DEBUG */ @@ -43,7 +44,7 @@ #if defined(CONFIG_FPGA) && defined(CONFIG_FPGA_ALTERA) /* Local Static Functions */ -static int altera_validate (Altera_desc * desc, char *fn); +static int altera_validate (Altera_desc * desc, const char *fn); /* ------------------------------------------------------------------------- */ int altera_load( Altera_desc *desc, void *buf, size_t bsize ) @@ -60,7 +61,7 @@ int altera_load( Altera_desc *desc, void *buf, size_t bsize ) PRINTF ("%s: Launching the ACEX1K Loader...\n", __FUNCTION__); ret_val = ACEX1K_load (desc, buf, bsize); -#elif defined CONFIG_FPGA_CYCLON2 +#elif defined(CONFIG_FPGA_CYCLON2) PRINTF ("%s: Launching the CYCLON II Loader...\n", __FUNCTION__); ret_val = CYC2_load (desc, buf, bsize); @@ -70,6 +71,13 @@ int altera_load( Altera_desc *desc, void *buf, size_t bsize ) #endif break; +#if defined(CONFIG_FPGA_STRATIX_II) + case Altera_StratixII: + PRINTF ("%s: Launching the Stratix II Loader...\n", + __FUNCTION__); + ret_val = StratixII_load (desc, buf, bsize); + break; +#endif default: printf ("%s: Unsupported family type, %d\n", __FUNCTION__, desc->family); @@ -98,6 +106,13 @@ int altera_dump( Altera_desc *desc, void *buf, size_t bsize ) #endif break; +#if defined(CONFIG_FPGA_STRATIX_II) + case Altera_StratixII: + PRINTF ("%s: Launching the Stratix II Reader...\n", + __FUNCTION__); + ret_val = StratixII_dump (desc, buf, bsize); + break; +#endif default: printf ("%s: Unsupported family type, %d\n", __FUNCTION__, desc->family); @@ -117,10 +132,13 @@ int altera_info( Altera_desc *desc ) case Altera_ACEX1K: printf ("ACEX1K\n"); break; - /* Add new family types here */ case Altera_CYC2: printf ("CYCLON II\n"); break; + case Altera_StratixII: + printf ("Stratix II\n"); + break; + /* Add new family types here */ default: printf ("Unknown family type, %d\n", desc->family); } @@ -142,6 +160,13 @@ int altera_info( Altera_desc *desc ) case altera_jtag_mode: /* Not used */ printf ("JTAG Mode\n"); break; + case fast_passive_parallel: + printf ("Fast Passive Parallel (FPP)\n"); + break; + case fast_passive_parallel_security: + printf + ("Fast Passive Parallel with Security (FPPS) \n"); + break; /* Add new interface types here */ default: printf ("Unsupported interface type, %d\n", desc->iface); @@ -166,6 +191,11 @@ int altera_info( Altera_desc *desc ) __FUNCTION__); #endif break; +#if defined(CONFIG_FPGA_STRATIX_II) + case Altera_StratixII: + StratixII_info (desc); + break; +#endif /* Add new family types here */ default: /* we don't need a message here - we give one up above */ @@ -199,6 +229,11 @@ int altera_reloc( Altera_desc *desc, ulong reloc_offset) __FUNCTION__); #endif break; +#if defined(CONFIG_FPGA_STRATIX_II) + case Altera_StratixII: + ret_val = StratixII_reloc (desc, reloc_offset); + break; +#endif case Altera_CYC2: #if defined(CONFIG_FPGA_CYCLON2) ret_val = CYC2_reloc (desc, reloc_offset); @@ -219,7 +254,7 @@ int altera_reloc( Altera_desc *desc, ulong reloc_offset) /* ------------------------------------------------------------------------- */ -static int altera_validate (Altera_desc * desc, char *fn) +static int altera_validate (Altera_desc * desc, const char *fn) { int ret_val = FALSE; |