]> rtime.felk.cvut.cz Git - vajnamar/linux-xlnx.git/commitdiff
Revert "fpga manager: Adopted Authenticated BitStream loading support for Xilinx"
authorNava kishore Manne <nava.manne@xilinx.com>
Mon, 18 Sep 2017 14:14:54 +0000 (19:44 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Wed, 20 Sep 2017 06:49:58 +0000 (08:49 +0200)
This reverts commit ed5a1413206f479a2ec68205539af4e299ce8ee7.

The FW (xilfpga) is using single pair of keys to authenticate the
Image. According to the xilinx flow we need to use a pair of
keys to provide the proper authentication support.
currently the FW don't have this support. So this patch
remove the Authenticated BitStream loading support.

Signed-off-by: Nava kishore Manne <navam@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/fpga/fpga-mgr.c
drivers/fpga/zynqmp-fpga.c
include/linux/fpga/fpga-mgr.h

index ee8deb489a0177c84aa9ec2fa547d5aba74f870a..f62897adf015d6d8aad138813e0e11387c508464 100644 (file)
@@ -133,50 +133,6 @@ int fpga_mgr_firmware_load(struct fpga_manager *mgr,
 }
 EXPORT_SYMBOL_GPL(fpga_mgr_firmware_load);
 
-int fpga_mgr_signature_load(struct fpga_manager *mgr,
-                               const char *image_name)
-{
-       struct device *dev = &mgr->dev;
-       const struct firmware *fw;
-       int ret;
-
-       dev_info(dev, "Loading %s to %s\n", image_name, mgr->name);
-
-       ret = request_firmware(&fw, image_name, dev);
-       if (ret) {
-               dev_err(dev, "Error requesting firmware %s\n", image_name);
-               return ret;
-       }
-
-       memcpy(mgr->signature, fw->data, fw->size);
-
-       release_firmware(fw);
-
-       return ret;
-}
-
-int fpga_mgr_pubkey_load(struct fpga_manager *mgr,
-                               const char *image_name)
-{
-       struct device *dev = &mgr->dev;
-       const struct firmware *fw;
-       int ret;
-
-       dev_info(dev, "Loading %s to %s\n", image_name, mgr->name);
-
-       ret = request_firmware(&fw, image_name, dev);
-       if (ret) {
-               dev_err(dev, "Error requesting firmware %s\n", image_name);
-               return ret;
-       }
-
-       memcpy(mgr->pubkey, fw->data, fw->size);
-
-       release_firmware(fw);
-
-       return ret;
-}
-
 static const char * const state_str[] = {
        [FPGA_MGR_STATE_UNKNOWN] =              "unknown",
        [FPGA_MGR_STATE_POWER_OFF] =            "power off",
@@ -247,50 +203,6 @@ static ssize_t firmware_store(struct device *dev,
        return count;
 }
 
-static ssize_t signature_store(struct device *dev,
-                               struct device_attribute *attr,
-                               const char *buf, size_t count)
-{
-       struct fpga_manager *mgr = to_fpga_manager(dev);
-       unsigned int len;
-       char image_name[NAME_MAX];
-       int ret;
-
-       /* lose terminating \n */
-       strcpy(image_name, buf);
-       len = strlen(image_name);
-       if (image_name[len - 1] == '\n')
-               image_name[len - 1] = 0;
-
-       ret = fpga_mgr_signature_load(mgr, image_name);
-       if (ret)
-               return ret;
-
-       return count;
-}
-
-static ssize_t pubkey_store(struct device *dev,
-                               struct device_attribute *attr,
-                               const char *buf, size_t count)
-{
-       struct fpga_manager *mgr = to_fpga_manager(dev);
-       unsigned int len;
-       char image_name[NAME_MAX];
-       int ret;
-
-       /* lose terminating \n */
-       strcpy(image_name, buf);
-       len = strlen(image_name);
-       if (image_name[len - 1] == '\n')
-               image_name[len - 1] = 0;
-
-       ret = fpga_mgr_pubkey_load(mgr, image_name);
-       if (ret)
-               return ret;
-
-       return count;
-}
-
 static ssize_t key_show(struct device *dev,
                        struct device_attribute *attr, char *buf)
 {
@@ -354,8 +266,6 @@ static ssize_t flags_store(struct device *dev,
 static DEVICE_ATTR_RO(name);
 static DEVICE_ATTR_RO(state);
 static DEVICE_ATTR_WO(firmware);
-static DEVICE_ATTR_WO(signature);
-static DEVICE_ATTR_WO(pubkey);
 static DEVICE_ATTR_RW(flags);
 static DEVICE_ATTR_RW(key);
 static DEVICE_ATTR_RW(iv);
@@ -364,8 +274,6 @@ static struct attribute *fpga_mgr_attrs[] = {
        &dev_attr_name.attr,
        &dev_attr_state.attr,
        &dev_attr_firmware.attr,
-       &dev_attr_signature.attr,
-       &dev_attr_pubkey.attr,
        &dev_attr_flags.attr,
        &dev_attr_key.attr,
        &dev_attr_iv.attr,
index 46180d9eda00e39ed963418cbdc128eb10c450b5..3bfa498e8d9a54f06d18c4f01fcd688ea633fa51 100644 (file)
@@ -24,7 +24,6 @@
 
 /* Constant Definitions */
 #define IXR_FPGA_DONE_MASK     0X00000008U
-#define IXR_FPGA_AUTHENTICATIN 0x00000004U
 #define IXR_FPGA_ENCRYPTION_EN 0x00000008U
 
 struct zynqmp_fpga_priv {
@@ -49,17 +48,17 @@ static int zynqmp_fpga_ops_write(struct fpga_manager *mgr,
 {
        struct zynqmp_fpga_priv *priv;
        char *kbuf;
-       size_t dma_size = size;
+       size_t dma_size;
        dma_addr_t dma_addr;
        u32 transfer_length;
        int ret;
 
        priv = mgr->priv;
 
-       if (mgr->flags & IXR_FPGA_AUTHENTICATIN)
-               dma_size = dma_size + SIGNATURE_LEN + PUBLIC_KEY_LEN;
        if (mgr->flags & IXR_FPGA_ENCRYPTION_EN)
-               dma_size = dma_size + ENCRYPTED_KEY_LEN + ENCRYPTED_IV_LEN;
+               dma_size = size + ENCRYPTED_KEY_LEN + ENCRYPTED_IV_LEN;
+       else
+               dma_size = size;
 
        kbuf = dma_alloc_coherent(priv->dev, dma_size, &dma_addr, GFP_KERNEL);
        if (!kbuf)
@@ -67,11 +66,6 @@ static int zynqmp_fpga_ops_write(struct fpga_manager *mgr,
 
        memcpy(kbuf, buf, size);
 
-       if (mgr->flags & IXR_FPGA_AUTHENTICATIN) {
-               memcpy(kbuf + size, mgr->signature, SIGNATURE_LEN);
-               memcpy(kbuf + size + SIGNATURE_LEN, mgr->pubkey,
-                                               PUBLIC_KEY_LEN);
-       }
        if (mgr->flags & IXR_FPGA_ENCRYPTION_EN) {
                memcpy(kbuf + size, mgr->key, ENCRYPTED_KEY_LEN);
                memcpy(kbuf + size + ENCRYPTED_KEY_LEN, mgr->iv,
index 6296044a891cc81d05ba793646859f365e5cafab..030bb0779c670b5397d1f13d1c054e8bd5dc7d6f 100644 (file)
@@ -23,8 +23,6 @@
 
 #define ENCRYPTED_KEY_LEN      64 /* Bytes */
 #define ENCRYPTED_IV_LEN       24 /* Bytes */
-#define SIGNATURE_LEN          512 /* Bytes */
-#define PUBLIC_KEY_LEN         516 /* Bytes */
 
 struct fpga_manager;
 
@@ -124,8 +122,6 @@ struct fpga_manager {
        long int flags;
        char key[ENCRYPTED_KEY_LEN];
        char iv[ENCRYPTED_IV_LEN];
-       char signature[SIGNATURE_LEN];
-       char pubkey[PUBLIC_KEY_LEN];
        struct device dev;
        struct mutex ref_mutex;
        enum fpga_mgr_states state;