summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSiva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>2014-03-14 16:35:37 +0530
committerMichal Simek <michal.simek@xilinx.com>2014-05-20 15:23:46 +0200
commit1a897668ac33c57ca76f47cb940ec32b405e90dd (patch)
treeaccd3a9001b851d2fe03553f7997fa417be17db0 /include
parent26ea9ce5b84b688936a64d1c6102614ed1c28640 (diff)
fpga: Added support to load bit stream from SD/MMC
Added support to load a bitstream image in chunks by reading it in chunks from SD/MMC. Command format: loadfs [dev] [address] [image size] [blocksize] <interface> [<dev[:part]>] <filename> Example: fpga loadfs 0 1000000 3dbafc 4000 mmc 0 fpga.bin Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Diffstat (limited to 'include')
-rw-r--r--include/configs/zynq-common.h1
-rw-r--r--include/fpga.h9
-rw-r--r--include/xilinx.h3
3 files changed, 13 insertions, 0 deletions
diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h
index fb600b8605..97632452f8 100644
--- a/include/configs/zynq-common.h
+++ b/include/configs/zynq-common.h
@@ -194,6 +194,7 @@
#define CONFIG_CMD_FPGA_LOADMK
#define CONFIG_CMD_FPGA_LOADP
#define CONFIG_CMD_FPGA_LOADBP
+#define CONFIG_CMD_FPGA_LOADFS
/* Open Firmware flat tree */
#define CONFIG_OF_LIBFDT
diff --git a/include/fpga.h b/include/fpga.h
index 49efd375f7..914024c17c 100644
--- a/include/fpga.h
+++ b/include/fpga.h
@@ -35,6 +35,13 @@ typedef struct { /* typedef fpga_desc */
void *devdesc; /* real device descriptor */
} fpga_desc; /* end, typedef fpga_desc */
+typedef struct { /* typedef fpga_desc */
+ unsigned int blocksize;
+ char *interface;
+ char *dev_part;
+ char *filename;
+ int fstype;
+} fpga_fs_info;
typedef enum {
BIT_FULL = 0,
@@ -47,6 +54,8 @@ extern int fpga_add(fpga_type devtype, void *desc);
extern int fpga_count(void);
extern int fpga_load(int devnum, const void *buf, size_t bsize,
bitstream_type bstype);
+extern int fpga_fsload(int devnum, const void *buf, size_t size,
+ fpga_fs_info *fpga_fsinfo);
extern int fpga_loadbitstream(int devnum, char *fpgadata, size_t size,
bitstream_type bstype);
extern int fpga_dump(int devnum, const void *buf, size_t bsize);
diff --git a/include/xilinx.h b/include/xilinx.h
index 7d83ba2095..aebcb3bfdf 100644
--- a/include/xilinx.h
+++ b/include/xilinx.h
@@ -46,6 +46,7 @@ typedef struct { /* typedef xilinx_desc */
struct xilinx_fpga_op {
int (*load)(xilinx_desc *, const void *, size_t, bitstream_type);
+ int (*loadfs)(xilinx_desc *, const void *, size_t, fpga_fs_info *);
int (*dump)(xilinx_desc *, const void *, size_t);
int (*info)(xilinx_desc *);
};
@@ -56,6 +57,8 @@ int xilinx_load(xilinx_desc *desc, const void *image, size_t size,
bitstream_type bstype);
int xilinx_dump(xilinx_desc *desc, const void *buf, size_t bsize);
int xilinx_info(xilinx_desc *desc);
+int xilinx_loadfs(xilinx_desc *desc, const void *buf, size_t bsize,
+ fpga_fs_info *fpga_fsinfo);
/* Board specific implementation specific function types
*********************************************************************/