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

From: Kamlesh Gurudasani
Date: Tue Aug 01 2023 - 03:03:16 EST


Ard Biesheuvel <ardb@xxxxxxxxxx> writes:

> On Tue, 1 Aug 2023 at 08:22, Kamlesh Gurudasani <kamlesh@xxxxxx> wrote:
>>
>> Ard Biesheuvel <ardb@xxxxxxxxxx> writes:
>>
>> > On Sun, 30 Jul 2023 at 20:56, Kamlesh Gurudasani <kamlesh@xxxxxx> 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 <kamlesh@xxxxxx>
>> >> ---
>> >> 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 <kamlesh@xxxxxx>
>> >>