Commit 0c5af6f2 authored by Duy Vo's avatar Duy Vo Committed by Benjamin Cabé
Browse files

crc: initial support for CRC subsystem



Migrate support from crc library to new crc subsystem
Add hardware acclerator backend for crc subsystem

Signed-off-by: default avatarDuy Vo <duy.vo.xc@bp.renesas.com>
parent 13269994
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -823,6 +823,17 @@ CMSIS-NN integration:
  tests:
    - libraries.cmsis_nn

CRC:
  status: maintained
  maintainers:
    - thenguyenyf
  files:
    - include/zephyr/sys/crc.h
    - subsys/crc/
    - tests/subsys/crc/
  labels:
    - "area: CRC"

Cache:
  status: maintained
  maintainers:
@@ -4924,7 +4935,6 @@ Utilities:
    - dcpleung
    - peter-mitsis
  files:
    - lib/crc/
    - lib/utils/
    - tests/unit/timeutil/
    - tests/unit/time_units/
+45 −0
Original line number Diff line number Diff line
@@ -51,6 +51,51 @@ extern "C" {
 * @{
 */

/**
 * @brief CRC polynomial definitions
 * @anchor CRC_POLYNOMIAL
 *
 * @{
 */

/** CRC4 polynomial */
#define CRC4_POLY 0x3

/** CRC4_TI polynomial */
#define CRC4_REFLECT_POLY 0xC

/** CRC7_BE polynomial */
#define CRC7_BE_POLY 0x09

/** CRC8 polynomial */
#define CRC8_POLY 0x07

/** CRC8_CCITT polynomial */
#define CRC8_REFLECT_POLY 0xE0

/** CRC8_ROHC polynomial */
#define CRC16_POLY 0x8005

/** CRC16_ANSI polynomial */
#define CRC16_REFLECT_POLY 0xA001

/** CRC16_CCITT polynomial */
#define CRC16_CCITT_POLY 0x1021

/** CRC16_ITU_T polynomial */
#define CRC24_PGP_POLY 0x01864CFBU

/** CRC32_C polynomial */
#define CRC32_IEEE_POLY 0x04C11DB7U

/** CRC32C polynomial */
#define CRC32C_POLY 0x1EDC6F41U

/** CRC32_K_4_2 polynomial */
#define CRC32K_4_2_POLY 0x93A409EBU

/** @} */

/**
 * @brief CRC algorithm enumeration
 *
+0 −1
Original line number Diff line number Diff line
@@ -3,7 +3,6 @@
# FIXME: SHADOW_VARS: Remove this once we have enabled -Wshadow globally.
add_compile_options($<TARGET_PROPERTY:compiler,warning_shadow_variables>)

add_subdirectory(crc)
add_subdirectory(libc)
if(NOT CONFIG_NATIVE_LIBC)
add_subdirectory(posix)
+0 −2
Original line number Diff line number Diff line
@@ -7,8 +7,6 @@ source "lib/libc/Kconfig"

source "lib/cpp/Kconfig"

source "lib/crc/Kconfig"

menu "Additional libraries"

source "lib/hash/Kconfig"

lib/crc/CMakeLists.txt

deleted100644 → 0
+0 −13
Original line number Diff line number Diff line
# SPDX-License-Identifier: Apache-2.0

zephyr_sources_ifdef(CONFIG_CRC
  crc32k_4_2_sw.c
  crc32c_sw.c
  crc32_sw.c
  crc24_sw.c
  crc16_sw.c
  crc8_sw.c
  crc7_sw.c
  crc4_sw.c
  )
zephyr_sources_ifdef(CONFIG_CRC_SHELL crc_shell.c)
Loading