-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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: Srikanth Jampala <Jampala.Srikanth@cavium.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
- Loading branch information
Srikanth Jampala
authored and
Herbert Xu
committed
Jun 10, 2017
1 parent
3bca64c
commit 14fa93c
Showing
13 changed files
with
4,002 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# | ||
# 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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
#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 */ |
Oops, something went wrong.