1ba610be9SJohn Baldwin.PATH: ${SRCTOP}/sys/crypto/openssl 2ba610be9SJohn Baldwin.PATH: ${SRCTOP}/sys/crypto/openssl/${MACHINE_CPUARCH} 3ba610be9SJohn Baldwin 4ba610be9SJohn BaldwinKMOD= ossl 5197ff4c3SKornel DulebaOBJS+= ${OBJS.${MACHINE_CPUARCH}} 6ba610be9SJohn BaldwinSRCS= bus_if.h \ 7ba610be9SJohn Baldwin cryptodev_if.h \ 8ba610be9SJohn Baldwin device_if.h \ 9ba610be9SJohn Baldwin ossl.c \ 10197ff4c3SKornel Duleba ossl_aes.c \ 1192aecd1eSJohn Baldwin ossl_chacha20.c \ 12a079e38bSJohn Baldwin ossl_poly1305.c \ 13ba610be9SJohn Baldwin ossl_sha1.c \ 14ba610be9SJohn Baldwin ossl_sha256.c \ 15ba610be9SJohn Baldwin ossl_sha512.c \ 16ba610be9SJohn Baldwin ${SRCS.${MACHINE_CPUARCH}} 17ba610be9SJohn Baldwin 1844f8e1e8SMark JohnstonSRCS.arm= \ 1944f8e1e8SMark Johnston aes-armv4.S \ 2044f8e1e8SMark Johnston bsaes-armv7.S \ 2144f8e1e8SMark Johnston chacha-armv4.S \ 22629a7237SMark Johnston ghash-armv4.S \ 2344f8e1e8SMark Johnston poly1305-armv4.S \ 2444f8e1e8SMark Johnston sha1-armv4-large.S \ 2544f8e1e8SMark Johnston sha256-armv4.S \ 2644f8e1e8SMark Johnston sha512-armv4.S \ 27629a7237SMark Johnston ossl_arm.c \ 28*5daf8ed6STimothy Pearson ossl_aes_gcm_neon.c 2944f8e1e8SMark Johnston 3022bd0c97SMitchell HorneSRCS.aarch64= \ 3192aecd1eSJohn Baldwin chacha-armv8.S \ 329630e68fSJohn Baldwin chacha-armv8-sve.S \ 33a079e38bSJohn Baldwin poly1305-armv8.S \ 3422bd0c97SMitchell Horne sha1-armv8.S \ 3522bd0c97SMitchell Horne sha256-armv8.S \ 3622bd0c97SMitchell Horne sha512-armv8.S \ 37197ff4c3SKornel Duleba vpaes-armv8.S \ 3822bd0c97SMitchell Horne ossl_aarch64.c 3922bd0c97SMitchell Horne 40ba610be9SJohn BaldwinSRCS.amd64= \ 419a3444d9SMark Johnston aes-gcm-avx512.S \ 42197ff4c3SKornel Duleba aesni-x86_64.S \ 439b1d8728SMark Johnston aesni-gcm-x86_64.S \ 4492aecd1eSJohn Baldwin chacha-x86_64.S \ 459b1d8728SMark Johnston ghash-x86_64.S \ 46a079e38bSJohn Baldwin poly1305-x86_64.S \ 47ba610be9SJohn Baldwin sha1-x86_64.S \ 48ba610be9SJohn Baldwin sha256-x86_64.S \ 49fd86ae68SMitchell Horne sha512-x86_64.S \ 509a3444d9SMark Johnston ossl_aes_gcm.c \ 51*5daf8ed6STimothy Pearson ossl_aes_gcm_avx512.c \ 52fd86ae68SMitchell Horne ossl_x86.c 53ba610be9SJohn Baldwin 54ba610be9SJohn BaldwinSRCS.i386= \ 55197ff4c3SKornel Duleba aesni-x86.S \ 5692aecd1eSJohn Baldwin chacha-x86.S \ 57a079e38bSJohn Baldwin poly1305-x86.S \ 58ba610be9SJohn Baldwin sha1-586.S \ 59ba610be9SJohn Baldwin sha256-586.S \ 60fd86ae68SMitchell Horne sha512-586.S \ 61fd86ae68SMitchell Horne ossl_x86.c 62ba610be9SJohn Baldwin 633465f14dSShawn AnastasioSRCS.powerpc64le= \ 64*5daf8ed6STimothy Pearson aes-gcm-ppc.S \ 65*5daf8ed6STimothy Pearson ossl_aes_gcm.c \ 663465f14dSShawn Anastasio ossl_ppccap.c \ 673465f14dSShawn Anastasio aes-ppc.S \ 683465f14dSShawn Anastasio aesp8-ppc.S \ 693465f14dSShawn Anastasio chacha-ppc.S \ 703465f14dSShawn Anastasio ecp_nistz256-ppc64.S \ 713465f14dSShawn Anastasio ghashp8-ppc.S \ 723465f14dSShawn Anastasio keccak1600-ppc64.S \ 733465f14dSShawn Anastasio poly1305-ppc.S \ 743465f14dSShawn Anastasio poly1305-ppcfp.S \ 753465f14dSShawn Anastasio ppc-mont.S \ 763465f14dSShawn Anastasio ppc.S \ 773465f14dSShawn Anastasio ppccpuid.S \ 783465f14dSShawn Anastasio sha1-ppc.S \ 793465f14dSShawn Anastasio sha256-ppc.S \ 803465f14dSShawn Anastasio sha256p8-ppc.S \ 813465f14dSShawn Anastasio sha512-ppc.S \ 823465f14dSShawn Anastasio sha512p8-ppc.S \ 833465f14dSShawn Anastasio vpaes-ppc.S \ 843465f14dSShawn Anastasio x25519-ppc64.S 853465f14dSShawn Anastasio 863465f14dSShawn AnastasioSRCS.powerpc64= \ 87*5daf8ed6STimothy Pearson aes-gcm-ppc.S \ 88*5daf8ed6STimothy Pearson ossl_aes_gcm.c \ 893465f14dSShawn Anastasio ossl_ppccap.c \ 903465f14dSShawn Anastasio aes-ppc.S \ 913465f14dSShawn Anastasio aesp8-ppc.S \ 923465f14dSShawn Anastasio chacha-ppc.S \ 933465f14dSShawn Anastasio ecp_nistz256-ppc64.S \ 943465f14dSShawn Anastasio ghashp8-ppc.S \ 953465f14dSShawn Anastasio keccak1600-ppc64.S \ 963465f14dSShawn Anastasio poly1305-ppc.S \ 973465f14dSShawn Anastasio poly1305-ppcfp.S \ 983465f14dSShawn Anastasio ppc-mont.S \ 993465f14dSShawn Anastasio ppc.S \ 1003465f14dSShawn Anastasio ppccpuid.S \ 1013465f14dSShawn Anastasio sha1-ppc.S \ 1023465f14dSShawn Anastasio sha256-ppc.S \ 1033465f14dSShawn Anastasio sha256p8-ppc.S \ 1043465f14dSShawn Anastasio sha512-ppc.S \ 1053465f14dSShawn Anastasio sha512p8-ppc.S \ 1063465f14dSShawn Anastasio vpaes-ppc.S \ 1073465f14dSShawn Anastasio x25519-ppc64.S 1083465f14dSShawn Anastasio 10944f8e1e8SMark JohnstonCFLAGS.bsaes-armv7.S+= -D__KERNEL__ 11044f8e1e8SMark Johnston 111e655cc70SMark JohnstonCFLAGS+= -I${SRCTOP}/sys/crypto/openssl 112e655cc70SMark Johnston 11322bd0c97SMitchell Horne# For arm64, we are forced to rewrite the compiler invocation for the assembly 11422bd0c97SMitchell Horne# files, to remove -mgeneral-regs-only. 11522bd0c97SMitchell Horne${SRCS.aarch64:M*.S:S/S/o/}: ${.TARGET:R}.S 11622bd0c97SMitchell Horne ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${PROF} ${.IMPSRC} 11722bd0c97SMitchell Horne ${CTFCONVERT_CMD} 11822bd0c97SMitchell Horne 119197ff4c3SKornel Duleba# Based on modules/armv8crypto/Makefile. 120197ff4c3SKornel Duleba# Clang doesn't recognize "aes*" instructions without -march set. 121197ff4c3SKornel Dulebaaesv8-armx.o: aesv8-armx.S 122197ff4c3SKornel Duleba ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${PROF} \ 123197ff4c3SKornel Duleba -march=armv8-a+crypto ${.IMPSRC} 124197ff4c3SKornel Duleba ${CTFCONVERT_CMD} 125197ff4c3SKornel Duleba 126197ff4c3SKornel DulebaOBJS.aarch64= aesv8-armx.o 127197ff4c3SKornel Duleba 128ba610be9SJohn Baldwin.include <bsd.kmod.mk> 129