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