]> git.dujemihanovic.xyz Git - u-boot.git/commit
crc32: Add crc32 implementation using __builtin_aarch64_crc32b
authorMarek Vasut <marex@denx.de>
Mon, 30 Aug 2021 13:05:23 +0000 (15:05 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 23 Sep 2021 18:15:32 +0000 (14:15 -0400)
commit270f8710f92fff3911a830b6c0bcb6fd229ccddd
tree1bc7d5b2e91d9b1a123cc9bee448fb1d33f58c02
parent37479e65a353d6d5328092c092c8dc7dbcd4d001
crc32: Add crc32 implementation using __builtin_aarch64_crc32b

ARMv8.0 has optional crc32 instruction for crc32 calculation. The
instruction is mandatory since ARMv8.1. The crc32 calculation is
faster using the dedicated instruction, e.g. 1.4 GHz iMX8MN gives:

  => time crc32 0x50000000 0x2000000
  time: 0.126 seconds # crc32 instruction
  time: 0.213 seconds # software crc32

Add implementation using the compiler builtin wrapper for the crc32
instruction and enable it by default, since we don't support any
platforms which do not implement this instruction.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Simon Glass <sjg@chromium.org>
[trini: Make crc32_table guarded by CONFIG_ARM64_CRC32]
Signed-off-by: Tom Rini <trini@konsulko.com>
arch/arm/Kconfig
arch/arm/Makefile
lib/crc32.c