[PATCH v11 10/13] fpga: zynqmp: optimize zynqmppl_load() code

Michal Simek michal.simek at amd.com
Fri Jul 8 15:35:52 CEST 2022



On 7/8/22 15:15, Oleksandr Suvorov wrote:
> Hi Michal,
> 
> On Fri, Jul 8, 2022 at 3:43 PM Michal Simek <michal.simek at amd.com> wrote:
>>
>>
>>
>> On 7/5/22 21:23, Oleksandr Suvorov wrote:
>>> Optimize function code preparing to add secure bitstream types
>>> support.
>>
>> Can you please extend this? I understand what you do below but better
>> description will be good.
> 
> Ok, if I'll realize how to do this :)
> 
>>>
>>> Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov at foundries.io>
>>> Tested-by: Ricardo Salveti <ricardo at foundries.io>
>>> Tested-by: Adrian Fiergolski <adrian.fiergolski at fastree3d.com>
>>> ---
>>>
>>> (no changes since v1)
>>>
>>>    drivers/fpga/zynqmppl.c | 27 +++++++++++++--------------
>>>    1 file changed, 13 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/drivers/fpga/zynqmppl.c b/drivers/fpga/zynqmppl.c
>>> index 239c498f7b5..6959b8ae97e 100644
>>> --- a/drivers/fpga/zynqmppl.c
>>> +++ b/drivers/fpga/zynqmppl.c
>>> @@ -199,46 +199,45 @@ static int zynqmp_validate_bitstream(xilinx_desc *desc, const void *buf,
>>>        return 0;
>>>    }
>>>
>>> -static int zynqmp_load(xilinx_desc *desc, const void *buf, size_t bsize,
>>> -                  bitstream_type bstype, int flags)
>>> +static int zynqmp_load(xilinx_desc *desc, const void *buf,
>>> +                    size_t bsize, bitstream_type bstype,
>>> +                    int flags)
>>
>> This is unrelated to commit. This is purely coding style change.
> 
> Ok, I'll separate to another commit.
> 
>>>    {
>>>        ALLOC_CACHE_ALIGN_BUFFER(u32, bsizeptr, 1);
>>>        u32 swap = 0;
>>>        ulong bin_buf;
>>>        int ret;
>>>        u32 buf_lo, buf_hi;
>>> +     u32 bsize_req = (u32)bsize;
>>>        u32 ret_payload[PAYLOAD_ARG_CNT];
>>> -     bool xilfpga_old = false;
>>> +
>>> +     debug("%s called!\n", __func__);
>>>
>>>        if (zynqmp_firmware_version() <= PMUFW_V1_0) {
>>>                puts("WARN: PMUFW v1.0 or less is detected\n");
>>>                puts("WARN: Not all bitstream formats are supported\n");
>>>                puts("WARN: Please upgrade PMUFW\n");
>>> -             xilfpga_old = true;
>>> -             if (zynqmp_validate_bitstream(desc, buf, bsize, bsize, &swap))
>>> +             if (zynqmp_validate_bitstream(desc, buf, bsize,
>>> +                                           bsize, &swap))
>>
>> This is also coding style change only.
> 
> Ok.
> 
>>>                        return FPGA_FAIL;
>>>                bsizeptr = (u32 *)&bsize;
>>>                flush_dcache_range((ulong)bsizeptr,
>>>                                   (ulong)bsizeptr + sizeof(size_t));
>>> +             bsize_req = (u32)(uintptr_t)bsizeptr;
>>>                bstype |= BIT(ZYNQMP_FPGA_BIT_NS);
>>> +     } else {
>>> +             bstype = 0;
>>>        }
>>>
>>>        bin_buf = zynqmp_align_dma_buffer((u32 *)buf, bsize, swap);
>>>
>>> -     debug("%s called!\n", __func__);
>>
>> nit: And this also has nothing to do with optimization. You just changed location.
> 
> Michal, what is this closer to? Refactor?
> It's not only about changing location. Now there is only one call of
> xilinx_pm_request().

I know but it s not described in commit message. Diff was really just passing 
different argument. You just change the logic about them where you use clear 
bstype for secure bitstreams and align bsize_req

But you are not changing logic around bsizeptr where old xilfpga expects size to 
be a pointer not value.

Thanks,
Michal

commit 31bcb3444cbd5002ca9d8f6a3a2644092748cdba
Author:     Siva Durga Prasad Paladugu <siva.durga.paladugu at xilinx.com>
AuthorDate: Thu Mar 15 00:17:24 2018 +0530
Commit:     Michal Simek <michal.simek at amd.com>
CommitDate: Mon Apr 9 12:14:50 2018 +0200

     fpga: zynqmp: Fix the nonsecure bitstream loading issue

     Xilfpga library expects the size of bitstream in a pointer
     but currenly we are passing the size as a value. This patch
     fixes this issue.

     Signed-off-by: Siva Durga Prasad Paladugu <sivadur at xilinx.com>
     Signed-off-by: Nava kishore Manne <navam at xilinx.com>
     Signed-off-by: Michal Simek <michal.simek at xilinx.com>



More information about the U-Boot mailing list