[PATCH v12 00/13] fpga: zynqmp: Adding support of loading authenticated images

Oleksandr Suvorov oleksandr.suvorov at foundries.io
Fri Jul 22 16:16:01 CEST 2022


This patchset introduces support for the authenticated and encrypted
FPGA images on ZynqMP boards, besides that introducing common way to
pass the compatible property to any fpga driver.

It bases on the initial work by Jorge Ramirez-Ortiz <jorge at foundries.io>
https://patchwork.ozlabs.org/project/uboot/patch/20211015091506.2602-1-jorge@foundries.io/
https://patchwork.ozlabs.org/project/uboot/patch/20211005111324.19749-3-jorge@foundries.io/

Changes in v12:
- define the function only if FPGA_LOAD_SECURE enabled;
- convert "compatible" to flags only if FPGA_LOAD_SECURE enabled;
- fix a commit message
- remove obsolete debug() message
- exclude all secure-related code if FPGA_LOAD_SECURE is disabled
- reduce the size of SPL if FPGA_LOAD_SECURE disabled.

Changes in v11:
- Fix treating an incoming FPGA image with empty flags parameter as
  legacy.
- add Tested-by records.

Changes in v10:
- move FPGA flags to macros;
- initialize xilinx_desc structs directly, removing *_DESC macros;
- initialize flags for mach-zynq;
- fix mixed types of return value;
- made the message about ignoring legacy compatibe option as debug;
- fix grammar
- Support DDR images only if FPGA_LOAD_SECURE enabled.
- Support ENC images only if FPGA_LOAD_SECURE enabled.

Changes in v9:
- remove an alien commit from a patchset :)

Changes in v8:
- Michal Simek's suggestions addressed:
-- introduce the compatible flags in xilinx_desc;
-- pass a binary compatible flag instead of "compatible" property to
   an FPGA driver.
- Optimize a zynqmp_load() function.

Changes in v7:
- apply Michal Simek's suggestions
  As I applied changes on Oleksandr's patches, I indicated it by
  specifying myself as co-author in the commits logs. I am not sure
  if that is the convention of marking it.

Changes in v6:
- add support for the encrypted bitfiles.

Changes in v5:
- replace ifdef with if() where it's possible.

Changes in v4:
- change interface to xilinx_desc->operations->open() callback.
- fix a bug from previous version of the patchset in dereferencing
  of a parent fpga_desc structure.

Changes in v3:
- remove the patch which introduced CMD_SPL_FPGA_LOAD_SECURE.
- fix mixing definitions/declarations.
- replace strcmp() calls with more secure strncmp().
- document the "u-boot,zynqmp-fpga-ddrauth" compatible string.
- fix code style by check-patch recommendations.

Changes in v2:
- add function fit_fpga_load() to simplify calls of fpga_load()
  from contexts without a compatible attribute.
- move all ZynqMP-specific logic to drivers/fpga/zynqmppl.c
- prepare for passing a "compatible" FDT property to any fpga driver.

Adrian Fiergolski (1):
  fpga: zynqmp: support loading encrypted bitfiles

Oleksandr Suvorov (12):
  fpga: add option for loading FPGA secure bitstreams
  fpga: xilinx: add missed identifier names
  fpga: xilinx: add bitstream flags to driver desc
  fpga: zynqmp: add str2flags call
  fpga: xilinx: pass compatible flags to xilinx_load()
  fpga: pass compatible flags to fpga_load()
  fpga: add fpga_compatible2flag
  spl: fit: pass real compatible flags to fpga_load()
  fpga: xilinx: pass compatible flags to load() callback
  fpga: zynqmp: reduce zynqmppl_load() code
  fpga: zynqmp: add bitstream compatible checking
  fpga: zynqmp: support loading authenticated images

 arch/arm/mach-zynq/cpu.c              |  1 +
 board/xilinx/versal/board.c           |  5 +-
 board/xilinx/zynqmp/zynqmp.c          |  5 +-
 boot/Kconfig                          |  4 +-
 boot/image-board.c                    |  4 +-
 cmd/Kconfig                           |  3 +-
 cmd/fpga.c                            |  8 +--
 common/spl/spl_fit.c                  | 17 +++--
 doc/uImage.FIT/source_file_format.txt |  7 +-
 drivers/fpga/Kconfig                  | 14 ++++
 drivers/fpga/fpga.c                   | 33 ++++++++-
 drivers/fpga/spartan2.c               |  2 +-
 drivers/fpga/spartan3.c               |  2 +-
 drivers/fpga/versalpl.c               |  2 +-
 drivers/fpga/virtex2.c                |  2 +-
 drivers/fpga/xilinx.c                 |  8 +--
 drivers/fpga/zynqmppl.c               | 99 ++++++++++++++++++++++-----
 drivers/fpga/zynqpl.c                 |  2 +-
 include/fpga.h                        |  4 +-
 include/versalpl.h                    |  3 -
 include/xilinx.h                      | 21 ++++--
 include/zynqmppl.h                    |  9 ++-
 22 files changed, 199 insertions(+), 56 deletions(-)

-- 
2.36.1



More information about the U-Boot mailing list