From: Cosar Dindar <cosardindar@gmail.com>
To: Fabien DESSENNE <fabien.dessenne@st.com>
Cc: "mark.rutland@arm.com" <mark.rutland@arm.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
Alexandre TORGUE <alexandre.torgue@st.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"robh+dt@kernel.org" <robh+dt@kernel.org>,
"linux-crypto@vger.kernel.org" <linux-crypto@vger.kernel.org>,
"mcoquelin.stm32@gmail.com" <mcoquelin.stm32@gmail.com>,
"davem@davemloft.net" <davem@davemloft.net>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"herbert@gondor.apana.org.au" <herbert@gondor.apana.org.au>
Subject: Re: [PATCH v3 2/5] crypto : stm32 - Add STM32F4 CRC32 support
Date: Fri, 2 Jun 2017 16:56:08 +0300 [thread overview]
Message-ID: <20170602135608.GA40339@osboxes> (raw)
In-Reply-To: <efdd669a-2df6-f7fa-849b-e1c7057ae666@st.com>
Hi Fabien,
Thanks for your review.
On Mon, May 29, 2017 at 07:56:48AM +0000, Fabien DESSENNE wrote:
> Hi Cosar,
>
> Thank you for the patch
>
> On 22/05/17 16:34, Cosar Dindar wrote:
> > This patch adds CRC (CRC32 Crypto) support for STM32F4 series.
> >
> > As an hardware limitation polynomial and key setting are not supported.
> > They are fixed as 0x4C11DB7 (poly) and 0xFFFFFFFF (key).
> > CRC32C Castagnoli algorithm is not used.
> >
> > Signed-off-by: Cosar Dindar <cosardindar@gmail.com>
> > ---
> > drivers/crypto/stm32/stm32_crc32.c | 68 ++++++++++++++++++++++++++++++++------
> > 1 file changed, 58 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/crypto/stm32/stm32_crc32.c b/drivers/crypto/stm32/stm32_crc32.c
> > index ec83b1e..12fbd98 100644
> > --- a/drivers/crypto/stm32/stm32_crc32.c
> > +++ b/drivers/crypto/stm32/stm32_crc32.c
> > @@ -7,6 +7,7 @@
> > #include <linux/bitrev.h>
> > #include <linux/clk.h>
> > #include <linux/module.h>
> > +#include <linux/of.h>
> > #include <linux/platform_device.h>
> >
> > #include <crypto/internal/hash.h>
> > @@ -39,6 +40,9 @@ struct stm32_crc {
> > struct clk *clk;
> > u8 pending_data[sizeof(u32)];
> > size_t nb_pending_bytes;
> > + bool key_support;
> > + bool poly_support;
> > + bool reverse_support;
> > };
> >
> > struct stm32_crc_list {
> > @@ -106,13 +110,31 @@ static int stm32_crc_init(struct shash_desc *desc)
> > }
> > spin_unlock_bh(&crc_list.lock);
> >
> > - /* Reset, set key, poly and configure in bit reverse mode */
> > - writel(bitrev32(mctx->key), ctx->crc->regs + CRC_INIT);
> > - writel(bitrev32(mctx->poly), ctx->crc->regs + CRC_POL);
> > - writel(CRC_CR_RESET | CRC_CR_REVERSE, ctx->crc->regs + CRC_CR);
> > + /* set key */
> > + if (ctx->crc->key_support) {
> > + writel(bitrev32(mctx->key), ctx->crc->regs + CRC_INIT);
> > + } else if (mctx->key != CRC_INIT_DEFAULT) {
> > + dev_err(ctx->crc->dev, "Unsupported key value! Should be: 0x%x\n",
> > + CRC_INIT_DEFAULT);
> > + return -EINVAL;
> > + }
> > +
> > + /* set poly */
> > + if (ctx->crc->poly_support)
> > + writel(bitrev32(mctx->poly), ctx->crc->regs + CRC_POL);
> > +
> > + /* reset and configure in bit reverse mode if supported */
> > + if (ctx->crc->reverse_support)
> > + writel(CRC_CR_RESET | CRC_CR_REVERSE, ctx->crc->regs + CRC_CR);
> > + else
> > + writel(CRC_CR_RESET, ctx->crc->regs + CRC_CR);
> > +
> > + /* store partial result */
> > + if (!ctx->crc->reverse_support)
> > + ctx->partial = bitrev32(readl(crc->regs + CRC_DR));
> > + else
> > + ctx->partial = readl(ctx->crc->regs + CRC_DR);
> >
> > - /* Store partial result */
> > - ctx->partial = readl(ctx->crc->regs + CRC_DR);
> > ctx->crc->nb_pending_bytes = 0;
> >
> > return 0;
> > @@ -135,7 +157,12 @@ static int stm32_crc_update(struct shash_desc *desc, const u8 *d8,
> >
> > if (crc->nb_pending_bytes == sizeof(u32)) {
> > /* Process completed pending data */
> > - writel(*(u32 *)crc->pending_data, crc->regs + CRC_DR);
> > + if (!ctx->crc->reverse_support)
> > + writel(bitrev32(*(u32 *)crc->pending_data),
> > + crc->regs + CRC_DR);
> > + else
> > + writel(*(u32 *)crc->pending_data,
> > + crc->regs + CRC_DR);
> > crc->nb_pending_bytes = 0;
> > }
> > }
> > @@ -143,10 +170,16 @@ static int stm32_crc_update(struct shash_desc *desc, const u8 *d8,
> > d32 = (u32 *)d8;
> > for (i = 0; i < length >> 2; i++)
> > /* Process 32 bits data */
> > - writel(*(d32++), crc->regs + CRC_DR);
> > + if (!ctx->crc->reverse_support)
> > + writel(bitrev32(*(d32++)), crc->regs + CRC_DR);
> > + else
> > + writel(*(d32++), crc->regs + CRC_DR);
> >
> > /* Store partial result */
> > - ctx->partial = readl(crc->regs + CRC_DR);
> > + if (!ctx->crc->reverse_support)
> > + ctx->partial = bitrev32(readl(crc->regs + CRC_DR));
> > + else
> > + ctx->partial = readl(crc->regs + CRC_DR);
> >
> > /* Check for pending data (non 32 bits) */
> > length &= 3;
> > @@ -243,6 +276,7 @@ static int stm32_crc_probe(struct platform_device *pdev)
> > struct stm32_crc *crc;
> > struct resource *res;
> > int ret;
> > + int algs_size;
> >
> > crc = devm_kzalloc(dev, sizeof(*crc), GFP_KERNEL);
> > if (!crc)
> > @@ -269,13 +303,26 @@ static int stm32_crc_probe(struct platform_device *pdev)
> > return ret;
> > }
> >
> > + /* set key, poly and reverse support if device is of F7 series */
> > + if (of_device_is_compatible(crc->dev->of_node, "st,stm32f7-crc")) {
> > + crc->key_support = true;
> > + crc->poly_support = true;
> > + crc->reverse_support = true;
> > + }
> > +
> > platform_set_drvdata(pdev, crc);
> >
> > spin_lock(&crc_list.lock);
> > list_add(&crc->list, &crc_list.dev_list);
> > spin_unlock(&crc_list.lock);
> >
> > - ret = crypto_register_shashes(algs, ARRAY_SIZE(algs));
> > + /* For F4 series only CRC32 algorithm will be used */
> > + if (of_device_is_compatible(crc->dev->of_node, "st,stm32f4-crc"))
> > + algs_size = 1;
> > + else
> > + algs_size = ARRAY_SIZE(algs);
> > +
> > + ret = crypto_register_shashes(algs, algs_size);
> > if (ret) {
> > dev_err(dev, "Failed to register\n");
> > clk_disable_unprepare(crc->clk);
> > @@ -304,6 +351,7 @@ static int stm32_crc_remove(struct platform_device *pdev)
> >
> > static const struct of_device_id stm32_dt_ids[] = {
> > { .compatible = "st,stm32f7-crc", },
> > + { .compatible = "st,stm32f4-crc", },
> > {},
> > };
> > MODULE_DEVICE_TABLE(of, stm32_dt_ids);
> Reviewed-by: Fabien Dessenne <fabien.dessenne@st.com>
Best Regards.
Cosar
WARNING: multiple messages have this Message-ID (diff)
From: cosardindar@gmail.com (Cosar Dindar)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 2/5] crypto : stm32 - Add STM32F4 CRC32 support
Date: Fri, 2 Jun 2017 16:56:08 +0300 [thread overview]
Message-ID: <20170602135608.GA40339@osboxes> (raw)
In-Reply-To: <efdd669a-2df6-f7fa-849b-e1c7057ae666@st.com>
Hi Fabien,
Thanks for your review.
On Mon, May 29, 2017 at 07:56:48AM +0000, Fabien DESSENNE wrote:
> Hi Cosar,
>
> Thank you for the patch
>
> On 22/05/17 16:34, Cosar Dindar wrote:
> > This patch adds CRC (CRC32 Crypto) support for STM32F4 series.
> >
> > As an hardware limitation polynomial and key setting are not supported.
> > They are fixed as 0x4C11DB7 (poly) and 0xFFFFFFFF (key).
> > CRC32C Castagnoli algorithm is not used.
> >
> > Signed-off-by: Cosar Dindar <cosardindar@gmail.com>
> > ---
> > drivers/crypto/stm32/stm32_crc32.c | 68 ++++++++++++++++++++++++++++++++------
> > 1 file changed, 58 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/crypto/stm32/stm32_crc32.c b/drivers/crypto/stm32/stm32_crc32.c
> > index ec83b1e..12fbd98 100644
> > --- a/drivers/crypto/stm32/stm32_crc32.c
> > +++ b/drivers/crypto/stm32/stm32_crc32.c
> > @@ -7,6 +7,7 @@
> > #include <linux/bitrev.h>
> > #include <linux/clk.h>
> > #include <linux/module.h>
> > +#include <linux/of.h>
> > #include <linux/platform_device.h>
> >
> > #include <crypto/internal/hash.h>
> > @@ -39,6 +40,9 @@ struct stm32_crc {
> > struct clk *clk;
> > u8 pending_data[sizeof(u32)];
> > size_t nb_pending_bytes;
> > + bool key_support;
> > + bool poly_support;
> > + bool reverse_support;
> > };
> >
> > struct stm32_crc_list {
> > @@ -106,13 +110,31 @@ static int stm32_crc_init(struct shash_desc *desc)
> > }
> > spin_unlock_bh(&crc_list.lock);
> >
> > - /* Reset, set key, poly and configure in bit reverse mode */
> > - writel(bitrev32(mctx->key), ctx->crc->regs + CRC_INIT);
> > - writel(bitrev32(mctx->poly), ctx->crc->regs + CRC_POL);
> > - writel(CRC_CR_RESET | CRC_CR_REVERSE, ctx->crc->regs + CRC_CR);
> > + /* set key */
> > + if (ctx->crc->key_support) {
> > + writel(bitrev32(mctx->key), ctx->crc->regs + CRC_INIT);
> > + } else if (mctx->key != CRC_INIT_DEFAULT) {
> > + dev_err(ctx->crc->dev, "Unsupported key value! Should be: 0x%x\n",
> > + CRC_INIT_DEFAULT);
> > + return -EINVAL;
> > + }
> > +
> > + /* set poly */
> > + if (ctx->crc->poly_support)
> > + writel(bitrev32(mctx->poly), ctx->crc->regs + CRC_POL);
> > +
> > + /* reset and configure in bit reverse mode if supported */
> > + if (ctx->crc->reverse_support)
> > + writel(CRC_CR_RESET | CRC_CR_REVERSE, ctx->crc->regs + CRC_CR);
> > + else
> > + writel(CRC_CR_RESET, ctx->crc->regs + CRC_CR);
> > +
> > + /* store partial result */
> > + if (!ctx->crc->reverse_support)
> > + ctx->partial = bitrev32(readl(crc->regs + CRC_DR));
> > + else
> > + ctx->partial = readl(ctx->crc->regs + CRC_DR);
> >
> > - /* Store partial result */
> > - ctx->partial = readl(ctx->crc->regs + CRC_DR);
> > ctx->crc->nb_pending_bytes = 0;
> >
> > return 0;
> > @@ -135,7 +157,12 @@ static int stm32_crc_update(struct shash_desc *desc, const u8 *d8,
> >
> > if (crc->nb_pending_bytes == sizeof(u32)) {
> > /* Process completed pending data */
> > - writel(*(u32 *)crc->pending_data, crc->regs + CRC_DR);
> > + if (!ctx->crc->reverse_support)
> > + writel(bitrev32(*(u32 *)crc->pending_data),
> > + crc->regs + CRC_DR);
> > + else
> > + writel(*(u32 *)crc->pending_data,
> > + crc->regs + CRC_DR);
> > crc->nb_pending_bytes = 0;
> > }
> > }
> > @@ -143,10 +170,16 @@ static int stm32_crc_update(struct shash_desc *desc, const u8 *d8,
> > d32 = (u32 *)d8;
> > for (i = 0; i < length >> 2; i++)
> > /* Process 32 bits data */
> > - writel(*(d32++), crc->regs + CRC_DR);
> > + if (!ctx->crc->reverse_support)
> > + writel(bitrev32(*(d32++)), crc->regs + CRC_DR);
> > + else
> > + writel(*(d32++), crc->regs + CRC_DR);
> >
> > /* Store partial result */
> > - ctx->partial = readl(crc->regs + CRC_DR);
> > + if (!ctx->crc->reverse_support)
> > + ctx->partial = bitrev32(readl(crc->regs + CRC_DR));
> > + else
> > + ctx->partial = readl(crc->regs + CRC_DR);
> >
> > /* Check for pending data (non 32 bits) */
> > length &= 3;
> > @@ -243,6 +276,7 @@ static int stm32_crc_probe(struct platform_device *pdev)
> > struct stm32_crc *crc;
> > struct resource *res;
> > int ret;
> > + int algs_size;
> >
> > crc = devm_kzalloc(dev, sizeof(*crc), GFP_KERNEL);
> > if (!crc)
> > @@ -269,13 +303,26 @@ static int stm32_crc_probe(struct platform_device *pdev)
> > return ret;
> > }
> >
> > + /* set key, poly and reverse support if device is of F7 series */
> > + if (of_device_is_compatible(crc->dev->of_node, "st,stm32f7-crc")) {
> > + crc->key_support = true;
> > + crc->poly_support = true;
> > + crc->reverse_support = true;
> > + }
> > +
> > platform_set_drvdata(pdev, crc);
> >
> > spin_lock(&crc_list.lock);
> > list_add(&crc->list, &crc_list.dev_list);
> > spin_unlock(&crc_list.lock);
> >
> > - ret = crypto_register_shashes(algs, ARRAY_SIZE(algs));
> > + /* For F4 series only CRC32 algorithm will be used */
> > + if (of_device_is_compatible(crc->dev->of_node, "st,stm32f4-crc"))
> > + algs_size = 1;
> > + else
> > + algs_size = ARRAY_SIZE(algs);
> > +
> > + ret = crypto_register_shashes(algs, algs_size);
> > if (ret) {
> > dev_err(dev, "Failed to register\n");
> > clk_disable_unprepare(crc->clk);
> > @@ -304,6 +351,7 @@ static int stm32_crc_remove(struct platform_device *pdev)
> >
> > static const struct of_device_id stm32_dt_ids[] = {
> > { .compatible = "st,stm32f7-crc", },
> > + { .compatible = "st,stm32f4-crc", },
> > {},
> > };
> > MODULE_DEVICE_TABLE(of, stm32_dt_ids);
> Reviewed-by: Fabien Dessenne <fabien.dessenne@st.com>
Best Regards.
Cosar
WARNING: multiple messages have this Message-ID (diff)
From: Cosar Dindar <cosardindar@gmail.com>
To: Fabien DESSENNE <fabien.dessenne@st.com>
Cc: "herbert@gondor.apana.org.au" <herbert@gondor.apana.org.au>,
"davem@davemloft.net" <davem@davemloft.net>,
"robh+dt@kernel.org" <robh+dt@kernel.org>,
"mark.rutland@arm.com" <mark.rutland@arm.com>,
"mcoquelin.stm32@gmail.com" <mcoquelin.stm32@gmail.com>,
Alexandre TORGUE <alexandre.torgue@st.com>,
"linux-crypto@vger.kernel.org" <linux-crypto@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 2/5] crypto : stm32 - Add STM32F4 CRC32 support
Date: Fri, 2 Jun 2017 16:56:08 +0300 [thread overview]
Message-ID: <20170602135608.GA40339@osboxes> (raw)
In-Reply-To: <efdd669a-2df6-f7fa-849b-e1c7057ae666@st.com>
Hi Fabien,
Thanks for your review.
On Mon, May 29, 2017 at 07:56:48AM +0000, Fabien DESSENNE wrote:
> Hi Cosar,
>
> Thank you for the patch
>
> On 22/05/17 16:34, Cosar Dindar wrote:
> > This patch adds CRC (CRC32 Crypto) support for STM32F4 series.
> >
> > As an hardware limitation polynomial and key setting are not supported.
> > They are fixed as 0x4C11DB7 (poly) and 0xFFFFFFFF (key).
> > CRC32C Castagnoli algorithm is not used.
> >
> > Signed-off-by: Cosar Dindar <cosardindar@gmail.com>
> > ---
> > drivers/crypto/stm32/stm32_crc32.c | 68 ++++++++++++++++++++++++++++++++------
> > 1 file changed, 58 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/crypto/stm32/stm32_crc32.c b/drivers/crypto/stm32/stm32_crc32.c
> > index ec83b1e..12fbd98 100644
> > --- a/drivers/crypto/stm32/stm32_crc32.c
> > +++ b/drivers/crypto/stm32/stm32_crc32.c
> > @@ -7,6 +7,7 @@
> > #include <linux/bitrev.h>
> > #include <linux/clk.h>
> > #include <linux/module.h>
> > +#include <linux/of.h>
> > #include <linux/platform_device.h>
> >
> > #include <crypto/internal/hash.h>
> > @@ -39,6 +40,9 @@ struct stm32_crc {
> > struct clk *clk;
> > u8 pending_data[sizeof(u32)];
> > size_t nb_pending_bytes;
> > + bool key_support;
> > + bool poly_support;
> > + bool reverse_support;
> > };
> >
> > struct stm32_crc_list {
> > @@ -106,13 +110,31 @@ static int stm32_crc_init(struct shash_desc *desc)
> > }
> > spin_unlock_bh(&crc_list.lock);
> >
> > - /* Reset, set key, poly and configure in bit reverse mode */
> > - writel(bitrev32(mctx->key), ctx->crc->regs + CRC_INIT);
> > - writel(bitrev32(mctx->poly), ctx->crc->regs + CRC_POL);
> > - writel(CRC_CR_RESET | CRC_CR_REVERSE, ctx->crc->regs + CRC_CR);
> > + /* set key */
> > + if (ctx->crc->key_support) {
> > + writel(bitrev32(mctx->key), ctx->crc->regs + CRC_INIT);
> > + } else if (mctx->key != CRC_INIT_DEFAULT) {
> > + dev_err(ctx->crc->dev, "Unsupported key value! Should be: 0x%x\n",
> > + CRC_INIT_DEFAULT);
> > + return -EINVAL;
> > + }
> > +
> > + /* set poly */
> > + if (ctx->crc->poly_support)
> > + writel(bitrev32(mctx->poly), ctx->crc->regs + CRC_POL);
> > +
> > + /* reset and configure in bit reverse mode if supported */
> > + if (ctx->crc->reverse_support)
> > + writel(CRC_CR_RESET | CRC_CR_REVERSE, ctx->crc->regs + CRC_CR);
> > + else
> > + writel(CRC_CR_RESET, ctx->crc->regs + CRC_CR);
> > +
> > + /* store partial result */
> > + if (!ctx->crc->reverse_support)
> > + ctx->partial = bitrev32(readl(crc->regs + CRC_DR));
> > + else
> > + ctx->partial = readl(ctx->crc->regs + CRC_DR);
> >
> > - /* Store partial result */
> > - ctx->partial = readl(ctx->crc->regs + CRC_DR);
> > ctx->crc->nb_pending_bytes = 0;
> >
> > return 0;
> > @@ -135,7 +157,12 @@ static int stm32_crc_update(struct shash_desc *desc, const u8 *d8,
> >
> > if (crc->nb_pending_bytes == sizeof(u32)) {
> > /* Process completed pending data */
> > - writel(*(u32 *)crc->pending_data, crc->regs + CRC_DR);
> > + if (!ctx->crc->reverse_support)
> > + writel(bitrev32(*(u32 *)crc->pending_data),
> > + crc->regs + CRC_DR);
> > + else
> > + writel(*(u32 *)crc->pending_data,
> > + crc->regs + CRC_DR);
> > crc->nb_pending_bytes = 0;
> > }
> > }
> > @@ -143,10 +170,16 @@ static int stm32_crc_update(struct shash_desc *desc, const u8 *d8,
> > d32 = (u32 *)d8;
> > for (i = 0; i < length >> 2; i++)
> > /* Process 32 bits data */
> > - writel(*(d32++), crc->regs + CRC_DR);
> > + if (!ctx->crc->reverse_support)
> > + writel(bitrev32(*(d32++)), crc->regs + CRC_DR);
> > + else
> > + writel(*(d32++), crc->regs + CRC_DR);
> >
> > /* Store partial result */
> > - ctx->partial = readl(crc->regs + CRC_DR);
> > + if (!ctx->crc->reverse_support)
> > + ctx->partial = bitrev32(readl(crc->regs + CRC_DR));
> > + else
> > + ctx->partial = readl(crc->regs + CRC_DR);
> >
> > /* Check for pending data (non 32 bits) */
> > length &= 3;
> > @@ -243,6 +276,7 @@ static int stm32_crc_probe(struct platform_device *pdev)
> > struct stm32_crc *crc;
> > struct resource *res;
> > int ret;
> > + int algs_size;
> >
> > crc = devm_kzalloc(dev, sizeof(*crc), GFP_KERNEL);
> > if (!crc)
> > @@ -269,13 +303,26 @@ static int stm32_crc_probe(struct platform_device *pdev)
> > return ret;
> > }
> >
> > + /* set key, poly and reverse support if device is of F7 series */
> > + if (of_device_is_compatible(crc->dev->of_node, "st,stm32f7-crc")) {
> > + crc->key_support = true;
> > + crc->poly_support = true;
> > + crc->reverse_support = true;
> > + }
> > +
> > platform_set_drvdata(pdev, crc);
> >
> > spin_lock(&crc_list.lock);
> > list_add(&crc->list, &crc_list.dev_list);
> > spin_unlock(&crc_list.lock);
> >
> > - ret = crypto_register_shashes(algs, ARRAY_SIZE(algs));
> > + /* For F4 series only CRC32 algorithm will be used */
> > + if (of_device_is_compatible(crc->dev->of_node, "st,stm32f4-crc"))
> > + algs_size = 1;
> > + else
> > + algs_size = ARRAY_SIZE(algs);
> > +
> > + ret = crypto_register_shashes(algs, algs_size);
> > if (ret) {
> > dev_err(dev, "Failed to register\n");
> > clk_disable_unprepare(crc->clk);
> > @@ -304,6 +351,7 @@ static int stm32_crc_remove(struct platform_device *pdev)
> >
> > static const struct of_device_id stm32_dt_ids[] = {
> > { .compatible = "st,stm32f7-crc", },
> > + { .compatible = "st,stm32f4-crc", },
> > {},
> > };
> > MODULE_DEVICE_TABLE(of, stm32_dt_ids);
> Reviewed-by: Fabien Dessenne <fabien.dessenne@st.com>
Best Regards.
Cosar
next prev parent reply other threads:[~2017-06-02 13:56 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cover.1495463449.git.cosardindar@gmail.com>
2017-05-22 14:34 ` [PATCH v3 1/5] dt-bindings : Document the STM32F4 CRC32 binding Cosar Dindar
2017-05-22 14:34 ` Cosar Dindar
[not found] ` <cover.1495463449.git.cosardindar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-05-22 14:34 ` [PATCH v3 2/5] crypto : stm32 - Add STM32F4 CRC32 support Cosar Dindar
2017-05-22 14:34 ` Cosar Dindar
2017-05-22 14:34 ` Cosar Dindar
[not found] ` <3c520bbef98c630ca7de609f8ec27405e2ac07d4.1495463449.git.cosardindar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-05-29 7:56 ` Fabien DESSENNE
2017-05-29 7:56 ` Fabien DESSENNE
2017-05-29 7:56 ` Fabien DESSENNE
2017-06-02 13:56 ` Cosar Dindar [this message]
2017-06-02 13:56 ` Cosar Dindar
2017-06-02 13:56 ` Cosar Dindar
2017-05-22 14:34 ` [PATCH v3 3/5] ARM: dts: stm32: Add CRC support to stm32f429 Cosar Dindar
2017-05-22 14:34 ` Cosar Dindar
2017-05-22 14:34 ` Cosar Dindar
2017-05-23 13:59 ` Alexandre Torgue
2017-05-23 13:59 ` Alexandre Torgue
2017-05-23 13:59 ` Alexandre Torgue
2017-05-22 14:34 ` [PATCH v3 4/5] ARM: dts: stm32: enable CRC32 on stm32429-disco board Cosar Dindar
2017-05-22 14:34 ` Cosar Dindar
2017-05-22 14:34 ` Cosar Dindar
2017-05-23 13:59 ` Alexandre Torgue
2017-05-23 13:59 ` Alexandre Torgue
2017-05-23 13:59 ` Alexandre Torgue
2017-05-22 14:35 ` [PATCH v3 5/5] ARM: dts: stm32: enable CRC32 on stm32429i-eval board Cosar Dindar
2017-05-22 14:35 ` Cosar Dindar
2017-05-23 13:59 ` Alexandre Torgue
2017-05-23 13:59 ` Alexandre Torgue
2017-05-23 13:59 ` Alexandre Torgue
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170602135608.GA40339@osboxes \
--to=cosardindar@gmail.com \
--cc=alexandre.torgue@st.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=fabien.dessenne@st.com \
--cc=herbert@gondor.apana.org.au \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=robh+dt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.