2023-08-01 07:04:18

by Ard Biesheuvel

[permalink] [raw]
Subject: Re: [EXTERNAL] Re: [PATCH 0/5] Add support for Texas Instruments MCRC64 engine

On Tue, 1 Aug 2023 at 08:22, Kamlesh Gurudasani <[email protected]> wrote:
>
> Ard Biesheuvel <[email protected]> writes:
>
> > On Sun, 30 Jul 2023 at 20:56, Kamlesh Gurudasani <[email protected]> wrote:
> >>
> >> Add support for MCRC64 engine to calculate 64-bit CRC in Full-CPU mode
> >>
> >> MCRC64 engine calculates 64-bit cyclic redundancy checks (CRC)
> >> according to the ISO 3309 standard.
> >>
> >> Generator polynomial: x^64 + x^4 + x^3 + x + 1
> >> Polynomial value: 0x000000000000001b
> >>
> >
> > How will this code be used? WIthout a user of the crc64-iso crypto API
> > algorithm, there is no point in having a driver that implements it.
>
> Thanks for the review.
>
> MCRC64 will be used to check the integrity of memory blocks.
> On TI K3 SOCs, users can use MCRC64 to accelerate the integrity check.
>

Where is the implementation of this logic? Does it use the shash/ahash API?

If so, it should be part of this series.


> >
> > Also, *if* such a user exists, we'd need to have a generic C
> > implementation as well - we don't add new algorithms unless they can
> > be enabled on all platforms and architectures.
>
> If it is must, will implement generic C code.
>
> >
> >
> >> Tested with
> >>
> >> and tcrypt,
> >> sudo modprobe tcrypt mode=329 sec=1
> >>
> >> Signed-off-by: Kamlesh Gurudasani <[email protected]>
> >> ---
> >> Kamlesh Gurudasani (5):
> >> crypto: crc64 - add crc64-iso test vectors
> >> dt-bindings: crypto: Add binding for TI MCRC64 driver
> >> crypto: ti - add driver for MCRC64 engine
> >> arm64: dts: ti: k3-am62: Add dt node, cbass_main ranges for MCRC64
> >> arm64: defconfig: enable MCRC module
> >>
> >> Documentation/devicetree/bindings/crypto/ti,mcrc64.yaml | 42 +++++++
> >> MAINTAINERS | 7 ++
> >> arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 7 ++
> >> arch/arm64/boot/dts/ti/k3-am62.dtsi | 1 +
> >> arch/arm64/configs/defconfig | 2 +
> >> crypto/tcrypt.c | 5 +
> >> crypto/testmgr.c | 7 ++
> >> crypto/testmgr.h | 401 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> >> drivers/crypto/Kconfig | 1 +
> >> drivers/crypto/Makefile | 1 +
> >> drivers/crypto/ti/Kconfig | 10 ++
> >> drivers/crypto/ti/Makefile | 2 +
> >> drivers/crypto/ti/mcrc64.c | 360 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> >> 13 files changed, 846 insertions(+)
> >> ---
> >> base-commit: d7b3af5a77e8d8da28f435f313e069aea5bcf172
> >> change-id: 20230719-mcrc-upstream-7ae9a75cab37
> >>
> >> Best regards,
> >> --
> >> Kamlesh Gurudasani <[email protected]>
> >>


2023-08-01 07:20:44

by Kamlesh Gurudasani

[permalink] [raw]
Subject: Re: [EXTERNAL] Re: [EXTERNAL] Re: [PATCH 0/5] Add support for Texas Instruments MCRC64 engine

Ard Biesheuvel <[email protected]> writes:

> On Tue, 1 Aug 2023 at 08:22, Kamlesh Gurudasani <[email protected]> wrote:
>>
>> Ard Biesheuvel <[email protected]> writes:
>>
>> > On Sun, 30 Jul 2023 at 20:56, Kamlesh Gurudasani <[email protected]> wrote:
>> >>
>> >> Add support for MCRC64 engine to calculate 64-bit CRC in Full-CPU mode
>> >>
>> >> MCRC64 engine calculates 64-bit cyclic redundancy checks (CRC)
>> >> according to the ISO 3309 standard.
>> >>
>> >> Generator polynomial: x^64 + x^4 + x^3 + x + 1
>> >> Polynomial value: 0x000000000000001b
>> >>
>> >
>> > How will this code be used? WIthout a user of the crc64-iso crypto API
>> > algorithm, there is no point in having a driver that implements it.
>>
>> Thanks for the review.
>>
>> MCRC64 will be used to check the integrity of memory blocks.
>> On TI K3 SOCs, users can use MCRC64 to accelerate the integrity check.
>>
>
> Where is the implementation of this logic? Does it use the shash/ahash API?
>
> If so, it should be part of this series.

We have implemented user-space application to utilize crc64-iso using below kernel module

algif_hash: User-space interface for hash algorithms

https://gist.github.com/ti-kamlesh/73abfcc1a33318bb3b199d36b6209e59

>
>
>> >
>> > Also, *if* such a user exists, we'd need to have a generic C
>> > implementation as well - we don't add new algorithms unless they can
>> > be enabled on all platforms and architectures.
>>
>> If it is must, will implement generic C code.
>>
>> >
>> >
>> >> Tested with
>> >>
>> >> and tcrypt,
>> >> sudo modprobe tcrypt mode=329 sec=1
>> >>
>> >> Signed-off-by: Kamlesh Gurudasani <[email protected]>
>> >> ---
>> >> Kamlesh Gurudasani (5):
>> >> crypto: crc64 - add crc64-iso test vectors
>> >> dt-bindings: crypto: Add binding for TI MCRC64 driver
>> >> crypto: ti - add driver for MCRC64 engine
>> >> arm64: dts: ti: k3-am62: Add dt node, cbass_main ranges for MCRC64
>> >> arm64: defconfig: enable MCRC module
>> >>
>> >> Documentation/devicetree/bindings/crypto/ti,mcrc64.yaml | 42 +++++++
>> >> MAINTAINERS | 7 ++
>> >> arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 7 ++
>> >> arch/arm64/boot/dts/ti/k3-am62.dtsi | 1 +
>> >> arch/arm64/configs/defconfig | 2 +
>> >> crypto/tcrypt.c | 5 +
>> >> crypto/testmgr.c | 7 ++
>> >> crypto/testmgr.h | 401 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> >> drivers/crypto/Kconfig | 1 +
>> >> drivers/crypto/Makefile | 1 +
>> >> drivers/crypto/ti/Kconfig | 10 ++
>> >> drivers/crypto/ti/Makefile | 2 +
>> >> drivers/crypto/ti/mcrc64.c | 360 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> >> 13 files changed, 846 insertions(+)
>> >> ---
>> >> base-commit: d7b3af5a77e8d8da28f435f313e069aea5bcf172
>> >> change-id: 20230719-mcrc-upstream-7ae9a75cab37
>> >>
>> >> Best regards,
>> >> --
>> >> Kamlesh Gurudasani <[email protected]>
>> >>