From: Richard Gong <[email protected]>
This is 2nd submission of Intel service layer and FPGA patches.
The customer wants to verify that a FPGA bitstream can be started properly
before saving the bitstream to the QSPI flash memory.
Bitstream authentication makes sure a signed bitstream has valid signatures.
The customer sends the bitstream via FPGA framework and overlay, the
firmware will authenticate the bitstream but not program the bitstream to
device. If the authentication passes, the bitstream will be programmed into
QSPI flash and will be expected to boot without issues.
Extend Intel service layer, FPGA manager and region drivers to support the
bitstream authentication feature.
Richard Gong (5):
firmware: stratix10-svc: add COMMAND_AUTHENTICATE_BITSTREAM flag
fpga: fpga-mgr: add FPGA_MGR_BITSTREM_AUTHENTICATION flag
fpga: of-fpga-region: add authenticate-fpga-config property
dt-bindings: fpga: add authenticate-fpga-config property
fpga: stratix10-soc: extend driver for bitstream authentication
Documentation/devicetree/bindings/fpga/fpga-region.txt | 1 +
drivers/fpga/of-fpga-region.c | 3 +++
drivers/fpga/stratix10-soc.c | 3 +++
include/linux/firmware/intel/stratix10-svc-client.h | 11 ++++++++---
include/linux/fpga/fpga-mgr.h | 13 ++++++++-----
5 files changed, 23 insertions(+), 8 deletions(-)
--
2.7.4
From: Richard Gong <[email protected]>
Add FPGA_MGR_BITSTREM_AUTHENTICATION flag for FPGA bitstream
authentication, which makes sure a signed bitstream has valid signatures.
Except for the actual configuration of the device, the authentication works
the same way as FPGA configuration does. If the authentication passes, the
bitstream will be programmed into QSPI flash and will be expected to boot
without issues.
Signed-off-by: Richard Gong <[email protected]>
---
v2: align all FPGA_MGR_* flags
update the commit messages
---
include/linux/fpga/fpga-mgr.h | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/include/linux/fpga/fpga-mgr.h b/include/linux/fpga/fpga-mgr.h
index 2bc3030..4fb3400 100644
--- a/include/linux/fpga/fpga-mgr.h
+++ b/include/linux/fpga/fpga-mgr.h
@@ -67,12 +67,15 @@ enum fpga_mgr_states {
* %FPGA_MGR_BITSTREAM_LSB_FIRST: SPI bitstream bit order is LSB first
*
* %FPGA_MGR_COMPRESSED_BITSTREAM: FPGA bitstream is compressed
+ *
+ * %FPGA_MGR_BITSTREM_AUTHENTICATION: do FPGA bitstream authentication only
*/
-#define FPGA_MGR_PARTIAL_RECONFIG BIT(0)
-#define FPGA_MGR_EXTERNAL_CONFIG BIT(1)
-#define FPGA_MGR_ENCRYPTED_BITSTREAM BIT(2)
-#define FPGA_MGR_BITSTREAM_LSB_FIRST BIT(3)
-#define FPGA_MGR_COMPRESSED_BITSTREAM BIT(4)
+#define FPGA_MGR_PARTIAL_RECONFIG BIT(0)
+#define FPGA_MGR_EXTERNAL_CONFIG BIT(1)
+#define FPGA_MGR_ENCRYPTED_BITSTREAM BIT(2)
+#define FPGA_MGR_BITSTREAM_LSB_FIRST BIT(3)
+#define FPGA_MGR_COMPRESSED_BITSTREAM BIT(4)
+#define FPGA_MGR_BITSTREM_AUTHENTICATION BIT(5)
/**
* struct fpga_image_info - information specific to a FPGA image
--
2.7.4