|
|
Log in / Subscribe / Register

Add NMI Support to RISC-V via SSE

From:  Yunhui Cui <cuiyunhui-AT-bytedance.com>
To:  paul.walmsley-AT-sifive.com, palmer-AT-dabbelt.com, aou-AT-eecs.berkeley.edu, alex-AT-ghiti.fr, conor-AT-kernel.org, cuiyunhui-AT-bytedance.com, luxu.kernel-AT-bytedance.com, atishp-AT-rivosinc.com, cleger-AT-rivosinc.com, ajones-AT-ventanamicro.com, apatel-AT-ventanamicro.com, linux-kernel-AT-vger.kernel.org, linux-riscv-AT-lists.infradead.org, songshuaishuai-AT-tinylab.org, bjorn-AT-rivosinc.com, charlie-AT-rivosinc.com, masahiroy-AT-kernel.org, valentina.fernandezalanis-AT-microchip.com, jassisinghbrar-AT-gmail.com, conor.dooley-AT-microchip.com
Subject:  [PATCH 0/3] Add NMI Support to RISC-V via SSE
Date:  Mon, 27 Oct 2025 21:34:28 +0800
Message-ID:  <20251027133431.15321-1-cuiyunhui@bytedance.com>
Archive-link:  Article

We thank Clément Léger (Rivos Inc.) for his foundational SSE
work ([1]), upon which this patch series builds. This series adds
NMI support to RISC-V via SSE, with two key focuses:
1. A PR to the RISC-V SBI spec ([2]) for unknown NMI handling, with
matching Linux kernel changes.
2. Extending NMI usage to all system scenarios where it boosts
robustness—e.g., stopping CPUs during crashes.

[1] https://lore.kernel.org/all/20250908181717.1997461-1-cleg...
[2] https://github.com/riscv-non-isa/riscv-sbi-doc/pull/223

Yunhui Cui (3):
  drivers: firmware: riscv: add SSE NMI support
  riscv: crash: move IPI crash handling logic to crash.c
  riscv: crash: use NMI to stop the CPU

 MAINTAINERS                      |   7 ++
 arch/riscv/include/asm/crash.h   |  17 ++++
 arch/riscv/include/asm/sbi.h     |   2 +
 arch/riscv/include/asm/smp.h     |  14 +++
 arch/riscv/kernel/Makefile       |   2 +-
 arch/riscv/kernel/crash.c        | 111 +++++++++++++++++++++++
 arch/riscv/kernel/smp.c          |  99 +-------------------
 drivers/firmware/riscv/Kconfig   |  10 +++
 drivers/firmware/riscv/Makefile  |   1 +
 drivers/firmware/riscv/sse_nmi.c | 150 +++++++++++++++++++++++++++++++
 include/linux/sse_nmi.h          |   8 ++
 11 files changed, 323 insertions(+), 98 deletions(-)
 create mode 100644 arch/riscv/include/asm/crash.h
 create mode 100644 arch/riscv/kernel/crash.c
 create mode 100644 drivers/firmware/riscv/sse_nmi.c
 create mode 100644 include/linux/sse_nmi.h

-- 
2.39.5




Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds