Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 14fa93cd authored by Srikanth Jampala's avatar Srikanth Jampala Committed by Herbert Xu
Browse files

crypto: cavium - Add support for CNN55XX adapters.



Add Physical Function driver support for CNN55XX crypto adapters.
CNN55XX adapters belongs to Cavium NITROX family series,
which accelerate both Symmetric and Asymmetric crypto workloads.

These adapters have crypto engines that need firmware
to become operational.

Signed-off-by: default avatarSrikanth Jampala <Jampala.Srikanth@cavium.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 3bca64c1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -541,6 +541,7 @@ config CRYPTO_DEV_MXS_DCP

source "drivers/crypto/qat/Kconfig"
source "drivers/crypto/cavium/cpt/Kconfig"
source "drivers/crypto/cavium/nitrox/Kconfig"

config CRYPTO_DEV_CAVIUM_ZIP
	tristate "Cavium ZIP driver"
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ obj-$(CONFIG_CRYPTO_DEV_CAVIUM_ZIP) += cavium/
obj-$(CONFIG_CRYPTO_DEV_CCP) += ccp/
obj-$(CONFIG_CRYPTO_DEV_CHELSIO) += chelsio/
obj-$(CONFIG_CRYPTO_DEV_CPT) += cavium/cpt/
obj-$(CONFIG_CRYPTO_DEV_NITROX) += cavium/nitrox/
obj-$(CONFIG_CRYPTO_DEV_EXYNOS_RNG) += exynos-rng.o
obj-$(CONFIG_CRYPTO_DEV_FSL_CAAM) += caam/
obj-$(CONFIG_CRYPTO_DEV_GEODE) += geode-aes.o
+21 −0
Original line number Diff line number Diff line
#
# Cavium NITROX Crypto Device configuration
#
config CRYPTO_DEV_NITROX
	tristate
	select CRYPTO_BLKCIPHER
	select CRYPTO_AES
	select CRYPTO_DES
	select FW_LOADER

config CRYPTO_DEV_NITROX_CNN55XX
	tristate "Support for Cavium CNN55XX driver"
	depends on PCI_MSI && 64BIT
	select CRYPTO_DEV_NITROX
	default m
	help
	  Support for Cavium NITROX family CNN55XX driver
	  for accelerating crypto workloads.

	  To compile this as a module, choose M here: the module
	  will be called n5pf.
+7 −0
Original line number Diff line number Diff line
obj-$(CONFIG_CRYPTO_DEV_NITROX_CNN55XX) += n5pf.o

n5pf-objs := nitrox_main.o \
	nitrox_isr.o \
	nitrox_lib.o \
	nitrox_hal.o \
	nitrox_reqmgr.o
+35 −0
Original line number Diff line number Diff line
#ifndef __NITROX_COMMON_H
#define __NITROX_COMMON_H

#include "nitrox_dev.h"
#include "nitrox_req.h"

void nitrox_pf_cleanup_isr(struct nitrox_device *ndev);
int nitrox_pf_init_isr(struct nitrox_device *ndev);

int nitrox_common_sw_init(struct nitrox_device *ndev);
void nitrox_common_sw_cleanup(struct nitrox_device *ndev);

void pkt_slc_resp_handler(unsigned long data);
int nitrox_process_se_request(struct nitrox_device *ndev,
			      struct se_crypto_request *req,
			      completion_t cb,
			      struct skcipher_request *skreq);
void backlog_qflush_work(struct work_struct *work);

void nitrox_config_emu_unit(struct nitrox_device *ndev);
void nitrox_config_pkt_input_rings(struct nitrox_device *ndev);
void nitrox_config_pkt_solicit_ports(struct nitrox_device *ndev);
void nitrox_config_vfmode(struct nitrox_device *ndev, int mode);
void nitrox_config_nps_unit(struct nitrox_device *ndev);
void nitrox_config_pom_unit(struct nitrox_device *ndev);
void nitrox_config_rand_unit(struct nitrox_device *ndev);
void nitrox_config_efl_unit(struct nitrox_device *ndev);
void nitrox_config_bmi_unit(struct nitrox_device *ndev);
void nitrox_config_bmo_unit(struct nitrox_device *ndev);
void nitrox_config_lbc_unit(struct nitrox_device *ndev);
void invalidate_lbc(struct nitrox_device *ndev);
void enable_pkt_input_ring(struct nitrox_device *ndev, int ring);
void enable_pkt_solicit_port(struct nitrox_device *ndev, int port);

#endif /* __NITROX_COMMON_H */
Loading