xref: /rk3399_rockchip-uboot/include/ACEX1K.h (revision b64b8a0bd310935b70af69ac970952f2b364ae56)
15da627a4Swdenk /*
25da627a4Swdenk  * (C) Copyright 2003
35da627a4Swdenk  * Steven Scholz, imc Measurement & Control, steven.scholz@imc-berlin.de
45da627a4Swdenk  *
55da627a4Swdenk  * (C) Copyright 2002
65da627a4Swdenk  * Rich Ireland, Enterasys Networks, rireland@enterasys.com.
75da627a4Swdenk  *
85da627a4Swdenk  * See file CREDITS for list of people who contributed to this
95da627a4Swdenk  * project.
105da627a4Swdenk  *
115da627a4Swdenk  * This program is free software; you can redistribute it and/or
125da627a4Swdenk  * modify it under the terms of the GNU General Public License as
135da627a4Swdenk  * published by the Free Software Foundation; either version 2 of
145da627a4Swdenk  * the License, or (at your option) any later version.
155da627a4Swdenk  *
165da627a4Swdenk  * This program is distributed in the hope that it will be useful,
175da627a4Swdenk  * but WITHOUT ANY WARRANTY; without even the implied warranty of
185da627a4Swdenk  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
195da627a4Swdenk  * GNU General Public License for more details.
205da627a4Swdenk  *
215da627a4Swdenk  * You should have received a copy of the GNU General Public License
225da627a4Swdenk  * along with this program; if not, write to the Free Software
235da627a4Swdenk  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
245da627a4Swdenk  * MA 02111-1307 USA
255da627a4Swdenk  *
265da627a4Swdenk  */
275da627a4Swdenk 
285da627a4Swdenk #ifndef _ACEX1K_H_
295da627a4Swdenk #define _ACEX1K_H_
305da627a4Swdenk 
315da627a4Swdenk #include <altera.h>
325da627a4Swdenk 
335da627a4Swdenk extern int ACEX1K_load( Altera_desc *desc, void *image, size_t size );
345da627a4Swdenk extern int ACEX1K_dump( Altera_desc *desc, void *buf, size_t bsize );
355da627a4Swdenk extern int ACEX1K_info( Altera_desc *desc );
365da627a4Swdenk extern int ACEX1K_reloc( Altera_desc *desc, ulong reloc_off );
375da627a4Swdenk 
38f0ff4692SStefan Roese extern int CYC2_load( Altera_desc *desc, void *image, size_t size );
39f0ff4692SStefan Roese extern int CYC2_dump( Altera_desc *desc, void *buf, size_t bsize );
40f0ff4692SStefan Roese extern int CYC2_info( Altera_desc *desc );
41f0ff4692SStefan Roese extern int CYC2_reloc( Altera_desc *desc, ulong reloc_off );
42f0ff4692SStefan Roese 
435da627a4Swdenk /* Slave Serial Implementation function table */
445da627a4Swdenk typedef struct {
455da627a4Swdenk 	Altera_pre_fn		pre;
465da627a4Swdenk 	Altera_config_fn	config;
475da627a4Swdenk 	Altera_clk_fn		clk;
485da627a4Swdenk 	Altera_status_fn	status;
495da627a4Swdenk 	Altera_done_fn		done;
505da627a4Swdenk 	Altera_data_fn		data;
515da627a4Swdenk 	Altera_abort_fn		abort;
525da627a4Swdenk 	Altera_post_fn		post;
535da627a4Swdenk 	int			relocated;
545da627a4Swdenk } Altera_ACEX1K_Passive_Serial_fns;
555da627a4Swdenk 
56f0ff4692SStefan Roese /* Slave Serial Implementation function table */
57f0ff4692SStefan Roese typedef struct {
58f0ff4692SStefan Roese 	Altera_pre_fn		pre;
59f0ff4692SStefan Roese 	Altera_config_fn	config;
60f0ff4692SStefan Roese 	Altera_status_fn	status;
61f0ff4692SStefan Roese 	Altera_done_fn		done;
62f0ff4692SStefan Roese 	Altera_write_fn		write;
63f0ff4692SStefan Roese 	Altera_abort_fn		abort;
64f0ff4692SStefan Roese 	Altera_post_fn		post;
65f0ff4692SStefan Roese 	int			relocated;
66f0ff4692SStefan Roese } Altera_CYC2_Passive_Serial_fns;
67f0ff4692SStefan Roese 
685da627a4Swdenk /* Device Image Sizes
695da627a4Swdenk  *********************************************************************/
705da627a4Swdenk /* ACEX1K */
715da627a4Swdenk /* FIXME: Which size do we mean?
725da627a4Swdenk  * Datasheet says 1337000/8=167125Bytes,
735da627a4Swdenk  * Filesize of an *.rbf file is 166965 Bytes
745da627a4Swdenk  */
755da627a4Swdenk #if 0
765da627a4Swdenk #define Altera_EP1K100_SIZE	1337000/8	/* 167125 Bytes */
775da627a4Swdenk #endif
785da627a4Swdenk #define Altera_EP1K100_SIZE	(166965*8)
795da627a4Swdenk 
80*b64b8a0bSAndre Schwarz #define Altera_EP2C8_SIZE	247942
81*b64b8a0bSAndre Schwarz #define Altera_EP2C20_SIZE	586562
82f0ff4692SStefan Roese #define Altera_EP2C35_SIZE	883905
83f0ff4692SStefan Roese 
845da627a4Swdenk /* Descriptor Macros
855da627a4Swdenk  *********************************************************************/
865da627a4Swdenk /* ACEX1K devices */
875da627a4Swdenk #define Altera_EP1K100_DESC(iface, fn_table, cookie) \
885da627a4Swdenk { Altera_ACEX1K, iface, Altera_EP1K100_SIZE, fn_table, cookie }
895da627a4Swdenk 
905da627a4Swdenk #endif /* _ACEX1K_H_ */
91