fpga: region: Add fpga-region property 'encrypted-fpga-config'
authorMoritz Fischer <mdf@kernel.org>
Mon, 27 Feb 2017 15:19:02 +0000 (09:19 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Mar 2017 06:10:48 +0000 (15:10 +0900)
Add fpga-region property to allow passing the fact that the bitstream is
encrypted to the fpga-region and ultimately to the low-level driver.

Signed-off-by: Moritz Fischer <mdf@kernel.org>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Alan Tull <atull@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/devicetree/bindings/fpga/fpga-region.txt
drivers/fpga/fpga-region.c

index 3b32ba15a71730838fb33bebb1365013b3c3c74d..81bf3adba24bddeae248f7f9e0e91e7656b015cf 100644 (file)
@@ -186,6 +186,7 @@ Optional properties:
        otherwise full reconfiguration is done.
 - external-fpga-config : boolean, set if the FPGA has already been configured
        prior to OS boot up.
+- encrypted-fpga-config : boolean, set if the bitstream is encrypted
 - region-unfreeze-timeout-us : The maximum time in microseconds to wait for
        bridges to successfully become enabled after the region has been
        programmed.
index 3222fdbad75ab080e0ba5cd191650bf1a4a5d67a..2fe2a52c66cab8ebcbc0b4b396b0073f5ebd2c56 100644 (file)
@@ -337,8 +337,9 @@ static int child_regions_with_firmware(struct device_node *overlay)
  * The overlay must add either firmware-name or external-fpga-config property
  * to the FPGA Region.
  *
- *   firmware-name        : program the FPGA
- *   external-fpga-config : FPGA is already programmed
+ *   firmware-name         : program the FPGA
+ *   external-fpga-config  : FPGA is already programmed
+ *   encrypted-fpga-config : FPGA bitstream is encrypted
  *
  * The overlay can add other FPGA regions, but child FPGA regions cannot have a
  * firmware-name property since those regions don't exist yet.
@@ -373,6 +374,9 @@ static int fpga_region_notify_pre_apply(struct fpga_region *region,
        if (of_property_read_bool(nd->overlay, "external-fpga-config"))
                info->flags |= FPGA_MGR_EXTERNAL_CONFIG;
 
+       if (of_property_read_bool(nd->overlay, "encrypted-fpga-config"))
+               info->flags |= FPGA_MGR_ENCRYPTED_BITSTREAM;
+
        of_property_read_string(nd->overlay, "firmware-name", &firmware_name);
 
        of_property_read_u32(nd->overlay, "region-unfreeze-timeout-us",