feat(sw_crc32): add software CRC32 support

Added software CRC32 support in case platform doesn't support
hardware CRC32.

Platform must include necessary Zlib source files for compilation
to use software CRC32 implementation.

Change-Id: Iecb649b2edf951944b1a7e4c250c40fe7a3bde25
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
This commit is contained in:
Manish V Badarkhe 2021-07-02 20:18:57 +01:00
parent c885d5c84d
commit f21693704a

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2018-2021, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@ -9,6 +9,7 @@
#include <string.h>
#include <common/debug.h>
#include <common/tf_crc32.h>
#include <lib/utils.h>
#include <tf_gunzip.h>
@ -100,3 +101,15 @@ int gunzip(uintptr_t *in_buf, size_t in_len, uintptr_t *out_buf,
return ret;
}
/* Wrapper function to calculate CRC
* @crc: previous accumulated CRC
* @buf: buffer base address
* @size: size of the buffer
*
* Return calculated CRC32 value
*/
uint32_t tf_crc32(uint32_t crc, const unsigned char *buf, size_t size)
{
return (uint32_t)crc32((unsigned long)crc, buf, size);
}