[PATCH v2 1/4] fpga: add option for loading FPGA secure bitstreams
Michal Simek
michal.simek at xilinx.com
Mon Nov 1 12:53:35 CET 2021
On 11/1/21 11:47, Oleksandr Suvorov wrote:
> It allows using this feature without enabling the "fpga loads"
> command.
>
> Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov at foundries.io>
> ---
>
> (no changes since v1)
>
> cmd/Kconfig | 3 ++-
> drivers/fpga/Kconfig | 14 ++++++++++++++
> drivers/fpga/fpga.c | 2 +-
> drivers/fpga/xilinx.c | 2 +-
> drivers/fpga/zynqmppl.c | 4 ++--
> 5 files changed, 20 insertions(+), 5 deletions(-)
>
> diff --git a/cmd/Kconfig b/cmd/Kconfig
> index 5b30b13e43..270d1765d3 100644
> --- a/cmd/Kconfig
> +++ b/cmd/Kconfig
> @@ -949,8 +949,9 @@ config CMD_FPGA_LOADP
> a partial bitstream.
>
> config CMD_FPGA_LOAD_SECURE
> - bool "fpga loads - loads secure bitstreams (Xilinx only)"
> + bool "fpga loads - loads secure bitstreams"
> depends on CMD_FPGA
> + select FPGA_LOAD_SECURE
> help
> Enables the fpga loads command which is used to load secure
> (authenticated or encrypted or both) bitstreams on to FPGA.
> diff --git a/drivers/fpga/Kconfig b/drivers/fpga/Kconfig
> index dc0b3dd31b..262f95a252 100644
> --- a/drivers/fpga/Kconfig
> +++ b/drivers/fpga/Kconfig
> @@ -85,4 +85,18 @@ config FPGA_ZYNQPL
> Enable FPGA driver for loading bitstream in BIT and BIN format
> on Xilinx Zynq devices.
>
> +config FPGA_LOAD_SECURE
> + bool "Enable loading secure bitstreams"
> + depends on FPGA
> + help
> + Enables the fpga loads() functions that are used to load secure
> + (authenticated or encrypted or both) bitstreams on to FPGA.
> +
> +config SPL_FPGA_LOAD_SECURE
> + bool "Enable loading secure bitstreams for SPL"
> + depends on FPGA
> + help
> + Enables the fpga loads() functions that are used to load secure
> + (authenticated or encrypted or both) bitstreams on to FPGA.
> +
> endmenu
> diff --git a/drivers/fpga/fpga.c b/drivers/fpga/fpga.c
> index fe3dfa1233..3b0a44b242 100644
> --- a/drivers/fpga/fpga.c
> +++ b/drivers/fpga/fpga.c
> @@ -220,7 +220,7 @@ int fpga_fsload(int devnum, const void *buf, size_t size,
> }
> #endif
>
> -#if defined(CONFIG_CMD_FPGA_LOAD_SECURE)
> +#if CONFIG_IS_ENABLED(FPGA_LOAD_SECURE)
> int fpga_loads(int devnum, const void *buf, size_t size,
> struct fpga_secure_info *fpga_sec_info)
> {
> diff --git a/drivers/fpga/xilinx.c b/drivers/fpga/xilinx.c
> index cbebefb55f..6bc1bc491f 100644
> --- a/drivers/fpga/xilinx.c
> +++ b/drivers/fpga/xilinx.c
> @@ -172,7 +172,7 @@ int xilinx_loadfs(xilinx_desc *desc, const void *buf, size_t bsize,
> }
> #endif
>
> -#if defined(CONFIG_CMD_FPGA_LOAD_SECURE)
> +#if CONFIG_IS_ENABLED(FPGA_LOAD_SECURE)
> int xilinx_loads(xilinx_desc *desc, const void *buf, size_t bsize,
> struct fpga_secure_info *fpga_sec_info)
> {
> diff --git a/drivers/fpga/zynqmppl.c b/drivers/fpga/zynqmppl.c
> index 6b394869db..8ff12bf50a 100644
> --- a/drivers/fpga/zynqmppl.c
> +++ b/drivers/fpga/zynqmppl.c
> @@ -245,7 +245,7 @@ static int zynqmp_load(xilinx_desc *desc, const void *buf, size_t bsize,
> return ret;
> }
>
> -#if defined(CONFIG_CMD_FPGA_LOAD_SECURE) && !defined(CONFIG_SPL_BUILD)
> +#if CONFIG_IS_ENABLED(FPGA_LOAD_SECURE)
> static int zynqmp_loads(xilinx_desc *desc, const void *buf, size_t bsize,
> struct fpga_secure_info *fpga_sec_info)
> {
> @@ -306,7 +306,7 @@ static int zynqmp_pcap_info(xilinx_desc *desc)
>
> struct xilinx_fpga_op zynqmp_op = {
> .load = zynqmp_load,
> -#if defined(CONFIG_CMD_FPGA_LOAD_SECURE) && !defined(CONFIG_SPL_BUILD)
> +#if CONFIG_IS_ENABLED(FPGA_LOAD_SECURE)
> .loads = zynqmp_loads,
> #endif
> .info = zynqmp_pcap_info,
>
Acked-by: Michal Simek <michal.simek at xilinx.com>
Thanks,
Michal
More information about the U-Boot
mailing list