On 8/16/2024 9:31 PM, Bjorn Andersson wrote:
On Thu, Aug 15, 2024 at 02:27:09PM GMT, Md Sadre Alam wrote:
This series of patches will add command descriptor
support to read/write crypto engine register via
BAM/DMA
We need this support because if there is multiple EE's
(Execution Environment) accessing the same CE then there
will be race condition. To avoid this race condition
BAM HW hsving LOC/UNLOCK feature on BAM pipes and this
LOCK/UNLOCK will be set via command descriptor only.
Since each EE's having their dedicated BAM pipe, BAM allows
Locking and Unlocking on BAM pipe. So if one EE's requesting
for CE5 access then that EE's first has to LOCK the BAM pipe
while setting LOCK bit on command descriptor and then access
it. After finishing the request EE's has to UNLOCK the BAM pipe
so in this way we race condition will not happen.
tested with "tcrypt.ko" and "kcapi" tool.
Need help to test these all the patches on msm platform
v2:
* Addressed all the comments from v1
Please describe the actual changes you're making between your versions.
Sure , will update in next patch.
* Added the dt-binding
* Added locking/unlocking mechanism in bam driver
Seems to me that this was already part of v1, as patch 6/11?
Sorry, by mistake I have added this line in v2.
Regards,
Bjorn
v1:
* https://lore.kernel.org/lkml/20231214114239.2635325-1-quic_mdalam@xxxxxxxxxxx/
* Initial set of patches for cmd descriptor support
Md Sadre Alam (16):
dt-bindings: dma: qcom,bam: Add bam pipe lock
dmaengine: qcom: bam_dma: add bam_pipe_lock dt property
dmaengine: qcom: bam_dma: add LOCK & UNLOCK flag support
crypto: qce - Add support for crypto address read
crypto: qce - Add bam dma support for crypto register r/w
crypto: qce - Convert register r/w for skcipher via BAM/DMA
crypto: qce - Convert register r/w for sha via BAM/DMA
crypto: qce - Convert register r/w for aead via BAM/DMA
crypto: qce - Add LOCK and UNLOCK flag support
crypto: qce - Add support for lock aquire,lock release api.
crypto: qce - Add support for lock/unlock in skcipher
crypto: qce - Add support for lock/unlock in sha
crypto: qce - Add support for lock/unlock in aead
arm64: dts: qcom: ipq9574: enable bam pipe locking/unlocking
arm64: dts: qcom: ipq8074: enable bam pipe locking/unlocking
arm64: dts: qcom: ipq6018: enable bam pipe locking/unlocking
.../devicetree/bindings/dma/qcom,bam-dma.yaml | 8 +
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 1 +
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 1 +
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 1 +
drivers/crypto/qce/aead.c | 4 +
drivers/crypto/qce/common.c | 142 +++++++----
drivers/crypto/qce/core.c | 13 +-
drivers/crypto/qce/core.h | 12 +
drivers/crypto/qce/dma.c | 232 ++++++++++++++++++
drivers/crypto/qce/dma.h | 26 +-
drivers/crypto/qce/sha.c | 4 +
drivers/crypto/qce/skcipher.c | 4 +
drivers/dma/qcom/bam_dma.c | 14 +-
include/linux/dmaengine.h | 6 +
14 files changed, 424 insertions(+), 44 deletions(-)
--
2.34.1