Kconfig.errata 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. menu "CPU errata selection"
  2. config ERRATA_ANDES
  3. bool "Andes AX45MP errata"
  4. depends on RISCV_ALTERNATIVE && RISCV_SBI
  5. help
  6. All Andes errata Kconfig depend on this Kconfig. Disabling
  7. this Kconfig will disable all Andes errata. Please say "Y"
  8. here if your platform uses Andes CPU cores.
  9. Otherwise, please say "N" here to avoid unnecessary overhead.
  10. config ERRATA_ANDES_CMO
  11. bool "Apply Andes cache management errata"
  12. depends on ERRATA_ANDES && ARCH_R9A07G043
  13. select RISCV_DMA_NONCOHERENT
  14. default y
  15. help
  16. This will apply the cache management errata to handle the
  17. non-standard handling on non-coherent operations on Andes cores.
  18. If you don't know what to do here, say "Y".
  19. config ERRATA_MIPS
  20. bool "MIPS errata"
  21. depends on RISCV_ALTERNATIVE
  22. help
  23. All MIPS errata Kconfig depend on this Kconfig. Disabling
  24. this Kconfig will disable all MIPS errata. Please say "Y"
  25. here if your platform uses MIPS CPU cores.
  26. Otherwise, please say "N" here to avoid unnecessary overhead.
  27. config ERRATA_MIPS_P8700_PAUSE_OPCODE
  28. bool "Fix the PAUSE Opcode for MIPS P8700"
  29. depends on ERRATA_MIPS && 64BIT
  30. default n
  31. help
  32. The RISCV MIPS P8700 uses a different opcode for PAUSE.
  33. It is a 'hint' encoding of the SLLI instruction,
  34. with rd=0, rs1=0 and imm=5. It will behave as a NOP
  35. instruction if no additional behavior beyond that of
  36. SLLI is implemented.
  37. If you are not using the P8700 processor, say n.
  38. config ERRATA_SIFIVE
  39. bool "SiFive errata"
  40. depends on RISCV_ALTERNATIVE
  41. help
  42. All SiFive errata Kconfig depend on this Kconfig. Disabling
  43. this Kconfig will disable all SiFive errata. Please say "Y"
  44. here if your platform uses SiFive CPU cores.
  45. Otherwise, please say "N" here to avoid unnecessary overhead.
  46. config ERRATA_SIFIVE_CIP_453
  47. bool "Apply SiFive errata CIP-453"
  48. depends on ERRATA_SIFIVE && 64BIT
  49. default y
  50. help
  51. This will apply the SiFive CIP-453 errata to add sign extension
  52. to the $badaddr when exception type is instruction page fault
  53. and instruction access fault.
  54. If you don't know what to do here, say "Y".
  55. config ERRATA_SIFIVE_CIP_1200
  56. bool "Apply SiFive errata CIP-1200"
  57. depends on ERRATA_SIFIVE && 64BIT
  58. default y
  59. help
  60. This will apply the SiFive CIP-1200 errata to repalce all
  61. "sfence.vma addr" with "sfence.vma" to ensure that the addr
  62. has been flushed from TLB.
  63. If you don't know what to do here, say "Y".
  64. config ERRATA_STARFIVE_JH7100
  65. bool "StarFive JH7100 support"
  66. depends on ARCH_STARFIVE
  67. depends on !DMA_DIRECT_REMAP
  68. depends on NONPORTABLE
  69. select DMA_GLOBAL_POOL
  70. select RISCV_DMA_NONCOHERENT
  71. select RISCV_NONSTANDARD_CACHE_OPS
  72. select CACHEMAINT_FOR_DMA
  73. select SIFIVE_CCACHE
  74. default n
  75. help
  76. The StarFive JH7100 was a test chip for the JH7110 and has
  77. caches that are non-coherent with respect to peripheral DMAs.
  78. It was designed before the Zicbom extension so needs non-standard
  79. cache operations through the SiFive cache controller.
  80. Say "Y" if you want to support the BeagleV Starlight and/or
  81. StarFive VisionFive V1 boards.
  82. config ERRATA_THEAD
  83. bool "T-HEAD errata"
  84. depends on RISCV_ALTERNATIVE
  85. help
  86. All T-HEAD errata Kconfig depend on this Kconfig. Disabling
  87. this Kconfig will disable all T-HEAD errata. Please say "Y"
  88. here if your platform uses T-HEAD CPU cores.
  89. Otherwise, please say "N" here to avoid unnecessary overhead.
  90. config ERRATA_THEAD_MAE
  91. bool "Apply T-Head's memory attribute extension (XTheadMae) errata"
  92. depends on ERRATA_THEAD && 64BIT && MMU
  93. select RISCV_ALTERNATIVE_EARLY
  94. default y
  95. help
  96. This will apply the memory attribute extension errata to handle the
  97. non-standard PTE utilization on T-Head SoCs (XTheadMae).
  98. If you don't know what to do here, say "Y".
  99. config ERRATA_THEAD_CMO
  100. bool "Apply T-Head cache management errata"
  101. depends on ERRATA_THEAD && MMU
  102. select DMA_DIRECT_REMAP
  103. select RISCV_DMA_NONCOHERENT
  104. select RISCV_NONSTANDARD_CACHE_OPS
  105. default y
  106. help
  107. This will apply the cache management errata to handle the
  108. non-standard handling on non-coherent operations on T-Head SoCs.
  109. If you don't know what to do here, say "Y".
  110. config ERRATA_THEAD_PMU
  111. bool "Apply T-Head PMU errata"
  112. depends on ERRATA_THEAD && RISCV_PMU_SBI
  113. default y
  114. help
  115. The T-Head C9xx cores implement a PMU overflow extension very
  116. similar to the core SSCOFPMF extension.
  117. This will apply the overflow errata to handle the non-standard
  118. behaviour via the regular SBI PMU driver and interface.
  119. If you don't know what to do here, say "Y".
  120. config ERRATA_THEAD_GHOSTWRITE
  121. bool "Apply T-Head Ghostwrite errata"
  122. depends on ERRATA_THEAD && RISCV_ISA_XTHEADVECTOR
  123. default y
  124. help
  125. The T-Head C9xx cores have a vulnerability in the xtheadvector
  126. instruction set. When this errata is enabled, the CPUs will be probed
  127. to determine if they are vulnerable and disable xtheadvector.
  128. If you don't know what to do here, say "Y".
  129. endmenu # "CPU errata selection"