[PATCH V7 0/4] Add Xilinx's ZynqMP AES-GCM driver support

From: Kalyani Akula
Date: Mon Feb 17 2020 - 05:27:05 EST

This patch set adds support for
- dt-binding docs for Xilinx ZynqMP AES driver
- Adds device tree node for ZynqMP AES driver
- Adds communication layer support for aes in zynqmp.c
- Adds Xilinx ZynqMP driver for AES Algorithm

NOTE: This patchset is based on Michal's branch
because of possible merge conflict for 1/4 patch with below commit
commit 461011b1e1ab ("drivers: firmware: xilinx: Add support for feature check")

V7 Changes:
- Rebased this patchset on Cryptodev-2.6 tree and fixed compilation
issue seen. The issue is seen due to the below
commit af5034e8e4a5("crypto: remove propagation of CRYPTO_TFM_RES_* flags")

V6 Changes:
- Updated SPDX-License-Identifier in xlnx,zynqmp-aes.yaml.

V5 Changes :
- Moved arm64: zynqmp: Add Xilinx AES node from 2/4 to 4/4.
- Moved crypto: Add Xilinx AES driver patch from 4/4 to 3/4.
- Moved dt-bindings patch from 1/4 to 2/4
- Moved firmware: xilinx: Add ZynqMP aes API for AES patch from 3/4 to 1/4
- Converted dt-bindings from .txt to .yaml format.
- Corrected typo in the subject.
- Updated zynqmp-aes node to correct location.
- Replaced ARCH_ZYNQMP with ZYNQMP_FIRMWARE in Kconfig
- Removed extra new lines and added wherever necessary.
- Updated Signed-off-by sequence.
- Ran checkpatch for all patches in the series.

V4 Changes :
- Addressed review comments.

V3 Changes :
- Added software fallback in cases where Hardware doesn't have
the capability to handle the request.
- Removed use of global variable for storing the driver data.
- Enabled CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y and executed all
the kernel selftests. Also covered tests with tcrypt module.

V2 Changes :
- Converted RFC PATCH to PATCH
- Removed ALG_SET_KEY_TYPE that was added to support keytype
attribute. Taken using setkey interface.
- Removed deprecated BLKCIPHER in Kconfig
- Erased Key/IV from the buffer.
- Renamed zynqmp-aes driver to zynqmp-aes-gcm.
- Addressed few other review comments

Kalyani Akula (4):
firmware: xilinx: Add ZynqMP aes API for AES functionality
dt-bindings: crypto: Add bindings for ZynqMP AES-GCM driver
crypto: Add Xilinx AES driver
arm64: zynqmp: Add Xilinx AES node.

.../bindings/crypto/xlnx,zynqmp-aes.yaml | 37 ++
arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 4 +
drivers/crypto/Kconfig | 12 +
drivers/crypto/Makefile | 1 +
drivers/crypto/xilinx/Makefile | 2 +
drivers/crypto/xilinx/zynqmp-aes-gcm.c | 457 +++++++++++++++++++++
drivers/firmware/xilinx/zynqmp.c | 25 ++
include/linux/firmware/xlnx-zynqmp.h | 2 +
8 files changed, 540 insertions(+)
create mode 100644 Documentation/devicetree/bindings/crypto/xlnx,zynqmp-aes.yaml
create mode 100644 drivers/crypto/xilinx/Makefile
create mode 100644 drivers/crypto/xilinx/zynqmp-aes-gcm.c