hash: Plumb crc8 into the hash functions

Add an entry for crc8, with watchdog handling.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2024-12-07 10:24:12 -07:00 committed by Tom Rini
parent 63702119d6
commit f0315babfb
3 changed files with 17 additions and 0 deletions

View file

@ -304,6 +304,14 @@ static struct hash_algo hash_algo[] = {
.hash_update = hash_update_crc16_ccitt,
.hash_finish = hash_finish_crc16_ccitt,
},
#if CONFIG_IS_ENABLED(CRC8)
{
.name = "crc8",
.digest_size = 1,
.chunk_size = CHUNKSZ_CRC32,
.hash_func_ws = crc8_wd_buf,
},
#endif
#if CONFIG_IS_ENABLED(CRC32)
{
.name = "crc32",

View file

@ -25,6 +25,9 @@
*/
unsigned int crc8(unsigned int crc_start, const unsigned char *vptr, int len);
void crc8_wd_buf(const unsigned char *input, unsigned int len,
unsigned char output[1], unsigned int chunk_sz);
/* lib/crc16.c - 16 bit CRC with polynomial x^16 + x^15 + x^2 + 1 */
uint16_t crc16(uint16_t crc, const unsigned char *buffer, size_t len);

View file

@ -32,3 +32,9 @@ unsigned int crc8(unsigned int crc, const unsigned char *vptr, int len)
return crc;
}
void crc8_wd_buf(const unsigned char *input, unsigned int len,
unsigned char output[1], unsigned int chunk_sz)
{
*output = crc8(0, input, len);
}