xref: /rk3399_rockchip-uboot/include/ACEX1K.h (revision e6a857da746d5d7d450e59c0f86664c6b279b1c2)
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 
33*e6a857daSWolfgang Denk extern int ACEX1K_load(Altera_desc *desc, const void *image, size_t size);
34*e6a857daSWolfgang Denk extern int ACEX1K_dump(Altera_desc *desc, const void *buf, size_t bsize);
355da627a4Swdenk extern int ACEX1K_info(Altera_desc *desc);
365da627a4Swdenk 
37*e6a857daSWolfgang Denk extern int CYC2_load(Altera_desc *desc, const void *image, size_t size);
38*e6a857daSWolfgang Denk extern int CYC2_dump(Altera_desc *desc, const void *buf, size_t bsize);
39f0ff4692SStefan Roese extern int CYC2_info(Altera_desc *desc);
40f0ff4692SStefan Roese 
415da627a4Swdenk /* Slave Serial Implementation function table */
425da627a4Swdenk typedef struct {
435da627a4Swdenk 	Altera_pre_fn		pre;
445da627a4Swdenk 	Altera_config_fn	config;
455da627a4Swdenk 	Altera_clk_fn		clk;
465da627a4Swdenk 	Altera_status_fn	status;
475da627a4Swdenk 	Altera_done_fn		done;
485da627a4Swdenk 	Altera_data_fn		data;
495da627a4Swdenk 	Altera_abort_fn		abort;
505da627a4Swdenk 	Altera_post_fn		post;
515da627a4Swdenk } Altera_ACEX1K_Passive_Serial_fns;
525da627a4Swdenk 
53f0ff4692SStefan Roese /* Slave Serial Implementation function table */
54f0ff4692SStefan Roese typedef struct {
55f0ff4692SStefan Roese 	Altera_pre_fn		pre;
56f0ff4692SStefan Roese 	Altera_config_fn	config;
57f0ff4692SStefan Roese 	Altera_status_fn	status;
58f0ff4692SStefan Roese 	Altera_done_fn		done;
59f0ff4692SStefan Roese 	Altera_write_fn		write;
60f0ff4692SStefan Roese 	Altera_abort_fn		abort;
61f0ff4692SStefan Roese 	Altera_post_fn		post;
62f0ff4692SStefan Roese } Altera_CYC2_Passive_Serial_fns;
63f0ff4692SStefan Roese 
645da627a4Swdenk /* Device Image Sizes
655da627a4Swdenk  *********************************************************************/
665da627a4Swdenk /* ACEX1K */
675da627a4Swdenk /* FIXME: Which size do we mean?
685da627a4Swdenk  * Datasheet says 1337000/8=167125Bytes,
695da627a4Swdenk  * Filesize of an *.rbf file is 166965 Bytes
705da627a4Swdenk  */
715da627a4Swdenk #if 0
725da627a4Swdenk #define Altera_EP1K100_SIZE	1337000/8	/* 167125 Bytes */
735da627a4Swdenk #endif
745da627a4Swdenk #define Altera_EP1K100_SIZE	(166965*8)
755da627a4Swdenk 
76b64b8a0bSAndre Schwarz #define Altera_EP2C8_SIZE	247942
77b64b8a0bSAndre Schwarz #define Altera_EP2C20_SIZE	586562
78f0ff4692SStefan Roese #define Altera_EP2C35_SIZE	883905
7920a9f8e2SMichael Jones #define Altera_EP3C5_SIZE	368011		/* .rbf size in bytes */
80f0ff4692SStefan Roese 
815da627a4Swdenk /* Descriptor Macros
825da627a4Swdenk  *********************************************************************/
835da627a4Swdenk /* ACEX1K devices */
845da627a4Swdenk #define Altera_EP1K100_DESC(iface, fn_table, cookie) \
855da627a4Swdenk { Altera_ACEX1K, iface, Altera_EP1K100_SIZE, fn_table, cookie }
865da627a4Swdenk 
875da627a4Swdenk #endif /* _ACEX1K_H_ */
88