xref: /freebsd/sys/modules/ossl/Makefile (revision 5daf8ed625af70ebb7e4740ab98a6054e9e52329)
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