[PATCH 3/7] spl: fit: Move FPGA loading code to separate functions
Simon Glass
sjg at chromium.org
Mon Mar 15 08:25:23 CET 2021
Hi Alexandru,
On Wed, 10 Mar 2021 at 11:04, Alexandru Gagniuc <mr.nuke.me at gmail.com> wrote:
>
> The FPGA loading code in spl_simple_fit_read() can easily be separated
> from the rest of the logic. It is split into two functions instead of
> one because spl_fit_upload_fpga() is used in a subsequent patch.
>
> Signed-off-by: Alexandru Gagniuc <mr.nuke.me at gmail.com>
> ---
> common/spl/spl_fit.c | 69 ++++++++++++++++++++++++++++----------------
> 1 file changed, 44 insertions(+), 25 deletions(-)
>
Reviewed-by: Simon Glass <sjg at chromium.org>
> diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
> index 43fc43cf2b..55fca9f399 100644
> --- a/common/spl/spl_fit.c
> +++ b/common/spl/spl_fit.c
> @@ -526,6 +526,48 @@ __weak bool spl_load_simple_fit_skip_processing(void)
> return false;
> }
>
> +static int spl_fit_upload_fpga(struct spl_fit_info *ctx, int node,
> + struct spl_image_info *fpga_image)
> +{
> + int ret;
> +
> + debug("FPGA bitstream at: %x, size: %x\n",
> + (u32)fpga_image->load_addr, fpga_image->size);
> +
> + ret = fpga_load(0, (void *)fpga_image->load_addr, fpga_image->size,
> + BIT_FULL);
> + if (ret) {
> + printf("%s: Cannot load the image to the FPGA\n", __func__);
> + return ret;
> + }
> +
> + puts("FPGA image loaded from FIT\n");
Please add a blank line before last return in a function
> + return 0;
> +}
> +
> +static int spl_fit_load_fpga(struct spl_fit_info *ctx,
> + struct spl_load_info *info, ulong sector)
> +{
> + int node, ret;
> +
> + struct spl_image_info fpga_image = {
> + .load_addr = 0,
> + };
> +
> + node = spl_fit_get_image_node(ctx, "fpga", 0);
> + if (node < 0)
> + return node;
> +
> + /* Load the image and set up the fpga_image structure */
> + ret = spl_load_fit_image(info, sector, ctx, node, &fpga_image);
> + if (ret) {
> + printf("%s: Cannot load the FPGA: %i\n", __func__, ret);
> + return ret;
> + }
> +
> + return spl_fit_upload_fpga(ctx, node, &fpga_image);
> +}
> +
> static int spl_simple_fit_read(struct spl_fit_info *ctx,
> struct spl_load_info *info, ulong sector,
> const void *fit_header)
> @@ -609,31 +651,8 @@ int spl_load_simple_fit(struct spl_image_info *spl_image,
> if (ret < 0)
> return ret;
>
> -#ifdef CONFIG_SPL_FPGA
> - node = spl_fit_get_image_node(&ctx, "fpga", 0);
> - if (node >= 0) {
> - /* Load the image and set up the spl_image structure */
> - ret = spl_load_fit_image(info, sector, &ctx, node, spl_image);
> - if (ret) {
> - printf("%s: Cannot load the FPGA: %i\n", __func__, ret);
> - return ret;
> - }
> -
> - debug("FPGA bitstream at: %x, size: %x\n",
> - (u32)spl_image->load_addr, spl_image->size);
> -
> - ret = fpga_load(0, (const void *)spl_image->load_addr,
> - spl_image->size, BIT_FULL);
> - if (ret) {
> - printf("%s: Cannot load the image to the FPGA\n",
> - __func__);
> - return ret;
> - }
> -
> - puts("FPGA image loaded from FIT\n");
> - node = -1;
> - }
> -#endif
> + if (IS_ENABLED(CONFIG_SPL_FPGA))
> + spl_fit_load_fpga(&ctx, info, sector);
>
> /*
> * Find the U-Boot image using the following search order:
> --
> 2.26.2
>
Regards,
Simon
More information about the U-Boot
mailing list