svpbmt und so
From: Heiko Stuebner <heiko@...> Date: Mon, 6 Dec 2021 16:42:21 +0100
Das wäre jetzt mein Versuch für svpbmt. Erstmal intern, ob ich jetzt irgendwas gravierendes falsch mache ;-) . Wie schon mit Christoph erörtert, als alternative und 2 asm Anweisungen. T-Head wäre dann auch einfach indem man den ALTERNATIVE_2 Mechanismus implementiert, dass dort zwischen in Summe 3 Varianten unterschieden werden kann. [Da wir ja davon ausgehen dass keine weiteren kaputten Cores mehr akzeptiert werden]. Tests: - (generierte) PAGE-Werte in beiden Fällen im Kernel-Log ausgeben - normales Qemu - Qemu mit https://lore.kernel.org/all/20211128135255.22089-4-liweiwei@iscas.ac.cn/ und qemu_fdt_setprop_string(mc->fdt, cpu_name, "mmu", "riscv,svpbmt"); in virt - gepatchte Codestellen zählen lassen (177) Guo Ren (1): riscv: Fixup _PAGE_CHG_MASK usage in pgtable Heiko Stuebner (1): riscv: add cpufeature handling via alternatives Wei Fu (2): dt-bindings: riscv: add MMU Standard Extensions support for Svpbmt riscv: add RISC-V Svpbmt extension supports .../devicetree/bindings/riscv/cpus.yaml | 10 +++ arch/riscv/errata/Makefile | 1 + arch/riscv/errata/alternative.c | 3 + arch/riscv/errata/cpufeatures.c | 87 +++++++++++++++++++ arch/riscv/include/asm/alternative.h | 1 + arch/riscv/include/asm/errata_list.h | 12 +++ arch/riscv/include/asm/fixmap.h | 2 - arch/riscv/include/asm/pgtable-32.h | 10 +++ arch/riscv/include/asm/pgtable-64.h | 65 +++++++++++++- arch/riscv/include/asm/pgtable-bits.h | 4 - arch/riscv/include/asm/pgtable.h | 38 ++++++-- 11 files changed, 215 insertions(+), 18 deletions(-) create mode 100644 arch/riscv/errata/cpufeatures.c -- 2.30.2
Patches in this set
- [0001] riscv: Fixup _PAGE_CHG_MASK usage in pgtable (raw)
- [0002] riscv: add cpufeature handling via alternatives (raw)
- [0003] dt-bindings: riscv: add MMU Standard Extensions support (raw)
- [0004] riscv: add RISC-V Svpbmt extension supports (raw)
Statistics
- 4 individual patches
- 216 lines added
- 19 lines removed