1.PATH: ${SRCTOP}/sys/crypto/openssl 2.PATH: ${SRCTOP}/sys/crypto/openssl/${MACHINE_CPUARCH} 3 4KMOD= ossl 5OBJS+= ${OBJS.${MACHINE_CPUARCH}} 6SRCS= bus_if.h \ 7 cryptodev_if.h \ 8 device_if.h \ 9 ossl.c \ 10 ossl_aes.c \ 11 ossl_chacha20.c \ 12 ossl_poly1305.c \ 13 ossl_sha1.c \ 14 ossl_sha256.c \ 15 ossl_sha512.c \ 16 ${SRCS.${MACHINE_CPUARCH}} 17 18SRCS.arm= \ 19 aes-armv4.S \ 20 bsaes-armv7.S \ 21 chacha-armv4.S \ 22 ghash-armv4.S \ 23 poly1305-armv4.S \ 24 sha1-armv4-large.S \ 25 sha256-armv4.S \ 26 sha512-armv4.S \ 27 ossl_arm.c \ 28 ossl_aes_gcm_neon.c 29 30SRCS.aarch64= \ 31 chacha-armv8.S \ 32 chacha-armv8-sve.S \ 33 poly1305-armv8.S \ 34 sha1-armv8.S \ 35 sha256-armv8.S \ 36 sha512-armv8.S \ 37 vpaes-armv8.S \ 38 ossl_aarch64.c 39 40SRCS.amd64= \ 41 aes-gcm-avx512.S \ 42 aesni-x86_64.S \ 43 aesni-gcm-x86_64.S \ 44 chacha-x86_64.S \ 45 ghash-x86_64.S \ 46 poly1305-x86_64.S \ 47 sha1-x86_64.S \ 48 sha256-x86_64.S \ 49 sha512-x86_64.S \ 50 ossl_aes_gcm.c \ 51 ossl_aes_gcm_avx512.c \ 52 ossl_x86.c 53 54SRCS.i386= \ 55 aesni-x86.S \ 56 chacha-x86.S \ 57 poly1305-x86.S \ 58 sha1-586.S \ 59 sha256-586.S \ 60 sha512-586.S \ 61 ossl_x86.c 62 63SRCS.powerpc64le= \ 64 aes-gcm-ppc.S \ 65 ossl_aes_gcm.c \ 66 ossl_ppccap.c \ 67 aes-ppc.S \ 68 aesp8-ppc.S \ 69 chacha-ppc.S \ 70 ecp_nistz256-ppc64.S \ 71 ghashp8-ppc.S \ 72 keccak1600-ppc64.S \ 73 poly1305-ppc.S \ 74 poly1305-ppcfp.S \ 75 ppc-mont.S \ 76 ppc.S \ 77 ppccpuid.S \ 78 sha1-ppc.S \ 79 sha256-ppc.S \ 80 sha256p8-ppc.S \ 81 sha512-ppc.S \ 82 sha512p8-ppc.S \ 83 vpaes-ppc.S \ 84 x25519-ppc64.S 85 86SRCS.powerpc64= \ 87 aes-gcm-ppc.S \ 88 ossl_aes_gcm.c \ 89 ossl_ppccap.c \ 90 aes-ppc.S \ 91 aesp8-ppc.S \ 92 chacha-ppc.S \ 93 ecp_nistz256-ppc64.S \ 94 ghashp8-ppc.S \ 95 keccak1600-ppc64.S \ 96 poly1305-ppc.S \ 97 poly1305-ppcfp.S \ 98 ppc-mont.S \ 99 ppc.S \ 100 ppccpuid.S \ 101 sha1-ppc.S \ 102 sha256-ppc.S \ 103 sha256p8-ppc.S \ 104 sha512-ppc.S \ 105 sha512p8-ppc.S \ 106 vpaes-ppc.S \ 107 x25519-ppc64.S 108 109CFLAGS.bsaes-armv7.S+= -D__KERNEL__ 110 111CFLAGS+= -I${SRCTOP}/sys/crypto/openssl 112 113# For arm64, we are forced to rewrite the compiler invocation for the assembly 114# files, to remove -mgeneral-regs-only. 115${SRCS.aarch64:M*.S:S/S/o/}: ${.TARGET:R}.S 116 ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${PROF} ${.IMPSRC} 117 ${CTFCONVERT_CMD} 118 119# Based on modules/armv8crypto/Makefile. 120# Clang doesn't recognize "aes*" instructions without -march set. 121aesv8-armx.o: aesv8-armx.S 122 ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${PROF} \ 123 -march=armv8-a+crypto ${.IMPSRC} 124 ${CTFCONVERT_CMD} 125 126OBJS.aarch64= aesv8-armx.o 127 128.include <bsd.kmod.mk> 129