Some additionals comments and notes from autobuilders received after the series got applied, warranted some changes. * commit '924cbb8cbe3460ea192e6243017ceb0ceb255b1b': riscv: Improve description for RISCV_ISA_SVPBMT Kconfig symbol riscv: drop cpufeature_apply_feature tracking variable riscv: fix dependency for t-head errata
Unified · Split
| @@ -364,8 +364,13 @@ config RISCV_ISA_SVPBMT · 363 unmodified lines | |||
| 364 | select RISCV_ALTERNATIVE | 364 | select RISCV_ALTERNATIVE |
| 365 | default y | 365 | default y |
| 366 | help | 366 | help |
| 367 | Adds support to dynamically detect the presence of the SVPBMT extension | 367 | Adds support to dynamically detect the presence of the SVPBMT |
| 368 | (Supervisor-mode: page-based memory types) and enable its usage. | 368 | ISA-extension (Supervisor-mode: page-based memory types) and |
| 369 | enable its usage. | ||
| 370 | |||
| 371 | The memory type for a page contains a combination of attributes | ||
| 372 | that indicate the cacheability, idempotency, and ordering | ||
| 373 | properties for access to that page. | ||
| 369 | 374 | ||
| 370 | The SVPBMT extension is only available on 64Bit cpus. | 375 | The SVPBMT extension is only available on 64Bit cpus. |
| 371 | 376 | ||
| @@ -35,6 +35,7 @@ config ERRATA_SIFIVE_CIP_1200 · 34 unmodified lines | |||
| 35 | 35 | ||
| 36 | config ERRATA_THEAD | 36 | config ERRATA_THEAD |
| 37 | bool "T-HEAD errata" | 37 | bool "T-HEAD errata" |
| 38 | depends on !XIP_KERNEL | ||
| 38 | select RISCV_ALTERNATIVE | 39 | select RISCV_ALTERNATIVE |
| 39 | help | 40 | help |
| 40 | All T-HEAD errata Kconfig depend on this Kconfig. Disabling | 41 | All T-HEAD errata Kconfig depend on this Kconfig. Disabling |
| @@ -293,7 +293,6 @@ void __init_or_module riscv_cpufeature_patch_func(struct alt_entry *begin, · 292 unmodified lines | |||
| 293 | unsigned int stage) | 293 | unsigned int stage) |
| 294 | { | 294 | { |
| 295 | u32 cpu_req_feature = cpufeature_probe(stage); | 295 | u32 cpu_req_feature = cpufeature_probe(stage); |
| 296 | u32 cpu_apply_feature = 0; | ||
| 297 | struct alt_entry *alt; | 296 | struct alt_entry *alt; |
| 298 | u32 tmp; | 297 | u32 tmp; |
| 299 | 298 | ||
| @@ -307,10 +306,8 @@ void __init_or_module riscv_cpufeature_patch_func(struct alt_entry *begin, · 7 unmodified lines | |||
| 307 | } | 306 | } |
| 308 | 307 | ||
| 309 | tmp = (1U << alt->errata_id); | 308 | tmp = (1U << alt->errata_id); |
| 310 | if (cpu_req_feature & tmp) { | 309 | if (cpu_req_feature & tmp) |
| 311 | patch_text_nosync(alt->old_ptr, alt->alt_ptr, alt->alt_len); | 310 | patch_text_nosync(alt->old_ptr, alt->alt_ptr, alt->alt_len); |
| 312 | cpu_apply_feature |= tmp; | ||
| 313 | } | ||
| 314 | } | 311 | } |
| 315 | } | 312 | } |
| 316 | #endif | 313 | #endif |