From 8b93a92f6d089c8b3a055c8d89492e73137490b7 Mon Sep 17 00:00:00 2001 From: Goldschmidt Simon Date: Fri, 10 Nov 2017 14:17:41 +0000 Subject: fpga: allow programming fpga from FIT image for all FPGA drivers This drops the limit that fpga is only loaded from FIT images for Xilinx. This is done by moving the 'partial' check from 'common/image.c' to 'drivers/fpga/xilinx.c' (the only driver supporting partial images yet) and supplies a weak default implementation in 'drivers/fpga/fpga.c'. Signed-off-by: Simon Goldschmidt Tested-by: Michal Simek (On zcu102) Signed-off-by: Michal Simek --- drivers/fpga/fpga.c | 9 +++++++++ drivers/fpga/xilinx.c | 13 +++++++++++++ 2 files changed, 22 insertions(+) (limited to 'drivers/fpga') diff --git a/drivers/fpga/fpga.c b/drivers/fpga/fpga.c index e0fb1b4e78..6aead27f16 100644 --- a/drivers/fpga/fpga.c +++ b/drivers/fpga/fpga.c @@ -170,6 +170,15 @@ int fpga_add(fpga_type devtype, void *desc) return devnum; } +/* + * Return 1 if the fpga data is partial. + * This is only required for fpga drivers that support bitstream_type. + */ +int __weak fpga_is_partial_data(int devnum, size_t img_len) +{ + return 0; +} + /* * Convert bitstream data and load into the fpga */ diff --git a/drivers/fpga/xilinx.c b/drivers/fpga/xilinx.c index 941f30010a..3c05760969 100644 --- a/drivers/fpga/xilinx.c +++ b/drivers/fpga/xilinx.c @@ -24,6 +24,19 @@ static int xilinx_validate(xilinx_desc *desc, char *fn); /* ------------------------------------------------------------------------- */ +int fpga_is_partial_data(int devnum, size_t img_len) +{ + const fpga_desc * const desc = fpga_get_desc(devnum); + xilinx_desc *desc_xilinx = desc->devdesc; + + /* Check datasize against FPGA size */ + if (img_len >= desc_xilinx->size) + return 0; + + /* datasize is smaller, must be partial data */ + return 1; +} + int fpga_loadbitstream(int devnum, char *fpgadata, size_t size, bitstream_type bstype) { -- cgit v1.2.3