mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
Merge branch 'fpga' of git://www.denx.de/git/u-boot-microblaze
This commit is contained in:
@@ -10,37 +10,35 @@
|
||||
|
||||
#include <xilinx.h>
|
||||
|
||||
extern int Spartan2_load(Xilinx_desc *desc, const void *image, size_t size);
|
||||
extern int Spartan2_dump(Xilinx_desc *desc, const void *buf, size_t bsize);
|
||||
extern int Spartan2_info(Xilinx_desc *desc);
|
||||
|
||||
/* Slave Parallel Implementation function table */
|
||||
typedef struct {
|
||||
Xilinx_pre_fn pre;
|
||||
Xilinx_pgm_fn pgm;
|
||||
Xilinx_init_fn init;
|
||||
Xilinx_err_fn err;
|
||||
Xilinx_done_fn done;
|
||||
Xilinx_clk_fn clk;
|
||||
Xilinx_cs_fn cs;
|
||||
Xilinx_wr_fn wr;
|
||||
Xilinx_rdata_fn rdata;
|
||||
Xilinx_wdata_fn wdata;
|
||||
Xilinx_busy_fn busy;
|
||||
Xilinx_abort_fn abort;
|
||||
Xilinx_post_fn post;
|
||||
} Xilinx_Spartan2_Slave_Parallel_fns;
|
||||
xilinx_pre_fn pre;
|
||||
xilinx_pgm_fn pgm;
|
||||
xilinx_init_fn init;
|
||||
xilinx_err_fn err;
|
||||
xilinx_done_fn done;
|
||||
xilinx_clk_fn clk;
|
||||
xilinx_cs_fn cs;
|
||||
xilinx_wr_fn wr;
|
||||
xilinx_rdata_fn rdata;
|
||||
xilinx_wdata_fn wdata;
|
||||
xilinx_busy_fn busy;
|
||||
xilinx_abort_fn abort;
|
||||
xilinx_post_fn post;
|
||||
} xilinx_spartan2_slave_parallel_fns;
|
||||
|
||||
/* Slave Serial Implementation function table */
|
||||
typedef struct {
|
||||
Xilinx_pre_fn pre;
|
||||
Xilinx_pgm_fn pgm;
|
||||
Xilinx_clk_fn clk;
|
||||
Xilinx_init_fn init;
|
||||
Xilinx_done_fn done;
|
||||
Xilinx_wr_fn wr;
|
||||
Xilinx_post_fn post;
|
||||
} Xilinx_Spartan2_Slave_Serial_fns;
|
||||
xilinx_pre_fn pre;
|
||||
xilinx_pgm_fn pgm;
|
||||
xilinx_clk_fn clk;
|
||||
xilinx_init_fn init;
|
||||
xilinx_done_fn done;
|
||||
xilinx_wr_fn wr;
|
||||
xilinx_post_fn post;
|
||||
} xilinx_spartan2_slave_serial_fns;
|
||||
|
||||
extern struct xilinx_fpga_op spartan2_op;
|
||||
|
||||
/* Device Image Sizes
|
||||
*********************************************************************/
|
||||
@@ -63,36 +61,36 @@ typedef struct {
|
||||
*********************************************************************/
|
||||
/* Spartan-II devices */
|
||||
#define XILINX_XC2S15_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan2, iface, XILINX_XC2S15_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan2, iface, XILINX_XC2S15_SIZE, fn_table, cookie, &spartan2_op }
|
||||
|
||||
#define XILINX_XC2S30_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan2, iface, XILINX_XC2S30_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan2, iface, XILINX_XC2S30_SIZE, fn_table, cookie, &spartan2_op }
|
||||
|
||||
#define XILINX_XC2S50_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan2, iface, XILINX_XC2S50_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan2, iface, XILINX_XC2S50_SIZE, fn_table, cookie, &spartan2_op }
|
||||
|
||||
#define XILINX_XC2S100_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan2, iface, XILINX_XC2S100_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan2, iface, XILINX_XC2S100_SIZE, fn_table, cookie, &spartan2_op }
|
||||
|
||||
#define XILINX_XC2S150_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan2, iface, XILINX_XC2S150_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan2, iface, XILINX_XC2S150_SIZE, fn_table, cookie, &spartan2_op }
|
||||
|
||||
#define XILINX_XC2S200_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan2, iface, XILINX_XC2S200_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan2, iface, XILINX_XC2S200_SIZE, fn_table, cookie, &spartan2_op }
|
||||
|
||||
#define XILINX_XC2S50E_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan2, iface, XILINX_XC2S50E_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan2, iface, XILINX_XC2S50E_SIZE, fn_table, cookie, &spartan2_op }
|
||||
|
||||
#define XILINX_XC2S100E_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan2, iface, XILINX_XC2S100E_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan2, iface, XILINX_XC2S100E_SIZE, fn_table, cookie, &spartan2_op }
|
||||
|
||||
#define XILINX_XC2S150E_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan2, iface, XILINX_XC2S150E_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan2, iface, XILINX_XC2S150E_SIZE, fn_table, cookie, &spartan2_op }
|
||||
|
||||
#define XILINX_XC2S200E_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan2, iface, XILINX_XC2S200E_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan2, iface, XILINX_XC2S200E_SIZE, fn_table, cookie, &spartan2_op }
|
||||
|
||||
#define XILINX_XC2S300E_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan2, iface, XILINX_XC2S300E_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan2, iface, XILINX_XC2S300E_SIZE, fn_table, cookie, &spartan2_op }
|
||||
|
||||
#endif /* _SPARTAN2_H_ */
|
||||
|
||||
@@ -10,39 +10,37 @@
|
||||
|
||||
#include <xilinx.h>
|
||||
|
||||
extern int Spartan3_load(Xilinx_desc *desc, const void *image, size_t size);
|
||||
extern int Spartan3_dump(Xilinx_desc *desc, const void *buf, size_t bsize);
|
||||
extern int Spartan3_info(Xilinx_desc *desc);
|
||||
|
||||
/* Slave Parallel Implementation function table */
|
||||
typedef struct {
|
||||
Xilinx_pre_fn pre;
|
||||
Xilinx_pgm_fn pgm;
|
||||
Xilinx_init_fn init;
|
||||
Xilinx_err_fn err;
|
||||
Xilinx_done_fn done;
|
||||
Xilinx_clk_fn clk;
|
||||
Xilinx_cs_fn cs;
|
||||
Xilinx_wr_fn wr;
|
||||
Xilinx_rdata_fn rdata;
|
||||
Xilinx_wdata_fn wdata;
|
||||
Xilinx_busy_fn busy;
|
||||
Xilinx_abort_fn abort;
|
||||
Xilinx_post_fn post;
|
||||
} Xilinx_Spartan3_Slave_Parallel_fns;
|
||||
xilinx_pre_fn pre;
|
||||
xilinx_pgm_fn pgm;
|
||||
xilinx_init_fn init;
|
||||
xilinx_err_fn err;
|
||||
xilinx_done_fn done;
|
||||
xilinx_clk_fn clk;
|
||||
xilinx_cs_fn cs;
|
||||
xilinx_wr_fn wr;
|
||||
xilinx_rdata_fn rdata;
|
||||
xilinx_wdata_fn wdata;
|
||||
xilinx_busy_fn busy;
|
||||
xilinx_abort_fn abort;
|
||||
xilinx_post_fn post;
|
||||
} xilinx_spartan3_slave_parallel_fns;
|
||||
|
||||
/* Slave Serial Implementation function table */
|
||||
typedef struct {
|
||||
Xilinx_pre_fn pre;
|
||||
Xilinx_pgm_fn pgm;
|
||||
Xilinx_clk_fn clk;
|
||||
Xilinx_init_fn init;
|
||||
Xilinx_done_fn done;
|
||||
Xilinx_wr_fn wr;
|
||||
Xilinx_post_fn post;
|
||||
Xilinx_bwr_fn bwr; /* block write function */
|
||||
Xilinx_abort_fn abort;
|
||||
} Xilinx_Spartan3_Slave_Serial_fns;
|
||||
xilinx_pre_fn pre;
|
||||
xilinx_pgm_fn pgm;
|
||||
xilinx_clk_fn clk;
|
||||
xilinx_init_fn init;
|
||||
xilinx_done_fn done;
|
||||
xilinx_wr_fn wr;
|
||||
xilinx_post_fn post;
|
||||
xilinx_bwr_fn bwr; /* block write function */
|
||||
xilinx_abort_fn abort;
|
||||
} xilinx_spartan3_slave_serial_fns;
|
||||
|
||||
extern struct xilinx_fpga_op spartan3_op;
|
||||
|
||||
/* Device Image Sizes
|
||||
*********************************************************************/
|
||||
@@ -73,46 +71,48 @@ typedef struct {
|
||||
*********************************************************************/
|
||||
/* Spartan-III devices */
|
||||
#define XILINX_XC3S50_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan3, iface, XILINX_XC3S50_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan3, iface, XILINX_XC3S50_SIZE, fn_table, cookie, &spartan3_op }
|
||||
|
||||
#define XILINX_XC3S200_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan3, iface, XILINX_XC3S200_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan3, iface, XILINX_XC3S200_SIZE, fn_table, cookie, &spartan3_op }
|
||||
|
||||
#define XILINX_XC3S400_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan3, iface, XILINX_XC3S400_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan3, iface, XILINX_XC3S400_SIZE, fn_table, cookie, &spartan3_op }
|
||||
|
||||
#define XILINX_XC3S1000_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan3, iface, XILINX_XC3S1000_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan3, iface, XILINX_XC3S1000_SIZE, fn_table, cookie, &spartan3_op }
|
||||
|
||||
#define XILINX_XC3S1500_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan3, iface, XILINX_XC3S1500_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan3, iface, XILINX_XC3S1500_SIZE, fn_table, cookie, &spartan3_op }
|
||||
|
||||
#define XILINX_XC3S2000_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan3, iface, XILINX_XC3S2000_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan3, iface, XILINX_XC3S2000_SIZE, fn_table, cookie, &spartan3_op }
|
||||
|
||||
#define XILINX_XC3S4000_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan3, iface, XILINX_XC3S4000_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan3, iface, XILINX_XC3S4000_SIZE, fn_table, cookie, &spartan3_op }
|
||||
|
||||
#define XILINX_XC3S5000_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan3, iface, XILINX_XC3S5000_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan3, iface, XILINX_XC3S5000_SIZE, fn_table, cookie, &spartan3_op }
|
||||
|
||||
/* Spartan-3E devices */
|
||||
#define XILINX_XC3S100E_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan3, iface, XILINX_XC3S100E_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan3, iface, XILINX_XC3S100E_SIZE, fn_table, cookie, &spartan3_op }
|
||||
|
||||
#define XILINX_XC3S250E_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan3, iface, XILINX_XC3S250E_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan3, iface, XILINX_XC3S250E_SIZE, fn_table, cookie, &spartan3_op }
|
||||
|
||||
#define XILINX_XC3S500E_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan3, iface, XILINX_XC3S500E_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan3, iface, XILINX_XC3S500E_SIZE, fn_table, cookie, &spartan3_op }
|
||||
|
||||
#define XILINX_XC3S1200E_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan3, iface, XILINX_XC3S1200E_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan3, iface, XILINX_XC3S1200E_SIZE, fn_table, cookie, \
|
||||
&spartan3_op }
|
||||
|
||||
#define XILINX_XC3S1600E_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan3, iface, XILINX_XC3S1600E_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan3, iface, XILINX_XC3S1600E_SIZE, fn_table, cookie, \
|
||||
&spartan3_op }
|
||||
|
||||
#define XILINX_XC6SLX4_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Spartan3, iface, XILINK_XC6SLX4_SIZE, fn_table, cookie }
|
||||
{ xilinx_spartan3, iface, XILINK_XC6SLX4_SIZE, fn_table, cookie, &spartan3_op }
|
||||
|
||||
#endif /* _SPARTAN3_H_ */
|
||||
|
||||
@@ -11,36 +11,34 @@
|
||||
|
||||
#include <xilinx.h>
|
||||
|
||||
extern int Virtex2_load(Xilinx_desc *desc, const void *image, size_t size);
|
||||
extern int Virtex2_dump(Xilinx_desc *desc, const void *buf, size_t bsize);
|
||||
extern int Virtex2_info(Xilinx_desc *desc);
|
||||
extern struct xilinx_fpga_op virtex2_op;
|
||||
|
||||
/*
|
||||
* Slave SelectMap Implementation function table.
|
||||
*/
|
||||
typedef struct {
|
||||
Xilinx_pre_fn pre;
|
||||
Xilinx_pgm_fn pgm;
|
||||
Xilinx_init_fn init;
|
||||
Xilinx_err_fn err;
|
||||
Xilinx_done_fn done;
|
||||
Xilinx_clk_fn clk;
|
||||
Xilinx_cs_fn cs;
|
||||
Xilinx_wr_fn wr;
|
||||
Xilinx_rdata_fn rdata;
|
||||
Xilinx_wdata_fn wdata;
|
||||
Xilinx_busy_fn busy;
|
||||
Xilinx_abort_fn abort;
|
||||
Xilinx_post_fn post;
|
||||
} Xilinx_Virtex2_Slave_SelectMap_fns;
|
||||
xilinx_pre_fn pre;
|
||||
xilinx_pgm_fn pgm;
|
||||
xilinx_init_fn init;
|
||||
xilinx_err_fn err;
|
||||
xilinx_done_fn done;
|
||||
xilinx_clk_fn clk;
|
||||
xilinx_cs_fn cs;
|
||||
xilinx_wr_fn wr;
|
||||
xilinx_rdata_fn rdata;
|
||||
xilinx_wdata_fn wdata;
|
||||
xilinx_busy_fn busy;
|
||||
xilinx_abort_fn abort;
|
||||
xilinx_post_fn post;
|
||||
} xilinx_virtex2_slave_selectmap_fns;
|
||||
|
||||
/* Slave Serial Implementation function table */
|
||||
typedef struct {
|
||||
Xilinx_pgm_fn pgm;
|
||||
Xilinx_clk_fn clk;
|
||||
Xilinx_rdata_fn rdata;
|
||||
Xilinx_wdata_fn wdata;
|
||||
} Xilinx_Virtex2_Slave_Serial_fns;
|
||||
xilinx_pgm_fn pgm;
|
||||
xilinx_clk_fn clk;
|
||||
xilinx_rdata_fn rdata;
|
||||
xilinx_wdata_fn wdata;
|
||||
} xilinx_virtex2_slave_serial_fns;
|
||||
|
||||
/* Device Image Sizes (in bytes)
|
||||
*********************************************************************/
|
||||
@@ -60,39 +58,39 @@ typedef struct {
|
||||
/* Descriptor Macros
|
||||
*********************************************************************/
|
||||
#define XILINX_XC2V40_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Virtex2, iface, XILINX_XC2V40_SIZE, fn_table, cookie }
|
||||
{ xilinx_virtex2, iface, XILINX_XC2V40_SIZE, fn_table, cookie, &virtex2_op }
|
||||
|
||||
#define XILINX_XC2V80_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Virtex2, iface, XILINX_XC2V80_SIZE, fn_table, cookie }
|
||||
{ xilinx_virtex2, iface, XILINX_XC2V80_SIZE, fn_table, cookie, &virtex2_op }
|
||||
|
||||
#define XILINX_XC2V250_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Virtex2, iface, XILINX_XC2V250_SIZE, fn_table, cookie }
|
||||
{ xilinx_virtex2, iface, XILINX_XC2V250_SIZE, fn_table, cookie, &virtex2_op }
|
||||
|
||||
#define XILINX_XC2V500_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Virtex2, iface, XILINX_XC2V500_SIZE, fn_table, cookie }
|
||||
{ xilinx_virtex2, iface, XILINX_XC2V500_SIZE, fn_table, cookie, &virtex2_op }
|
||||
|
||||
#define XILINX_XC2V1000_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Virtex2, iface, XILINX_XC2V1000_SIZE, fn_table, cookie }
|
||||
{ xilinx_virtex2, iface, XILINX_XC2V1000_SIZE, fn_table, cookie, &virtex2_op }
|
||||
|
||||
#define XILINX_XC2V1500_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Virtex2, iface, XILINX_XC2V1500_SIZE, fn_table, cookie }
|
||||
{ xilinx_virtex2, iface, XILINX_XC2V1500_SIZE, fn_table, cookie, &virtex2_op }
|
||||
|
||||
#define XILINX_XC2V2000_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Virtex2, iface, XILINX_XC2V2000_SIZE, fn_table, cookie }
|
||||
{ xilinx_virtex2, iface, XILINX_XC2V2000_SIZE, fn_table, cookie, &virtex2_op }
|
||||
|
||||
#define XILINX_XC2V3000_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Virtex2, iface, XILINX_XC2V3000_SIZE, fn_table, cookie }
|
||||
{ xilinx_virtex2, iface, XILINX_XC2V3000_SIZE, fn_table, cookie, &virtex2_op }
|
||||
|
||||
#define XILINX_XC2V4000_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Virtex2, iface, XILINX_XC2V4000_SIZE, fn_table, cookie }
|
||||
{ xilinx_virtex2, iface, XILINX_XC2V4000_SIZE, fn_table, cookie, &virtex2_op }
|
||||
|
||||
#define XILINX_XC2V6000_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Virtex2, iface, XILINX_XC2V6000_SIZE, fn_table, cookie }
|
||||
{ xilinx_virtex2, iface, XILINX_XC2V6000_SIZE, fn_table, cookie, &virtex2_op }
|
||||
|
||||
#define XILINX_XC2V8000_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Virtex2, iface, XILINX_XC2V8000_SIZE, fn_table, cookie }
|
||||
{ xilinx_virtex2, iface, XILINX_XC2V8000_SIZE, fn_table, cookie, &virtex2_op }
|
||||
|
||||
#define XILINX_XC2V10000_DESC(iface, fn_table, cookie) \
|
||||
{ Xilinx_Virtex2, iface, XILINX_XC2V10000_SIZE, fn_table, cookie }
|
||||
{ xilinx_virtex2, iface, XILINX_XC2V10000_SIZE, fn_table, cookie, &virtex2_op }
|
||||
|
||||
#endif /* _VIRTEX2_H_ */
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
/* Xilinx types
|
||||
*********************************************************************/
|
||||
typedef enum { /* typedef Xilinx_iface */
|
||||
typedef enum { /* typedef xilinx_iface */
|
||||
min_xilinx_iface_type, /* low range check value */
|
||||
slave_serial, /* serial data and external clock */
|
||||
master_serial, /* serial data w/ internal clock (not used) */
|
||||
@@ -22,48 +22,55 @@ typedef enum { /* typedef Xilinx_iface */
|
||||
slave_selectmap, /* slave SelectMap (virtex2) */
|
||||
devcfg, /* devcfg interface (zynq) */
|
||||
max_xilinx_iface_type /* insert all new types before this */
|
||||
} Xilinx_iface; /* end, typedef Xilinx_iface */
|
||||
} xilinx_iface; /* end, typedef xilinx_iface */
|
||||
|
||||
typedef enum { /* typedef Xilinx_Family */
|
||||
typedef enum { /* typedef xilinx_family */
|
||||
min_xilinx_type, /* low range check value */
|
||||
Xilinx_Spartan2, /* Spartan-II Family */
|
||||
Xilinx_VirtexE, /* Virtex-E Family */
|
||||
Xilinx_Virtex2, /* Virtex2 Family */
|
||||
Xilinx_Spartan3, /* Spartan-III Family */
|
||||
xilinx_spartan2, /* Spartan-II Family */
|
||||
xilinx_virtexE, /* Virtex-E Family */
|
||||
xilinx_virtex2, /* Virtex2 Family */
|
||||
xilinx_spartan3, /* Spartan-III Family */
|
||||
xilinx_zynq, /* Zynq Family */
|
||||
max_xilinx_type /* insert all new types before this */
|
||||
} Xilinx_Family; /* end, typedef Xilinx_Family */
|
||||
} xilinx_family; /* end, typedef xilinx_family */
|
||||
|
||||
typedef struct { /* typedef Xilinx_desc */
|
||||
Xilinx_Family family; /* part type */
|
||||
Xilinx_iface iface; /* interface type */
|
||||
typedef struct { /* typedef xilinx_desc */
|
||||
xilinx_family family; /* part type */
|
||||
xilinx_iface iface; /* interface type */
|
||||
size_t size; /* bytes of data part can accept */
|
||||
void *iface_fns; /* interface function table */
|
||||
int cookie; /* implementation specific cookie */
|
||||
struct xilinx_fpga_op *operations; /* operations */
|
||||
char *name; /* device name in bitstream */
|
||||
} Xilinx_desc; /* end, typedef Xilinx_desc */
|
||||
} xilinx_desc; /* end, typedef xilinx_desc */
|
||||
|
||||
struct xilinx_fpga_op {
|
||||
int (*load)(xilinx_desc *, const void *, size_t);
|
||||
int (*dump)(xilinx_desc *, const void *, size_t);
|
||||
int (*info)(xilinx_desc *);
|
||||
};
|
||||
|
||||
/* Generic Xilinx Functions
|
||||
*********************************************************************/
|
||||
extern int xilinx_load(Xilinx_desc *desc, const void *image, size_t size);
|
||||
extern int xilinx_dump(Xilinx_desc *desc, const void *buf, size_t bsize);
|
||||
extern int xilinx_info(Xilinx_desc *desc);
|
||||
int xilinx_load(xilinx_desc *desc, const void *image, size_t size);
|
||||
int xilinx_dump(xilinx_desc *desc, const void *buf, size_t bsize);
|
||||
int xilinx_info(xilinx_desc *desc);
|
||||
|
||||
/* Board specific implementation specific function types
|
||||
*********************************************************************/
|
||||
typedef int (*Xilinx_pgm_fn)( int assert_pgm, int flush, int cookie );
|
||||
typedef int (*Xilinx_init_fn)( int cookie );
|
||||
typedef int (*Xilinx_err_fn)( int cookie );
|
||||
typedef int (*Xilinx_done_fn)( int cookie );
|
||||
typedef int (*Xilinx_clk_fn)( int assert_clk, int flush, int cookie );
|
||||
typedef int (*Xilinx_cs_fn)( int assert_cs, int flush, int cookie );
|
||||
typedef int (*Xilinx_wr_fn)( int assert_write, int flush, int cookie );
|
||||
typedef int (*Xilinx_rdata_fn)( unsigned char *data, int cookie );
|
||||
typedef int (*Xilinx_wdata_fn)( unsigned char data, int flush, int cookie );
|
||||
typedef int (*Xilinx_busy_fn)( int cookie );
|
||||
typedef int (*Xilinx_abort_fn)( int cookie );
|
||||
typedef int (*Xilinx_pre_fn)( int cookie );
|
||||
typedef int (*Xilinx_post_fn)( int cookie );
|
||||
typedef int (*Xilinx_bwr_fn)( void *buf, size_t len, int flush, int cookie );
|
||||
typedef int (*xilinx_pgm_fn)(int assert_pgm, int flush, int cookie);
|
||||
typedef int (*xilinx_init_fn)(int cookie);
|
||||
typedef int (*xilinx_err_fn)(int cookie);
|
||||
typedef int (*xilinx_done_fn)(int cookie);
|
||||
typedef int (*xilinx_clk_fn)(int assert_clk, int flush, int cookie);
|
||||
typedef int (*xilinx_cs_fn)(int assert_cs, int flush, int cookie);
|
||||
typedef int (*xilinx_wr_fn)(int assert_write, int flush, int cookie);
|
||||
typedef int (*xilinx_rdata_fn)(unsigned char *data, int cookie);
|
||||
typedef int (*xilinx_wdata_fn)(unsigned char data, int flush, int cookie);
|
||||
typedef int (*xilinx_busy_fn)(int cookie);
|
||||
typedef int (*xilinx_abort_fn)(int cookie);
|
||||
typedef int (*xilinx_pre_fn)(int cookie);
|
||||
typedef int (*xilinx_post_fn)(int cookie);
|
||||
typedef int (*xilinx_bwr_fn)(void *buf, size_t len, int flush, int cookie);
|
||||
|
||||
#endif /* _XILINX_H_ */
|
||||
|
||||
@@ -12,9 +12,7 @@
|
||||
|
||||
#include <xilinx.h>
|
||||
|
||||
extern int zynq_load(Xilinx_desc *desc, const void *image, size_t size);
|
||||
extern int zynq_dump(Xilinx_desc *desc, const void *buf, size_t bsize);
|
||||
extern int zynq_info(Xilinx_desc *desc);
|
||||
extern struct xilinx_fpga_op zynq_op;
|
||||
|
||||
#define XILINX_ZYNQ_7010 0x2
|
||||
#define XILINX_ZYNQ_7015 0x1b
|
||||
@@ -33,21 +31,21 @@ extern int zynq_info(Xilinx_desc *desc);
|
||||
|
||||
/* Descriptor Macros */
|
||||
#define XILINX_XC7Z010_DESC(cookie) \
|
||||
{ xilinx_zynq, devcfg, XILINX_XC7Z010_SIZE, NULL, cookie, "7z010" }
|
||||
{ xilinx_zynq, devcfg, XILINX_XC7Z010_SIZE, NULL, cookie, &zynq_op, "7z010" }
|
||||
|
||||
#define XILINX_XC7Z015_DESC(cookie) \
|
||||
{ xilinx_zynq, devcfg, XILINX_XC7Z015_SIZE, NULL, cookie, "7z015" }
|
||||
{ xilinx_zynq, devcfg, XILINX_XC7Z015_SIZE, NULL, cookie, &zynq_op, "7z015" }
|
||||
|
||||
#define XILINX_XC7Z020_DESC(cookie) \
|
||||
{ xilinx_zynq, devcfg, XILINX_XC7Z020_SIZE, NULL, cookie, "7z020" }
|
||||
{ xilinx_zynq, devcfg, XILINX_XC7Z020_SIZE, NULL, cookie, &zynq_op, "7z020" }
|
||||
|
||||
#define XILINX_XC7Z030_DESC(cookie) \
|
||||
{ xilinx_zynq, devcfg, XILINX_XC7Z030_SIZE, NULL, cookie, "7z030" }
|
||||
{ xilinx_zynq, devcfg, XILINX_XC7Z030_SIZE, NULL, cookie, &zynq_op, "7z030" }
|
||||
|
||||
#define XILINX_XC7Z045_DESC(cookie) \
|
||||
{ xilinx_zynq, devcfg, XILINX_XC7Z045_SIZE, NULL, cookie, "7z045" }
|
||||
{ xilinx_zynq, devcfg, XILINX_XC7Z045_SIZE, NULL, cookie, &zynq_op, "7z045" }
|
||||
|
||||
#define XILINX_XC7Z100_DESC(cookie) \
|
||||
{ xilinx_zynq, devcfg, XILINX_XC7Z100_SIZE, NULL, cookie, "7z100" }
|
||||
{ xilinx_zynq, devcfg, XILINX_XC7Z100_SIZE, NULL, cookie, &zynq_op, "7z100" }
|
||||
|
||||
#endif /* _ZYNQPL_H_ */
|
||||
|
||||
Reference in New Issue
Block a user