Message ID | 20201117134714.3456446-1-thara.gopinath@linaro.org |
---|---|
Headers | show |
Series | Enable Qualcomm Crypto Engine on sdm845 | expand |
On Tue, Nov 17, 2020 at 08:47:08AM -0500, Thara Gopinath wrote: > Qualcomm crypto engine supports hardware accelerated algorithms for > encryption and authentication. Enable support for aes,des,3des encryption > algorithms and sha1,sha256, hmac(sha1),hmac(sha256) authentication > algorithms on sdm845.The patch series has been tested using the kernel > crypto testing module tcrypto.ko. Did you do this testing with CONFIG_CRYPTO_MANAGER_EXTRA_TESTS enabled? Do all tests pass with it enabled? - Eric
On 11/17/20 11:57 AM, Eric Biggers wrote: > On Tue, Nov 17, 2020 at 08:47:08AM -0500, Thara Gopinath wrote: >> Qualcomm crypto engine supports hardware accelerated algorithms for >> encryption and authentication. Enable support for aes,des,3des encryption >> algorithms and sha1,sha256, hmac(sha1),hmac(sha256) authentication >> algorithms on sdm845.The patch series has been tested using the kernel >> crypto testing module tcrypto.ko. > > Did you do this testing with CONFIG_CRYPTO_MANAGER_EXTRA_TESTS enabled? > Do all tests pass with it enabled? No I have not. This is in my todo list though. I am trying to enable AEAD algorithms on the crypto engine right now. I will try to test it out with that set. > > - Eric >
On Tue 17 Nov 07:47 CST 2020, Thara Gopinath wrote: > Qualcomm CE clock resource that is managed by BCM is required > by crypto driver to access the core clock. > ' ' after ':' in $subject With that Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Regards, bjorn > Signed-off-by: Thara Gopinath <thara.gopinath@linaro.org> > --- > drivers/clk/qcom/clk-rpmh.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/clk/qcom/clk-rpmh.c b/drivers/clk/qcom/clk-rpmh.c > index e2c669b08aff..7e2a4a9b9bf6 100644 > --- a/drivers/clk/qcom/clk-rpmh.c > +++ b/drivers/clk/qcom/clk-rpmh.c > @@ -349,6 +349,7 @@ DEFINE_CLK_RPMH_VRM(sdm845, rf_clk2, rf_clk2_ao, "rfclka2", 1); > DEFINE_CLK_RPMH_VRM(sdm845, rf_clk3, rf_clk3_ao, "rfclka3", 1); > DEFINE_CLK_RPMH_VRM(sm8150, rf_clk3, rf_clk3_ao, "rfclka3", 1); > DEFINE_CLK_RPMH_BCM(sdm845, ipa, "IP0"); > +DEFINE_CLK_RPMH_BCM(sdm845, ce, "CE0"); > > static struct clk_hw *sdm845_rpmh_clocks[] = { > [RPMH_CXO_CLK] = &sdm845_bi_tcxo.hw, > @@ -364,6 +365,7 @@ static struct clk_hw *sdm845_rpmh_clocks[] = { > [RPMH_RF_CLK3] = &sdm845_rf_clk3.hw, > [RPMH_RF_CLK3_A] = &sdm845_rf_clk3_ao.hw, > [RPMH_IPA_CLK] = &sdm845_ipa.hw, > + [RPMH_CE_CLK] = &sdm845_ce.hw, > }; > > static const struct clk_rpmh_desc clk_rpmh_sdm845 = { > -- > 2.25.1 >
On Tue 17 Nov 07:47 CST 2020, Thara Gopinath wrote: > Add support Qualcomm Crypto Engine accelerated encryption and > authentication algorithms on sdm845. > Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Regards, Bjorn > Signed-off-by: Thara Gopinath <thara.gopinath@linaro.org> > --- > drivers/crypto/qce/core.c | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > diff --git a/drivers/crypto/qce/core.c b/drivers/crypto/qce/core.c > index ea616b7259ae..67c3ca13e55b 100644 > --- a/drivers/crypto/qce/core.c > +++ b/drivers/crypto/qce/core.c > @@ -160,7 +160,21 @@ static int qce_check_version(struct qce_device *qce) > return -ENODEV; > > qce->burst_size = QCE_BAM_BURST_SIZE; > - qce->pipe_pair_id = 1; > + > + /* > + * Rx and tx pipes are treated as a pair inside CE. > + * Pipe pair number depended on the actual BAM dma pipe > + * that is used for transfers. The BAM dma pipes are passed > + * from the device tree and used to derive the pipe pair > + * id in the CE driver as follows. > + * BAM dma pipes(rx, tx) CE pipe pair id > + * 0,1 0 > + * 2,3 1 > + * 4,5 2 > + * 6,7 3 > + * ... > + */ > + qce->pipe_pair_id = qce->dma.rxchan->chan_id >> 1; > > dev_dbg(qce->dev, "Crypto device found, version %d.%d.%d\n", > major, minor, step); > @@ -261,6 +275,7 @@ static int qce_crypto_remove(struct platform_device *pdev) > > static const struct of_device_id qce_crypto_of_match[] = { > { .compatible = "qcom,crypto-v5.1", }, > + { .compatible = "qcom,crypto-v5.4", }, > {} > }; > MODULE_DEVICE_TABLE(of, qce_crypto_of_match); > -- > 2.25.1 >