mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 07:31:15 +00:00
fpga: Add support to load partial bitstreams
Added support to load partial bitstreams. The partial bitstreams can be loaded using the below commands Commands: fpga loadp <dev> <addr> <size> fpga loadbp <dev> <addr> <size> The full bit streams can be loaded using the old commands(fpga load and fpga loadb). Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
parent
7a78bd2679
commit
67193864bc
3 changed files with 43 additions and 0 deletions
9
README
9
README
|
@ -2554,6 +2554,15 @@ CBFS (Coreboot Filesystem) support
|
|||
|
||||
Enable support for fpga loadmk command
|
||||
|
||||
CONFIG_CMD_FPGA_LOADP
|
||||
|
||||
Enable support for fpga loadp command - load partial bitstream
|
||||
|
||||
CONFIG_CMD_FPGA_LOADBP
|
||||
|
||||
Enable support for fpga loadbp command - load partial bitstream
|
||||
(Xilinx only)
|
||||
|
||||
CONFIG_SYS_FPGA_PROG_FEEDBACK
|
||||
|
||||
Enable printing of hash marks during FPGA configuration.
|
||||
|
|
|
@ -23,6 +23,8 @@ static int fpga_get_op(char *opstr);
|
|||
#define FPGA_LOADB 2
|
||||
#define FPGA_DUMP 3
|
||||
#define FPGA_LOADMK 4
|
||||
#define FPGA_LOADP 5
|
||||
#define FPGA_LOADBP 6
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* command form:
|
||||
|
@ -121,7 +123,9 @@ int do_fpga(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
|
|||
case FPGA_INFO:
|
||||
break;
|
||||
case FPGA_LOAD:
|
||||
case FPGA_LOADP:
|
||||
case FPGA_LOADB:
|
||||
case FPGA_LOADBP:
|
||||
case FPGA_DUMP:
|
||||
if (!fpga_data || !data_size)
|
||||
wrong_parms = 1;
|
||||
|
@ -151,10 +155,22 @@ int do_fpga(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
|
|||
rc = fpga_load(dev, fpga_data, data_size, BIT_FULL);
|
||||
break;
|
||||
|
||||
#if defined(CONFIG_CMD_FPGA_LOADP)
|
||||
case FPGA_LOADP:
|
||||
rc = fpga_load(dev, fpga_data, data_size, BIT_PARTIAL);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case FPGA_LOADB:
|
||||
rc = fpga_loadbitstream(dev, fpga_data, data_size, BIT_FULL);
|
||||
break;
|
||||
|
||||
#if defined(CONFIG_CMD_FPGA_LOADBP)
|
||||
case FPGA_LOADBP:
|
||||
rc = fpga_loadbitstream(dev, fpga_data, data_size, BIT_PARTIAL);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CMD_FPGA_LOADMK)
|
||||
case FPGA_LOADMK:
|
||||
switch (genimg_get_format(fpga_data)) {
|
||||
|
@ -263,6 +279,14 @@ static int fpga_get_op(char *opstr)
|
|||
op = FPGA_LOADB;
|
||||
else if (!strcmp("load", opstr))
|
||||
op = FPGA_LOAD;
|
||||
#if defined(CONFIG_CMD_FPGA_LOADP)
|
||||
else if (!strcmp("loadp", opstr))
|
||||
op = FPGA_LOADP;
|
||||
#endif
|
||||
#if defined(CONFIG_CMD_FPGA_LOADBP)
|
||||
else if (!strcmp("loadbp", opstr))
|
||||
op = FPGA_LOADBP;
|
||||
#endif
|
||||
#if defined(CONFIG_CMD_FPGA_LOADMK)
|
||||
else if (!strcmp("loadmk", opstr))
|
||||
op = FPGA_LOADMK;
|
||||
|
@ -283,8 +307,17 @@ U_BOOT_CMD(fpga, 6, 1, do_fpga,
|
|||
" dump\t[dev]\t\t\tLoad device to memory buffer\n"
|
||||
" info\t[dev]\t\t\tlist known device information\n"
|
||||
" load\t[dev] [address] [size]\tLoad device from memory buffer\n"
|
||||
#if defined(CONFIG_CMD_FPGA_LOADP)
|
||||
" loadp\t[dev] [address] [size]\t"
|
||||
"Load device from memory buffer with partial bitstream\n"
|
||||
#endif
|
||||
" loadb\t[dev] [address] [size]\t"
|
||||
"Load device from bitstream buffer (Xilinx only)\n"
|
||||
#if defined(CONFIG_CMD_FPGA_LOADBP)
|
||||
" loadbp\t[dev] [address] [size]\t"
|
||||
"Load device from bitstream buffer with partial bitstream"
|
||||
"(Xilinx only)\n"
|
||||
#endif
|
||||
#if defined(CONFIG_CMD_FPGA_LOADMK)
|
||||
" loadmk [dev] [address]\tLoad device generated with mkimage"
|
||||
#if defined(CONFIG_FIT)
|
||||
|
|
|
@ -38,6 +38,7 @@ typedef struct { /* typedef fpga_desc */
|
|||
|
||||
typedef enum {
|
||||
BIT_FULL = 0,
|
||||
BIT_PARTIAL,
|
||||
} bitstream_type;
|
||||
|
||||
/* root function definitions */
|
||||
|
|
Loading…
Reference in a new issue