Kconfig 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. # SPDX-License-Identifier: GPL-2.0
  2. config CRYPTO_DEV_FSL_CAAM_COMMON
  3. tristate
  4. config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC
  5. tristate
  6. config CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC
  7. tristate
  8. config CRYPTO_DEV_FSL_CAAM
  9. tristate "Freescale CAAM-Multicore platform driver backend"
  10. depends on FSL_SOC || ARCH_MXC || ARCH_LAYERSCAPE
  11. select SOC_BUS
  12. select CRYPTO_DEV_FSL_CAAM_COMMON
  13. imply FSL_MC_BUS
  14. help
  15. Enables the driver module for Freescale's Cryptographic Accelerator
  16. and Assurance Module (CAAM), also known as the SEC version 4 (SEC4).
  17. This module creates job ring devices, and configures h/w
  18. to operate as a DPAA component automatically, depending
  19. on h/w feature availability.
  20. To compile this driver as a module, choose M here: the module
  21. will be called caam.
  22. if CRYPTO_DEV_FSL_CAAM
  23. config CRYPTO_DEV_FSL_CAAM_DEBUG
  24. bool "Enable debug output in CAAM driver"
  25. help
  26. Selecting this will enable printing of various debug
  27. information in the CAAM driver.
  28. menuconfig CRYPTO_DEV_FSL_CAAM_JR
  29. tristate "Freescale CAAM Job Ring driver backend"
  30. select CRYPTO_ENGINE
  31. default y
  32. help
  33. Enables the driver module for Job Rings which are part of
  34. Freescale's Cryptographic Accelerator
  35. and Assurance Module (CAAM). This module adds a job ring operation
  36. interface.
  37. To compile this driver as a module, choose M here: the module
  38. will be called caam_jr.
  39. if CRYPTO_DEV_FSL_CAAM_JR
  40. config CRYPTO_DEV_FSL_CAAM_RINGSIZE
  41. int "Job Ring size"
  42. range 2 9
  43. default "9"
  44. help
  45. Select size of Job Rings as a power of 2, within the
  46. range 2-9 (ring size 4-512).
  47. Examples:
  48. 2 => 4
  49. 3 => 8
  50. 4 => 16
  51. 5 => 32
  52. 6 => 64
  53. 7 => 128
  54. 8 => 256
  55. 9 => 512
  56. config CRYPTO_DEV_FSL_CAAM_INTC
  57. bool "Job Ring interrupt coalescing"
  58. help
  59. Enable the Job Ring's interrupt coalescing feature.
  60. Note: the driver already provides adequate
  61. interrupt coalescing in software.
  62. config CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD
  63. int "Job Ring interrupt coalescing count threshold"
  64. depends on CRYPTO_DEV_FSL_CAAM_INTC
  65. range 1 255
  66. default 255
  67. help
  68. Select number of descriptor completions to queue before
  69. raising an interrupt, in the range 1-255. Note that a selection
  70. of 1 functionally defeats the coalescing feature, and a selection
  71. equal or greater than the job ring size will force timeouts.
  72. config CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD
  73. int "Job Ring interrupt coalescing timer threshold"
  74. depends on CRYPTO_DEV_FSL_CAAM_INTC
  75. range 1 65535
  76. default 2048
  77. help
  78. Select number of bus clocks/64 to timeout in the case that one or
  79. more descriptor completions are queued without reaching the count
  80. threshold. Range is 1-65535.
  81. config CRYPTO_DEV_FSL_CAAM_CRYPTO_API
  82. bool "Register algorithm implementations with the Crypto API"
  83. default y
  84. select CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC
  85. select CRYPTO_AEAD
  86. select CRYPTO_AUTHENC
  87. select CRYPTO_SKCIPHER
  88. select CRYPTO_LIB_DES
  89. select CRYPTO_XTS
  90. help
  91. Selecting this will offload crypto for users of the
  92. scatterlist crypto API (such as the linux native IPSec
  93. stack) to the SEC4 via job ring.
  94. config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI
  95. bool "Queue Interface as Crypto API backend"
  96. depends on FSL_DPAA && NET
  97. default y
  98. select CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC
  99. select CRYPTO_AUTHENC
  100. select CRYPTO_SKCIPHER
  101. select CRYPTO_DES
  102. select CRYPTO_XTS
  103. help
  104. Selecting this will use CAAM Queue Interface (QI) for sending
  105. & receiving crypto jobs to/from CAAM. This gives better performance
  106. than job ring interface when the number of cores are more than the
  107. number of job rings assigned to the kernel. The number of portals
  108. assigned to the kernel should also be more than the number of
  109. job rings.
  110. config CRYPTO_DEV_FSL_CAAM_AHASH_API
  111. bool "Register hash algorithm implementations with Crypto API"
  112. default y
  113. select CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC
  114. select CRYPTO_HASH
  115. help
  116. Selecting this will offload ahash for users of the
  117. scatterlist crypto API to the SEC4 via job ring.
  118. config CRYPTO_DEV_FSL_CAAM_PKC_API
  119. bool "Register public key cryptography implementations with Crypto API"
  120. default y
  121. select CRYPTO_RSA
  122. help
  123. Selecting this will allow SEC Public key support for RSA.
  124. Supported cryptographic primitives: encryption, decryption,
  125. signature and verification.
  126. config CRYPTO_DEV_FSL_CAAM_RNG_API
  127. bool "Register caam device for hwrng API"
  128. default y
  129. select CRYPTO_RNG
  130. select HW_RANDOM
  131. help
  132. Selecting this will register the SEC4 hardware rng to
  133. the hw_random API for supplying the kernel entropy pool.
  134. config CRYPTO_DEV_FSL_CAAM_PRNG_API
  135. bool "Register Pseudo random number generation implementation with Crypto API"
  136. default y
  137. select CRYPTO_RNG
  138. help
  139. Selecting this will register the SEC hardware prng to
  140. the Crypto API.
  141. config CRYPTO_DEV_FSL_CAAM_BLOB_GEN
  142. bool
  143. endif # CRYPTO_DEV_FSL_CAAM_JR
  144. endif # CRYPTO_DEV_FSL_CAAM
  145. config CRYPTO_DEV_FSL_DPAA2_CAAM
  146. tristate "QorIQ DPAA2 CAAM (DPSECI) driver"
  147. depends on FSL_MC_DPIO
  148. depends on NETDEVICES
  149. select CRYPTO_DEV_FSL_CAAM_COMMON
  150. select CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC
  151. select CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC
  152. select CRYPTO_SKCIPHER
  153. select CRYPTO_AUTHENC
  154. select CRYPTO_AEAD
  155. select CRYPTO_HASH
  156. select CRYPTO_DES
  157. select CRYPTO_XTS
  158. help
  159. CAAM driver for QorIQ Data Path Acceleration Architecture 2.
  160. It handles DPSECI DPAA2 objects that sit on the Management Complex
  161. (MC) fsl-mc bus.
  162. To compile this as a module, choose M here: the module
  163. will be called dpaa2_caam.