mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-15 18:03:30 +00:00
mbedtls: add ARMv8 Crypto Extensions AES and SSE2 on x86
This commit is contained in:
parent
58973c3e8c
commit
53f353337b
@ -23,6 +23,8 @@ PKG_CPE_ID:=cpe:/a:arm:mbed_tls
|
|||||||
|
|
||||||
PKG_CONFIG_DEPENDS := \
|
PKG_CONFIG_DEPENDS := \
|
||||||
CONFIG_LIBMBEDTLS_DEBUG_C \
|
CONFIG_LIBMBEDTLS_DEBUG_C \
|
||||||
|
CONFIG_LIBMBEDTLS_HAVE_ARMV8CE_AES \
|
||||||
|
CONFIG_LIBMBEDTLS_HAVE_SSE2 \
|
||||||
CONFIG_LIBMBEDTLS_HKDF_C
|
CONFIG_LIBMBEDTLS_HKDF_C
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
@ -60,6 +62,34 @@ config LIBMBEDTLS_DEBUG_C
|
|||||||
|
|
||||||
Usually, you don't need this, so don't select this if you're unsure.
|
Usually, you don't need this, so don't select this if you're unsure.
|
||||||
|
|
||||||
|
config LIBMBEDTLS_HAVE_ARMV8CE_AES
|
||||||
|
depends on PACKAGE_libmbedtls
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
prompt "Enable use of the ARMv8 Crypto Extensions"
|
||||||
|
depends on aarch64 && !TARGET_bcm27xx && !TARGET_bcm4908
|
||||||
|
help
|
||||||
|
Use of the ARMv8 Crypto Extensions greatly increase performance
|
||||||
|
(up to 4x faster on AES-GCM while 10x faster on raw AES).
|
||||||
|
|
||||||
|
Related instructions should be included in all modern Aarch64
|
||||||
|
devices, except some wastes like Broadcom.
|
||||||
|
If you don't sure, say Y here.
|
||||||
|
|
||||||
|
config LIBMBEDTLS_HAVE_SSE2
|
||||||
|
depends on PACKAGE_libmbedtls
|
||||||
|
bool
|
||||||
|
default y if !TARGET_x86_legacy && !TARGET_x86_geode
|
||||||
|
prompt "Enable use of x86 SSE2 instructions"
|
||||||
|
depends on x86_64 || i386
|
||||||
|
help
|
||||||
|
Use of SSE2 instructions greatly increase performance (up to
|
||||||
|
3x faster) with a minimum (~0.2%, or 23KB) increase in package
|
||||||
|
size, but it will bring no benefit if your hardware does not
|
||||||
|
support them, such as Geode GX and LX. In this case you may
|
||||||
|
save 23KB by saying yes here. AMD Geode NX, and Intel
|
||||||
|
Pentium 4 and above support SSE2.
|
||||||
|
|
||||||
config LIBMBEDTLS_HKDF_C
|
config LIBMBEDTLS_HKDF_C
|
||||||
depends on PACKAGE_libmbedtls
|
depends on PACKAGE_libmbedtls
|
||||||
bool "Enable the HKDF algorithm (RFC 5869)"
|
bool "Enable the HKDF algorithm (RFC 5869)"
|
||||||
@ -92,6 +122,9 @@ PKG_INSTALL:=1
|
|||||||
|
|
||||||
TARGET_CFLAGS += -ffunction-sections -fdata-sections
|
TARGET_CFLAGS += -ffunction-sections -fdata-sections
|
||||||
TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS))
|
TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS))
|
||||||
|
ifneq ($(CONFIG_LIBMBEDTLS_HAVE_ARMV8CE_AES),)
|
||||||
|
TARGET_CFLAGS := $(filter-out -march=%,$(TARGET_CFLAGS)) -march=armv8-a+crypto
|
||||||
|
endif
|
||||||
|
|
||||||
CMAKE_OPTIONS += \
|
CMAKE_OPTIONS += \
|
||||||
-DUSE_SHARED_MBEDTLS_LIBRARY:Bool=ON \
|
-DUSE_SHARED_MBEDTLS_LIBRARY:Bool=ON \
|
||||||
@ -103,6 +136,8 @@ define Build/Configure
|
|||||||
|
|
||||||
awk 'BEGIN { rc = 1 } \
|
awk 'BEGIN { rc = 1 } \
|
||||||
/#define MBEDTLS_DEBUG_C/ { $$$$0 = "$(if $(CONFIG_LIBMBEDTLS_DEBUG_C),,// )#define MBEDTLS_DEBUG_C"; rc = 0 } \
|
/#define MBEDTLS_DEBUG_C/ { $$$$0 = "$(if $(CONFIG_LIBMBEDTLS_DEBUG_C),,// )#define MBEDTLS_DEBUG_C"; rc = 0 } \
|
||||||
|
/#define MBEDTLS_ARMV8CE_AES_C/ { $$$$0 = "$(if $(CONFIG_LIBMBEDTLS_HAVE_ARMV8CE_AES),,// )#define MBEDTLS_ARMV8CE_AES_C"; rc = 0 } \
|
||||||
|
/#define MBEDTLS_HAVE_SSE2/ { $$$$0 = "$(if $(CONFIG_LIBMBEDTLS_HAVE_SSE2),,// )#define MBEDTLS_HAVE_SSE2"; rc = 0 } \
|
||||||
{ print } \
|
{ print } \
|
||||||
END { exit(rc) }' $(PKG_BUILD_DIR)/include/mbedtls/config.h \
|
END { exit(rc) }' $(PKG_BUILD_DIR)/include/mbedtls/config.h \
|
||||||
>$(PKG_BUILD_DIR)/include/mbedtls/config.h.new && \
|
>$(PKG_BUILD_DIR)/include/mbedtls/config.h.new && \
|
||||||
|
Loading…
Reference in New Issue
Block a user