Hardware accelerated CRC16
Hi,
We wish to add CRC16 checksum to our communication payloads,
and I see in the stm32mp157 datasheet CRC module section that it should support CRC32,16,8 and 7 bits.
"""
25.4.3 CRC control register (CRC_CR)
Bits 4:3 POLYSIZE[1:0]: Polynomial size
These bits control the size of the polynomial.
00: 32 bit polynomial
01: 16 bit polynomial
10: 8 bit polynomial
11: 7 bit polynomial
"""
But I do not see this being utilized in the ST CRC driver ("stm32-crc32.c") - Linux 5.10
from a quick look at the ST CRC driver, I see only CRC32 support.
To be clear, CRC32 works, and I have already tested it with a userspace application using AF_ALG to request kernel support to calculate CRC32.
But we would like to use CRC16 instead.
1) Am I understanding it correctly that only CRC32 algorithm is supported by the ST drivers ? Or am I wrong ?
2) If I understood it correctly, and the ST driver does support only CRC32, does the actual HW support CRC16, or am I misunderstanding the datasheet, and the HW module supports CRC16 only as well ?
Thanks,
Michael
