Altera Stratix II support
PATCH 1/1 Altera Stratix II support
From: "eran liberty" <[email protected]>
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.
---
Posted on behalf of Eran Liberty -- wd
stratixII.h +32 -0
@@ -0,0 +1,32 @@ +/* +* (C) Copyright 2007 +* Eran Liberty, Extricom, eran.liberty at 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_ */
altera.h +17 -4
@@ -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 @@ 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 @@ 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_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_ */
fpga.c +0 -4
@@ -199,10 +199,6 @@memset ( desc_table,0 ,sizeof (desc_table));PRINTF ("%s: CONFIG_FPGA = 0x%x\n" , __FUNCTION__,CONFIG_FPGA ); -#if 0 -PRINTF ("%s: CFG_FPGA_XILINX = 0x%x\n" , __FUNCTION__,CFG_FPGA_XILINX ); -PRINTF ("%s: CFG_FPGA_ALTERA = 0x%x\n" , __FUNCTION__,CFG_FPGA_ALTERA ); -#endif }/* fpga_count
Makefile +1 -0
@@ -95,6 +95,7 @@ COBJS-y += command.o COBJS-y += console.o COBJS-y += cyclon2.o +COBJS-y += stratixII.o COBJS-y += devices.o COBJS-y += dlmalloc.o COBJS-y += docecc.o
altera.c +39 -4
106 lines not on this page · raw message
stratixII.c +235 -0
235 lines not on this page · raw message
Wolfgang Denk
AppliedPATCH 1/1 Altera Stratix II support
Quoted 32 lines · In message <[email protected]> you wrote:
From: "eran liberty" <[email protected]>
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, };
Quoted 4 lines
you will have to implement these functions, which is usually bit banging some gpio.
Signed-off-by Eran Liberty <[email protected]>
Applied, thanks.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de While money can't buy happiness, it certainly lets you choose your own form of misery.