Kconfig 5.1 KB

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