* [GIT PULL] RISC-V updates for v6.18-rc1
@ 2025-09-29 8:00 Paul Walmsley
2025-09-30 2:54 ` pr-tracker-bot
` (2 more replies)
0 siblings, 3 replies; 16+ messages in thread
From: Paul Walmsley @ 2025-09-29 8:00 UTC (permalink / raw)
To: torvalds; +Cc: linux-riscv, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 10844 bytes --]
Linus,
The following changes since commit a03ee11b8f850bd008226c6d392da24163dfb56e:
riscv: Fix sparse warning about different address spaces (2025-09-05 15:33:52 -0600)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux tags/riscv-for-linus-6.18-mw1
for you to fetch changes up to 0b0ca959d20689fece038954bbf1d7b14c0b11c3:
riscv: errata: Fix the PAUSE Opcode for MIPS P8700 (2025-09-19 10:33:56 -0600)
----------------------------------------------------------------
RISC-V updates for the v6.18 merge window (part one)
First set of RISC-V updates for the v6.18 merge window, including:
- Replacement of __ASSEMBLY__ with __ASSEMBLER__ in header files (other
architectures have already merged this type of cleanup)
- The introduction of ioremap_wc() for RISC-V
- Cleanup of the RISC-V kprobes code to use mostly-extant macros rather than
open code
- A RISC-V kprobes unit test
- An architecture-specific endianness swap macro set implementation,
leveraging some dedicated RISC-V instructions for this purpose if they
are available
- The ability to identity and communicate to userspace the presence of a
MIPS P8700-specific ISA extension, and to leverage its MIPS-specific PAUSE
implementation in cpu_relax()
- Several other miscellaneous cleanups
----------------------------------------------------------------
Aleksa Paunovic (5):
dt-bindings: riscv: Add xmipsexectl ISA extension description
riscv: Add xmipsexectl as a vendor extension
riscv: Add xmipsexectl instructions
riscv: hwprobe: Add MIPS vendor extension probing
riscv: hwprobe: Document MIPS xmipsexectl vendor extension
Alexandre Ghiti (3):
riscv: Fix typo EXRACT -> EXTRACT
riscv: Strengthen duplicate and inconsistent definition of RV_X()
riscv: Move all duplicate insn parsing macros into asm/insn.h
Andrew Davis (1):
riscv: sbi: Switch to new sys-off handler API
Bala-Vignesh-Reddy (1):
selftests: riscv: Add README for RISC-V KSelfTest
Chunyan Zhang (2):
raid6: riscv: Clean up unused header file inclusion
raid6: riscv: replace one load with a move to speed up the caculation
Clément Léger (1):
riscv: cpufeature: add validation for zfa, zfh and zfhmin
Djordje Todorovic (1):
riscv: errata: Fix the PAUSE Opcode for MIPS P8700
Guo Ren (Alibaba DAMO Academy) (1):
riscv: Move vendor errata definitions to new header
Heinrich Schuchardt (1):
RISC-V: ACPI: enable parsing the BGRT table
Ignacio Encinas (1):
riscv: introduce asm/swab.h
Jessica Liu (1):
riscv: mmap(): use unsigned offset type in riscv_sys_mmap
Junhui Liu (2):
riscv: mm: Return intended SATP mode for noXlvl options
riscv: mm: Use mmu-type from FDT to limit SATP mode
Liao Yuanhong (1):
drivers/perf: riscv: Remove redundant ternary operators
Masahiro Yamada (1):
riscv: pi: use 'targets' instead of extra-y in Makefile
Nam Cao (12):
riscv: Add kprobes KUnit test
riscv: kprobes: Move branch_rs2_idx to insn.h
riscv: kprobes: Move branch_funct3 to insn.h
riscv: kprobes: Remove duplication of RV_EXTRACT_JTYPE_IMM
riscv: kprobes: Remove duplication of RV_EXTRACT_RS1_REG
riscv: kprobes: Remove duplication of RV_EXTRACT_BTYPE_IMM
riscv: kprobes: Remove duplication of RVC_EXTRACT_JTYPE_IMM
riscv: kprobes: Remove duplication of RVC_EXTRACT_C2_RS1_REG
riscv: kprobes: Remove duplication of RVC_EXTRACT_BTYPE_IMM
riscv: kprobes: Remove duplication of RV_EXTRACT_RD_REG
riscv: kprobes: Remove duplication of RV_EXTRACT_UTYPE_IMM
riscv: kprobes: Remove duplication of RV_EXTRACT_ITYPE_IMM
Pu Lehui (1):
riscv: Enable ARCH_HAVE_NMI_SAFE_CMPXCHG
Thomas Huth (2):
riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers
riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers
Yunhui Cui (2):
riscv: introduce ioremap_wc()
perf: riscv: skip empty batches in counter start
Documentation/arch/riscv/hwprobe.rst | 9 +
.../devicetree/bindings/riscv/extensions.yaml | 6 +
arch/riscv/Kconfig | 1 +
arch/riscv/Kconfig.errata | 23 +++
arch/riscv/Kconfig.vendor | 13 ++
arch/riscv/errata/Makefile | 1 +
arch/riscv/errata/mips/Makefile | 5 +
arch/riscv/errata/mips/errata.c | 67 ++++++
arch/riscv/include/asm/alternative-macros.h | 12 +-
arch/riscv/include/asm/alternative.h | 5 +-
arch/riscv/include/asm/asm-extable.h | 6 +-
arch/riscv/include/asm/asm.h | 10 +-
arch/riscv/include/asm/assembler.h | 2 +-
arch/riscv/include/asm/barrier.h | 4 +-
arch/riscv/include/asm/cache.h | 4 +-
arch/riscv/include/asm/cmpxchg.h | 3 +-
arch/riscv/include/asm/cpu_ops_sbi.h | 2 +-
arch/riscv/include/asm/csr.h | 4 +-
arch/riscv/include/asm/current.h | 4 +-
arch/riscv/include/asm/errata_list.h | 38 ++--
arch/riscv/include/asm/errata_list_vendors.h | 29 +++
arch/riscv/include/asm/ftrace.h | 6 +-
arch/riscv/include/asm/gpr-num.h | 6 +-
arch/riscv/include/asm/hwprobe.h | 3 +-
arch/riscv/include/asm/image.h | 4 +-
arch/riscv/include/asm/insn-def.h | 8 +-
arch/riscv/include/asm/insn.h | 216 +++++++++++++++++--
arch/riscv/include/asm/io.h | 4 +
arch/riscv/include/asm/jump_label.h | 4 +-
arch/riscv/include/asm/kasan.h | 2 +-
arch/riscv/include/asm/kgdb.h | 4 +-
arch/riscv/include/asm/mmu.h | 4 +-
arch/riscv/include/asm/page.h | 4 +-
arch/riscv/include/asm/pgtable.h | 5 +-
arch/riscv/include/asm/processor.h | 4 +-
arch/riscv/include/asm/ptrace.h | 4 +-
arch/riscv/include/asm/scs.h | 4 +-
arch/riscv/include/asm/set_memory.h | 4 +-
arch/riscv/include/asm/swab.h | 87 ++++++++
arch/riscv/include/asm/thread_info.h | 4 +-
arch/riscv/include/asm/vdso.h | 4 +-
arch/riscv/include/asm/vdso/getrandom.h | 4 +-
arch/riscv/include/asm/vdso/gettimeofday.h | 4 +-
arch/riscv/include/asm/vdso/processor.h | 7 +-
arch/riscv/include/asm/vdso/vsyscall.h | 4 +-
arch/riscv/include/asm/vendor_extensions/mips.h | 37 ++++
.../include/asm/vendor_extensions/mips_hwprobe.h | 22 ++
arch/riscv/include/asm/vendorid_list.h | 1 +
arch/riscv/include/uapi/asm/hwprobe.h | 1 +
arch/riscv/include/uapi/asm/kvm.h | 2 +-
arch/riscv/include/uapi/asm/ptrace.h | 4 +-
arch/riscv/include/uapi/asm/sigcontext.h | 4 +-
arch/riscv/include/uapi/asm/vendor/mips.h | 3 +
arch/riscv/kernel/acpi.c | 3 +
arch/riscv/kernel/alternative.c | 5 +
arch/riscv/kernel/cpufeature.c | 6 +-
arch/riscv/kernel/entry.S | 1 +
arch/riscv/kernel/machine_kexec_file.c | 2 +-
arch/riscv/kernel/pi/Makefile | 2 +-
arch/riscv/kernel/pi/cmdline_early.c | 4 +-
arch/riscv/kernel/pi/fdt_early.c | 40 ++++
arch/riscv/kernel/pi/pi.h | 1 +
arch/riscv/kernel/probes/simulate-insn.c | 94 ++-------
arch/riscv/kernel/sbi.c | 4 +-
arch/riscv/kernel/sys_hwprobe.c | 18 +-
arch/riscv/kernel/sys_riscv.c | 2 +-
arch/riscv/kernel/tests/Kconfig.debug | 12 ++
arch/riscv/kernel/tests/Makefile | 1 +
arch/riscv/kernel/tests/kprobes/Makefile | 1 +
arch/riscv/kernel/tests/kprobes/test-kprobes-asm.S | 229 +++++++++++++++++++++
arch/riscv/kernel/tests/kprobes/test-kprobes.c | 56 +++++
arch/riscv/kernel/tests/kprobes/test-kprobes.h | 24 +++
arch/riscv/kernel/traps_misaligned.c | 144 +------------
arch/riscv/kernel/vector.c | 2 +-
arch/riscv/kernel/vendor_extensions.c | 10 +
arch/riscv/kernel/vendor_extensions/Makefile | 2 +
arch/riscv/kernel/vendor_extensions/mips.c | 22 ++
arch/riscv/kernel/vendor_extensions/mips_hwprobe.c | 23 +++
arch/riscv/kvm/vcpu_insn.c | 128 +-----------
arch/riscv/mm/init.c | 12 +-
drivers/perf/riscv_pmu_sbi.c | 8 +-
lib/raid6/recov_rvv.c | 2 -
lib/raid6/rvv.c | 63 +++---
tools/arch/riscv/include/asm/csr.h | 6 +-
tools/arch/riscv/include/asm/vdso/processor.h | 4 +-
tools/testing/selftests/riscv/README | 24 +++
86 files changed, 1147 insertions(+), 530 deletions(-)
create mode 100644 arch/riscv/errata/mips/Makefile
create mode 100644 arch/riscv/errata/mips/errata.c
create mode 100644 arch/riscv/include/asm/errata_list_vendors.h
create mode 100644 arch/riscv/include/asm/swab.h
create mode 100644 arch/riscv/include/asm/vendor_extensions/mips.h
create mode 100644 arch/riscv/include/asm/vendor_extensions/mips_hwprobe.h
create mode 100644 arch/riscv/include/uapi/asm/vendor/mips.h
create mode 100644 arch/riscv/kernel/tests/kprobes/Makefile
create mode 100644 arch/riscv/kernel/tests/kprobes/test-kprobes-asm.S
create mode 100644 arch/riscv/kernel/tests/kprobes/test-kprobes.c
create mode 100644 arch/riscv/kernel/tests/kprobes/test-kprobes.h
create mode 100644 arch/riscv/kernel/vendor_extensions/mips.c
create mode 100644 arch/riscv/kernel/vendor_extensions/mips_hwprobe.c
create mode 100644 tools/testing/selftests/riscv/README
text data bss dec hex filename
12772113 6174082 419253 19365448 1277e48 vmlinux.rv64.orig
12839941 6181502 419253 19440696 128a438 vmlinux.rv64
11725507 5994510 404229 18124246 1148dd6 vmlinux.rv64_nosmp.orig
11788867 6000158 404229 18193254 1159b66 vmlinux.rv64_nosmp
11723502 4702818 309629 16735949 ff5ecd vmlinux.rv32.orig
11771062 4703702 309629 16784393 1001c09 vmlinux.rv32
2612497 761072 119048 3492617 354b09 vmlinux.nommu_virt.orig
2615066 758584 119048 3492698 354b5a vmlinux.nommu_virt
[-- Attachment #2: Type: text/plain, Size: 161 bytes --]
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL] RISC-V updates for v6.18-rc1
2025-09-29 8:00 [GIT PULL] RISC-V updates for v6.18-rc1 Paul Walmsley
@ 2025-09-30 2:54 ` pr-tracker-bot
2025-09-30 7:25 ` Ben Dooks
2025-10-11 8:38 ` Yao Zi
2 siblings, 0 replies; 16+ messages in thread
From: pr-tracker-bot @ 2025-09-30 2:54 UTC (permalink / raw)
To: Paul Walmsley; +Cc: torvalds, linux-riscv, linux-kernel
The pull request you sent on Mon, 29 Sep 2025 02:00:17 -0600 (MDT):
> git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux tags/riscv-for-linus-6.18-mw1
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/cb7e3669c683669d93139184adff68a7d9000536
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL] RISC-V updates for v6.18-rc1
2025-09-29 8:00 [GIT PULL] RISC-V updates for v6.18-rc1 Paul Walmsley
2025-09-30 2:54 ` pr-tracker-bot
@ 2025-09-30 7:25 ` Ben Dooks
2025-09-30 16:04 ` Linus Torvalds
2025-10-11 8:38 ` Yao Zi
2 siblings, 1 reply; 16+ messages in thread
From: Ben Dooks @ 2025-09-30 7:25 UTC (permalink / raw)
To: Paul Walmsley, torvalds; +Cc: linux-riscv, linux-kernel
On 29/09/2025 09:00, Paul Walmsley wrote:
> Linus,
>
> The following changes since commit a03ee11b8f850bd008226c6d392da24163dfb56e:
>
> riscv: Fix sparse warning about different address spaces (2025-09-05 15:33:52 -0600)
Is there any chance some of the big-endian work we did is getting in
for this round?
--
Ben Dooks http://www.codethink.co.uk/
Senior Engineer Codethink - Providing Genius
https://www.codethink.co.uk/privacy.html
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL] RISC-V updates for v6.18-rc1
2025-09-30 7:25 ` Ben Dooks
@ 2025-09-30 16:04 ` Linus Torvalds
2025-09-30 23:53 ` Linus Torvalds
2025-10-02 12:48 ` Ben Dooks
0 siblings, 2 replies; 16+ messages in thread
From: Linus Torvalds @ 2025-09-30 16:04 UTC (permalink / raw)
To: Ben Dooks; +Cc: Paul Walmsley, linux-riscv, linux-kernel
On Tue, 30 Sept 2025 at 00:25, Ben Dooks <ben.dooks@codethink.co.uk> wrote:
>
> Is there any chance some of the big-endian work we did is getting in
> for this round?
Oh Christ. Is somebody seriously working on BE support in 2025?
WHY?
Seriously, that sounds like just *stupid*. Is there some actual real
reason for this, or is it more of the "RISC-V is used in academic
design classes and so people just want to do endianness for academic
reasons"?
Because I'd be more than happy to just draw a line in the sand and say
"New endianness problems are somebody ELSES problem", and tell people
to stop being silly.
Let's not complicate things for no good reason. And there is *NO*
reason to add new endianness.
RISC-V is enough of a mess with the millions of silly configuration
issues already. Don't make it even worse.
Tell people to just talk to their therapists instead. That's *much*
more productive.
Really.
Linus
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL] RISC-V updates for v6.18-rc1
2025-09-30 16:04 ` Linus Torvalds
@ 2025-09-30 23:53 ` Linus Torvalds
2025-10-01 18:33 ` Eric Biggers
2025-10-01 19:02 ` Conor Dooley
2025-10-02 12:48 ` Ben Dooks
1 sibling, 2 replies; 16+ messages in thread
From: Linus Torvalds @ 2025-09-30 23:53 UTC (permalink / raw)
To: Ben Dooks; +Cc: Paul Walmsley, linux-riscv, linux-kernel
On Tue, 30 Sept 2025 at 09:04, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> Oh Christ. Is somebody seriously working on BE support in 2025?
Ok, I just googled this, and I am putting my foot down:
WE ARE NOT PREEMPTIVELY SUPPORTING BIG-ENDIAN ON RISC-V
The documented "reasoning" for that craziness is too stupid for words,
but since riscv.org did put it in words, I'll just quote those words
here:
"There are still applications where the way data is stored matters,
such as the protocols that move data across the Internet, which are
defined as big-endian. So when a little-endian system needs to inspect
or modify a network packet, it has to swap the big-endian values to
little-endian and back, a process that can take as many as 10-20
instructions on a RISC-V target which doesn’t implement the Zbb
extension"
In other words, it is suggesting that RISC-V add a big-endian mode due to
(a) internet protocols - where byte swapping is not an issue
(b) using "some RISC-V implementations don't do the existing Zbb
extension" as an excuse
This is plain insanity. First off, even if byte swapping was a real
cost for networking - it's not, the real costs tend to be all in
memory subsystems - just implement the damn Zbb extension.
Don't go "we're too incompetent to implement Zbb, so we're now asking
that EVERYBODY ELSE feel the pain of a much *worse* extension and
fragmenting RISC-V further".
I'm hoping this is some April fools joke, but that page is dated
"March 10, 2025". Close, but not close enough.
This is the kind of silly stuff that just makes RISC-V look bad.
Ben - I'm afraid that that page has "further reading" pointing to codethink.
I see some CONFIG_CPU_BIG_ENDIAN has already made it in, but this
needs to stop.
The mainline kernel is for mainline development. Not for random
experiments that make the world a worse place.
And yes, we're open source, and that very much means that anybody is
more than welcome to try to prove me wrong.
If it turns out that BE RISC-V becomes a real thing that is relevant
and actually finds a place in the RISC-V ecosystem, then _of_course_
we should support it at that point in the mainline kernel.
But I really do think that it actually makes RISC-V only worse, and
that we should *not* actively help the fragmentation.
Linus
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL] RISC-V updates for v6.18-rc1
2025-09-30 23:53 ` Linus Torvalds
@ 2025-10-01 18:33 ` Eric Biggers
2025-10-03 1:45 ` Yury Norov
2025-10-01 19:02 ` Conor Dooley
1 sibling, 1 reply; 16+ messages in thread
From: Eric Biggers @ 2025-10-01 18:33 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Ben Dooks, Paul Walmsley, linux-riscv, linux-kernel
On Tue, Sep 30, 2025 at 04:53:24PM -0700, Linus Torvalds wrote:
> On Tue, 30 Sept 2025 at 09:04, Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
> >
> > Oh Christ. Is somebody seriously working on BE support in 2025?
>
> Ok, I just googled this, and I am putting my foot down:
>
> WE ARE NOT PREEMPTIVELY SUPPORTING BIG-ENDIAN ON RISC-V
>
> The documented "reasoning" for that craziness is too stupid for words,
> but since riscv.org did put it in words, I'll just quote those words
> here:
>
> "There are still applications where the way data is stored matters,
> such as the protocols that move data across the Internet, which are
> defined as big-endian. So when a little-endian system needs to inspect
> or modify a network packet, it has to swap the big-endian values to
> little-endian and back, a process that can take as many as 10-20
> instructions on a RISC-V target which doesn’t implement the Zbb
> extension"
>
> In other words, it is suggesting that RISC-V add a big-endian mode due to
>
> (a) internet protocols - where byte swapping is not an issue
>
> (b) using "some RISC-V implementations don't do the existing Zbb
> extension" as an excuse
>
> This is plain insanity. First off, even if byte swapping was a real
> cost for networking - it's not, the real costs tend to be all in
> memory subsystems - just implement the damn Zbb extension.
>
> Don't go "we're too incompetent to implement Zbb, so we're now asking
> that EVERYBODY ELSE feel the pain of a much *worse* extension and
> fragmenting RISC-V further".
>
> I'm hoping this is some April fools joke, but that page is dated
> "March 10, 2025". Close, but not close enough.
>
> This is the kind of silly stuff that just makes RISC-V look bad.
>
> Ben - I'm afraid that that page has "further reading" pointing to codethink.
>
> I see some CONFIG_CPU_BIG_ENDIAN has already made it in, but this
> needs to stop.
>
> The mainline kernel is for mainline development. Not for random
> experiments that make the world a worse place.
>
> And yes, we're open source, and that very much means that anybody is
> more than welcome to try to prove me wrong.
>
> If it turns out that BE RISC-V becomes a real thing that is relevant
> and actually finds a place in the RISC-V ecosystem, then _of_course_
> we should support it at that point in the mainline kernel.
>
> But I really do think that it actually makes RISC-V only worse, and
> that we should *not* actively help the fragmentation.
+1. Please, let's not do big endian RISC-V kernels :(
This mistake was made for arm64, it's finally getting fixed.
See https://lore.kernel.org/r/20250919184025.15416-1-will@kernel.org/
Let's not make the same mistake again.
And as someone who works on optimized crypto and CRC code, the arm64 big
endian kernel support has always been really problematic. It's rarely
tested, and code that produces incorrect outputs on arm64 big endian
regularly gets committed and released. It sometimes gets fixed, but not
always; currently the arm64 SM3 and SM4 code produces incorrect outputs
on big endian in mainline. (I don't really care enough to fix it, TBH.)
I recently added arm64 big endian to my own testing matrix. But I look
forward to dropping that, as well as *not* having to start testing on
RISC-V big endian too...
Of course, that's just one example from my own experience. There's a
lot more that CONFIG_CPU_BIG_ENDIAN creates problems for.
- Eric
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL] RISC-V updates for v6.18-rc1
2025-09-30 23:53 ` Linus Torvalds
2025-10-01 18:33 ` Eric Biggers
@ 2025-10-01 19:02 ` Conor Dooley
2025-10-01 19:39 ` Linus Torvalds
1 sibling, 1 reply; 16+ messages in thread
From: Conor Dooley @ 2025-10-01 19:02 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Ben Dooks, Paul Walmsley, linux-riscv, linux-kernel
[-- Attachment #1.1: Type: text/plain, Size: 2531 bytes --]
On Tue, Sep 30, 2025 at 04:53:24PM -0700, Linus Torvalds wrote:
> On Tue, 30 Sept 2025 at 09:04, Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
> >
> > Oh Christ. Is somebody seriously working on BE support in 2025?
>
> Ok, I just googled this, and I am putting my foot down:
>
> WE ARE NOT PREEMPTIVELY SUPPORTING BIG-ENDIAN ON RISC-V
>
> The documented "reasoning" for that craziness is too stupid for words,
> but since riscv.org did put it in words, I'll just quote those words
> here:
>
> "There are still applications where the way data is stored matters,
> such as the protocols that move data across the Internet, which are
> defined as big-endian. So when a little-endian system needs to inspect
> or modify a network packet, it has to swap the big-endian values to
> little-endian and back, a process that can take as many as 10-20
> instructions on a RISC-V target which doesn’t implement the Zbb
> extension"
>
> In other words, it is suggesting that RISC-V add a big-endian mode due to
>
> (a) internet protocols - where byte swapping is not an issue
>
> (b) using "some RISC-V implementations don't do the existing Zbb
> extension" as an excuse
>
> This is plain insanity. First off, even if byte swapping was a real
> cost for networking - it's not, the real costs tend to be all in
> memory subsystems - just implement the damn Zbb extension.
>
> Don't go "we're too incompetent to implement Zbb, so we're now asking
> that EVERYBODY ELSE feel the pain of a much *worse* extension and
> fragmenting RISC-V further".
>
> I'm hoping this is some April fools joke, but that page is dated
> "March 10, 2025". Close, but not close enough.
>
> This is the kind of silly stuff that just makes RISC-V look bad.
>
> Ben - I'm afraid that that page has "further reading" pointing to codethink.
>
> I see some CONFIG_CPU_BIG_ENDIAN has already made it in, but this
> needs to stop.
Perhaps somewhat ironically, most of the instances of CONFIG_CPU_BIG_ENDIAN
that are already in the kernel are the Zbb specific implementations of
string manipulation functions. IIRC they got added to match the Zbb spec
appendices from which the implementations are sourced and speculatively
in case BE ever did get added. The kexec users are just a straight copy
from the arm64 kexec support. None of that was really done as a
deliberate attempt to add support for BE, in case that assuages concerns
you might have about the taste of the arch maintainers..
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
[-- Attachment #2: Type: text/plain, Size: 161 bytes --]
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL] RISC-V updates for v6.18-rc1
2025-10-01 19:02 ` Conor Dooley
@ 2025-10-01 19:39 ` Linus Torvalds
0 siblings, 0 replies; 16+ messages in thread
From: Linus Torvalds @ 2025-10-01 19:39 UTC (permalink / raw)
To: Conor Dooley; +Cc: Ben Dooks, Paul Walmsley, linux-riscv, linux-kernel
On Wed, 1 Oct 2025 at 12:03, Conor Dooley <conor@kernel.org> wrote:
>
> None of that was really done as a deliberate attempt to add support
> for BE, in case that assuages concerns you might have about the taste
> of the arch maintainers..
Thanks, it does.
As others have mentioned, the arm64 support ends up being problematic
and people are actively trying to remove it.
BE is dead. There is one good reason to support it - legacy
architectures designed and implemented back in the days when it wasn't
dead _yet_.
But it's a huge pain, and the world has moved on. Dealing with BE with
any half-way modern infrastructure is a dead end, since things like
PCIe are all fundamentally little-endian.
If somebody really wants to create bad hardware in this day and age,
please do make it big-endian, and also add the following very
traditional features for sh*t-for-brains hardware:
- virtually tagged caches
You can't really claim to be worst-of-the-worst without virtually
tagged caches.
Tears of joy as you debug cache alias issues and of flushing caches
on context switches.
- only do aligned memory accesses
Bonus point for not even faulting, and just loading and storing
garbage instead.
- expose your pipeline details in the ISA
Delayed branch slots or explicit instruction grouping is a great
way to show that you eat crayons for breakfast before you start
designing your hardware platform
- extended memory windows
It was good enough for 8-bit machines in order to address more
memory, and became a HIGHMEM.SYS staple in the DOS world, and then got
taken up by both x86 and arm in their 32-bit days as HIGHMEM support.
It has decades of history, and an architecture cannot be called
truly awful if it doesn't support some kind of HIGHMEM crap.
- register windows. It's like extended memory, but for your registers!
Please make sure to also have hardware support for filling and
spilling them, but make it limited enough that system software has to
deal with faults at critical times. Nesting exceptions is joyful!
Bonus points if they are rotating and overflowing them silently
just corrupts data. Keep those users on their toes!
- in fact, require software fallbacks for pretty much anything unusual.
TLB fills? They might only happen every ten or twenty instructions,
so make them fault to some software implementation to really show your
mad hardware skillz.
denormals or any other FP precision issues? No, no, don't waste
hardware on getting it right, software people *LOVE* to clean up after
you.
Remember: your mom picked up your dirty laundry from your floor,
and software people are like the super-moms of the world.
- make exceptions asynchronous.
That's another great way to make sure people stay on their toes.
Make sure machine check exceptions can happen in any context, so that
you are guaranteed to have a dead machine any time anything goes
wrong.
But you should also take the non-maskability of NMI to heart, and
make sure that software cannot possibly write code that is truly
atomic. Because the NM is NMI is what makes it great!
Floating point! Make sure that the special case you don't deal with
in hardware are also delayed so that the software people have extra
joy in trying to figure out just WTF happened. See the previous entry:
they live for that stuff.
I'm sure I've forgotten many other points. And I'm sure that hardware
people will figure it out!
Linus
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL] RISC-V updates for v6.18-rc1
2025-09-30 16:04 ` Linus Torvalds
2025-09-30 23:53 ` Linus Torvalds
@ 2025-10-02 12:48 ` Ben Dooks
2025-10-02 15:06 ` Olof Johansson
2025-10-02 18:08 ` Theodore Ts'o
1 sibling, 2 replies; 16+ messages in thread
From: Ben Dooks @ 2025-10-02 12:48 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Paul Walmsley, linux-riscv, linux-kernel
On 30/09/2025 17:04, Linus Torvalds wrote:
> On Tue, 30 Sept 2025 at 00:25, Ben Dooks <ben.dooks@codethink.co.uk> wrote:
>>
>> Is there any chance some of the big-endian work we did is getting in
>> for this round?
>
> Oh Christ. Is somebody seriously working on BE support in 2025?
>
> WHY?
>
> Seriously, that sounds like just *stupid*. Is there some actual real
> reason for this, or is it more of the "RISC-V is used in academic
> design classes and so people just want to do endianness for academic
> reasons"?
>
> Because I'd be more than happy to just draw a line in the sand and say
> "New endianness problems are somebody ELSES problem", and tell people
> to stop being silly.
>
> Let's not complicate things for no good reason. And there is *NO*
> reason to add new endianness.
We first tackled big-endian support on ARM32 nearly 15 years ago, and
drawing on that experience, we saw value in doing the same work on
RISC-V as a way for newer engineers to gain hands-on experience
contributing in the open.
Now we’re starting to see commercial cores on the horizon that will have
the ability to be endian configured at run-time. For example, MIPS (the
company not the ISA) has announced they will be producing cores with
configurable endian (https://mips.com/products/hardware/i8500/).
Note some of the patches we are proposing also make the code better,
such as swapping .word for .insn.
> RISC-V is enough of a mess with the millions of silly configuration
> issues already. Don't make it even worse.
This feels like the price you pay for making a flexible and free
ecosystem to build cores. There is no single authority making you use
every feature that might be specified (although Ubuntu's choice to move
forward with RVA32 for future is a current pain for anyone who already
has purchased hardware).
See initial reply for comment on MIPS. We also don't think this a huge
change and given most projects we worked through had few (if any) issues
with building big endian, we thought it was worth having an attempt at this.
> Tell people to just talk to their therapists instead. That's *much*
> more productive.
Thanks, but that isn't helpful and is just making the kernel look more
toxic. I am however going to wear the "I got ranted at by Linus and
survived" tag with pride.
> Really.
>
> Linus
>
--
Ben Dooks http://www.codethink.co.uk/
Senior Engineer Codethink - Providing Genius
https://www.codethink.co.uk/privacy.html
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL] RISC-V updates for v6.18-rc1
2025-10-02 12:48 ` Ben Dooks
@ 2025-10-02 15:06 ` Olof Johansson
2025-10-02 15:22 ` Ben Dooks
2025-10-07 23:43 ` Maciej W. Rozycki
2025-10-02 18:08 ` Theodore Ts'o
1 sibling, 2 replies; 16+ messages in thread
From: Olof Johansson @ 2025-10-02 15:06 UTC (permalink / raw)
To: Ben Dooks; +Cc: Linus Torvalds, Paul Walmsley, linux-riscv, linux-kernel
On Thu, Oct 02, 2025 at 01:48:47PM +0100, Ben Dooks wrote:
> On 30/09/2025 17:04, Linus Torvalds wrote:
> > On Tue, 30 Sept 2025 at 00:25, Ben Dooks <ben.dooks@codethink.co.uk> wrote:
> > >
> > > Is there any chance some of the big-endian work we did is getting in
> > > for this round?
> >
> > Oh Christ. Is somebody seriously working on BE support in 2025?
> >
> > WHY?
> >
> > Seriously, that sounds like just *stupid*. Is there some actual real
> > reason for this, or is it more of the "RISC-V is used in academic
> > design classes and so people just want to do endianness for academic
> > reasons"?
> >
> > Because I'd be more than happy to just draw a line in the sand and say
> > "New endianness problems are somebody ELSES problem", and tell people
> > to stop being silly.
> >
> > Let's not complicate things for no good reason. And there is *NO*
> > reason to add new endianness.
>
> We first tackled big-endian support on ARM32 nearly 15 years ago, and
> drawing on that experience, we saw value in doing the same work on RISC-V as
> a way for newer engineers to gain hands-on experience contributing in the
> open.
Getting new people going is great, but if you were around for that
one you also know just how little usage it saw over time -- the ARMv8
big endian enablment has been on (minimal) life support with just some
downstream usage in vendor kernels. Adding the burden for everybody to
maintain this work forever is the flip side of the coin here.
> Now we’re starting to see commercial cores on the horizon that will have the
> ability to be endian configured at run-time. For example, MIPS (the company
> not the ISA) has announced they will be producing cores with configurable
> endian (https://mips.com/products/hardware/i8500/).
MIPS has been doing some not so awesome things to the RISC-V architecture
in the last year or so. They've published patchsets that make it seem
like that they seem to have taken some old MIPS designs and done the
bare minimal conversion over to RISC-V, since they need their own weird
system peripherals and hooks. Again, with the burden for everybody to
maintain because their hardware engineers couldn't bother to develop a
full proper RISC-V core.
While I'm not happy with the lack of upstreaming from the (mostly
Chinese) SoC vendors, and we should be encouraging more of them to
contribute directly, MIPS seems to be making choices that might have
long term burden for all of us. So far the slope is slippery on the
system side, but needing to worry about BE support seems to be stepping
over the line for me without some obvious clear use cases that make sense.
> Note some of the patches we are proposing also make the code better, such as
> swapping .word for .insn.
>
> > RISC-V is enough of a mess with the millions of silly configuration
> > issues already. Don't make it even worse.
>
> This feels like the price you pay for making a flexible and free ecosystem
> to build cores. There is no single authority making you use every feature
> that might be specified (although Ubuntu's choice to move forward with RVA32
> for future is a current pain for anyone who already has purchased hardware).
Just because the ecosystem is flexible, doesn't mean you need to encourage
and support everything that gets built.
> See initial reply for comment on MIPS. We also don't think this a huge
> change and given most projects we worked through had few (if any) issues
> with building big endian, we thought it was worth having an attempt at this.
To me, it's not about the initial effort but about the (forever) work of
keeping it going without regressions. Now everybody will need BE CI, etc.
> > Tell people to just talk to their therapists instead. That's *much*
> > more productive.
>
>
> Thanks, but that isn't helpful and is just making the kernel look more
> toxic. I am however going to wear the "I got ranted at by Linus and
> survived" tag with pride.
Hey Ben -- you posted a *RFC* of the patches in December 2024. I replied
to those. So did Palmer. With exactly these concerns. Did we get a
response from you? Nope.
So, seems like Linus has better success being impolite. That's a bummer.
For the RFC thread, see https://lore.kernel.org/all/Z2XLS2HX2KqBJW6U@chonkvm.lixom.net/
-Olof
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL] RISC-V updates for v6.18-rc1
2025-10-02 15:06 ` Olof Johansson
@ 2025-10-02 15:22 ` Ben Dooks
2025-10-07 23:43 ` Maciej W. Rozycki
1 sibling, 0 replies; 16+ messages in thread
From: Ben Dooks @ 2025-10-02 15:22 UTC (permalink / raw)
To: Olof Johansson; +Cc: Linus Torvalds, Paul Walmsley, linux-riscv, linux-kernel
On 02/10/2025 16:06, Olof Johansson wrote:
> On Thu, Oct 02, 2025 at 01:48:47PM +0100, Ben Dooks wrote:
>> On 30/09/2025 17:04, Linus Torvalds wrote:
>>> On Tue, 30 Sept 2025 at 00:25, Ben Dooks <ben.dooks@codethink.co.uk> wrote:
>>>>
>>>> Is there any chance some of the big-endian work we did is getting in
>>>> for this round?
>>>
>>> Oh Christ. Is somebody seriously working on BE support in 2025?
>>>
>>> WHY?
>>>
>>> Seriously, that sounds like just *stupid*. Is there some actual real
>>> reason for this, or is it more of the "RISC-V is used in academic
>>> design classes and so people just want to do endianness for academic
>>> reasons"?
>>>
>>> Because I'd be more than happy to just draw a line in the sand and say
>>> "New endianness problems are somebody ELSES problem", and tell people
>>> to stop being silly.
>>>
>>> Let's not complicate things for no good reason. And there is *NO*
>>> reason to add new endianness.
>>
>> We first tackled big-endian support on ARM32 nearly 15 years ago, and
>> drawing on that experience, we saw value in doing the same work on RISC-V as
>> a way for newer engineers to gain hands-on experience contributing in the
>> open.
>
> Getting new people going is great, but if you were around for that
> one you also know just how little usage it saw over time -- the ARMv8
> big endian enablment has been on (minimal) life support with just some
> downstream usage in vendor kernels. Adding the burden for everybody to
> maintain this work forever is the flip side of the coin here.
>
>> Now we’re starting to see commercial cores on the horizon that will have the
>> ability to be endian configured at run-time. For example, MIPS (the company
>> not the ISA) has announced they will be producing cores with configurable
>> endian (https://mips.com/products/hardware/i8500/).
>
> MIPS has been doing some not so awesome things to the RISC-V architecture
> in the last year or so. They've published patchsets that make it seem
> like that they seem to have taken some old MIPS designs and done the
> bare minimal conversion over to RISC-V, since they need their own weird
> system peripherals and hooks. Again, with the burden for everybody to
> maintain because their hardware engineers couldn't bother to develop a
> full proper RISC-V core.
>
> While I'm not happy with the lack of upstreaming from the (mostly
> Chinese) SoC vendors, and we should be encouraging more of them to
> contribute directly, MIPS seems to be making choices that might have
> long term burden for all of us. So far the slope is slippery on the
> system side, but needing to worry about BE support seems to be stepping
> over the line for me without some obvious clear use cases that make sense.
>
>> Note some of the patches we are proposing also make the code better, such as
>> swapping .word for .insn.
>>
>>> RISC-V is enough of a mess with the millions of silly configuration
>>> issues already. Don't make it even worse.
>>
>> This feels like the price you pay for making a flexible and free ecosystem
>> to build cores. There is no single authority making you use every feature
>> that might be specified (although Ubuntu's choice to move forward with RVA32
>> for future is a current pain for anyone who already has purchased hardware).
>
> Just because the ecosystem is flexible, doesn't mean you need to encourage
> and support everything that gets built.
>
>> See initial reply for comment on MIPS. We also don't think this a huge
>> change and given most projects we worked through had few (if any) issues
>> with building big endian, we thought it was worth having an attempt at this.
>
> To me, it's not about the initial effort but about the (forever) work of
> keeping it going without regressions. Now everybody will need BE CI, etc.
>
>>> Tell people to just talk to their therapists instead. That's *much*
>>> more productive.
>>
>>
>> Thanks, but that isn't helpful and is just making the kernel look more
>> toxic. I am however going to wear the "I got ranted at by Linus and
>> survived" tag with pride.
>
> Hey Ben -- you posted a *RFC* of the patches in December 2024. I replied
> to those. So did Palmer. With exactly these concerns. Did we get a
> response from you? Nope.
>
> So, seems like Linus has better success being impolite. That's a bummer.
>
> For the RFC thread, see https://lore.kernel.org/all/Z2XLS2HX2KqBJW6U@chonkvm.lixom.net/
Sorry, didn't see that and would have replied if I had.
--
Ben Dooks http://www.codethink.co.uk/
Senior Engineer Codethink - Providing Genius
https://www.codethink.co.uk/privacy.html
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL] RISC-V updates for v6.18-rc1
2025-10-02 12:48 ` Ben Dooks
2025-10-02 15:06 ` Olof Johansson
@ 2025-10-02 18:08 ` Theodore Ts'o
1 sibling, 0 replies; 16+ messages in thread
From: Theodore Ts'o @ 2025-10-02 18:08 UTC (permalink / raw)
To: Ben Dooks; +Cc: Linus Torvalds, Paul Walmsley, linux-riscv, linux-kernel
On Thu, Oct 02, 2025 at 01:48:47PM +0100, Ben Dooks wrote:
>
> We first tackled big-endian support on ARM32 nearly 15 years ago, and
> drawing on that experience, we saw value in doing the same work on RISC-V as
> a way for newer engineers to gain hands-on experience contributing in the
> open.
Given the cost to the Linux kernel ecosystem as a whole, is giving
newer engineers "practice" really worth it? I'm not convinced it is.
> > RISC-V is enough of a mess with the millions of silly configuration
> > issues already. Don't make it even worse.
>
> This feels like the price you pay for making a flexible and free ecosystem
> to build cores.
Just because the RISC-V ecosystem wants to have a flexible ecosystem
doesn't mean that Linux kernel ecosystem is obliged to be just as
flexible, no?
- Ted
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL] RISC-V updates for v6.18-rc1
2025-10-01 18:33 ` Eric Biggers
@ 2025-10-03 1:45 ` Yury Norov
0 siblings, 0 replies; 16+ messages in thread
From: Yury Norov @ 2025-10-03 1:45 UTC (permalink / raw)
To: Eric Biggers
Cc: Linus Torvalds, Ben Dooks, Paul Walmsley, linux-riscv,
linux-kernel
On Wed, Oct 01, 2025 at 11:33:21AM -0700, Eric Biggers wrote:
> On Tue, Sep 30, 2025 at 04:53:24PM -0700, Linus Torvalds wrote:
> > On Tue, 30 Sept 2025 at 09:04, Linus Torvalds
> > <torvalds@linux-foundation.org> wrote:
> > >
> > > Oh Christ. Is somebody seriously working on BE support in 2025?
> >
> > Ok, I just googled this, and I am putting my foot down:
> >
> > WE ARE NOT PREEMPTIVELY SUPPORTING BIG-ENDIAN ON RISC-V
> >
> > The documented "reasoning" for that craziness is too stupid for words,
> > but since riscv.org did put it in words, I'll just quote those words
> > here:
> >
> > "There are still applications where the way data is stored matters,
> > such as the protocols that move data across the Internet, which are
> > defined as big-endian. So when a little-endian system needs to inspect
> > or modify a network packet, it has to swap the big-endian values to
> > little-endian and back, a process that can take as many as 10-20
> > instructions on a RISC-V target which doesn’t implement the Zbb
> > extension"
> >
> > In other words, it is suggesting that RISC-V add a big-endian mode due to
> >
> > (a) internet protocols - where byte swapping is not an issue
> >
> > (b) using "some RISC-V implementations don't do the existing Zbb
> > extension" as an excuse
> >
> > This is plain insanity. First off, even if byte swapping was a real
> > cost for networking - it's not, the real costs tend to be all in
> > memory subsystems - just implement the damn Zbb extension.
> >
> > Don't go "we're too incompetent to implement Zbb, so we're now asking
> > that EVERYBODY ELSE feel the pain of a much *worse* extension and
> > fragmenting RISC-V further".
> >
> > I'm hoping this is some April fools joke, but that page is dated
> > "March 10, 2025". Close, but not close enough.
> >
> > This is the kind of silly stuff that just makes RISC-V look bad.
> >
> > Ben - I'm afraid that that page has "further reading" pointing to codethink.
> >
> > I see some CONFIG_CPU_BIG_ENDIAN has already made it in, but this
> > needs to stop.
> >
> > The mainline kernel is for mainline development. Not for random
> > experiments that make the world a worse place.
> >
> > And yes, we're open source, and that very much means that anybody is
> > more than welcome to try to prove me wrong.
> >
> > If it turns out that BE RISC-V becomes a real thing that is relevant
> > and actually finds a place in the RISC-V ecosystem, then _of_course_
> > we should support it at that point in the mainline kernel.
> >
> > But I really do think that it actually makes RISC-V only worse, and
> > that we should *not* actively help the fragmentation.
>
> +1. Please, let's not do big endian RISC-V kernels :(
>
> This mistake was made for arm64, it's finally getting fixed.
> See https://lore.kernel.org/r/20250919184025.15416-1-will@kernel.org/
> Let's not make the same mistake again.
>
> And as someone who works on optimized crypto and CRC code, the arm64 big
> endian kernel support has always been really problematic. It's rarely
> tested, and code that produces incorrect outputs on arm64 big endian
> regularly gets committed and released. It sometimes gets fixed, but not
> always; currently the arm64 SM3 and SM4 code produces incorrect outputs
> on big endian in mainline. (I don't really care enough to fix it, TBH.)
>
> I recently added arm64 big endian to my own testing matrix. But I look
> forward to dropping that, as well as *not* having to start testing on
> RISC-V big endian too...
>
> Of course, that's just one example from my own experience. There's a
> lot more that CONFIG_CPU_BIG_ENDIAN creates problems for.
+2. I maintain bitops, and I routinely have to take endianess into
account.
I just realized that I didn't run BE kernels for at least 3 years, and
didn't ask my contributors to do it for even more. The last BE-related
fix for bitops I can recall is dated back to 2020:
81c4f4d924d5d009 ("lib: fix bitmap_parse() on 64-bit big endian archs").
Nobody ever reported BE bugs for the new code.
Maintenance burden is not just a word. Things are getting really tricky
when you have to keep BE compatibility in mind. And it's a special
torture to run an old arm or sparc VM in BE-32 against modern kernels.
But what really important is that dropping BE support will make codebase
overall cleaner and better.
Thanks,
Yury
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL] RISC-V updates for v6.18-rc1
2025-10-02 15:06 ` Olof Johansson
2025-10-02 15:22 ` Ben Dooks
@ 2025-10-07 23:43 ` Maciej W. Rozycki
2025-10-20 23:31 ` Paul Walmsley
1 sibling, 1 reply; 16+ messages in thread
From: Maciej W. Rozycki @ 2025-10-07 23:43 UTC (permalink / raw)
To: Olof Johansson
Cc: Ben Dooks, Linus Torvalds, Paul Walmsley, linux-riscv,
linux-kernel
On Thu, 2 Oct 2025, Olof Johansson wrote:
> > Now we’re starting to see commercial cores on the horizon that will have the
> > ability to be endian configured at run-time. For example, MIPS (the company
> > not the ISA) has announced they will be producing cores with configurable
> > endian (https://mips.com/products/hardware/i8500/).
>
> MIPS has been doing some not so awesome things to the RISC-V architecture
> in the last year or so. They've published patchsets that make it seem
> like that they seem to have taken some old MIPS designs and done the
> bare minimal conversion over to RISC-V, since they need their own weird
> system peripherals and hooks. Again, with the burden for everybody to
> maintain because their hardware engineers couldn't bother to develop a
> full proper RISC-V core.
This is obviously a false image. The most recent MIPS ISAs, such as the
microMIPSr6 or the nanoMIPS architecture, and consequently implementations
were absolutely RISC-V-like, with branch delay slots removed, conditional
moves replaced with conditional selects, floating-point condition codes
removed in favour to setting a general register, PC-relative instructions
added and overall being a variable-length compressed instruction set, up
to the point for some company engineers to become disgruntled with the ISA
"losing the MIPS spirit." So it's not that they can't be bothered to make
a full proper RISC-V core, surely they can.
The thing is based on my experience I'm fairly sure it's all just driven
by company customers, which have their legacy MIPS code base or whatever
and want to switch with minimum effort. And for a hardware company to
support a customer it's obviously easier to tweak hardware rather than
software.
NB I doubt it's about peripherals: dropping a different CPU into an
existing system is nothing new and does not require the ISAs involved to
be remotely similar to each other; cf. VAX vs Alpha for example.
> While I'm not happy with the lack of upstreaming from the (mostly
> Chinese) SoC vendors, and we should be encouraging more of them to
> contribute directly, MIPS seems to be making choices that might have
> long term burden for all of us. So far the slope is slippery on the
> system side, but needing to worry about BE support seems to be stepping
> over the line for me without some obvious clear use cases that make sense.
Whether we're going to accept things dumped onto us is another matter.
There's plenty of code downstream that hasn't made it here, and going back
to my examples, we've never got microMIPSr6 support in Linux even though
it used to live downstream, and attempts continue being made to get this
stuff upstreamed across the board. We may or may not choose to accept
bits that make our life tougher, and there have been precedents across
free software, such as the RS6000/PowerPC GCC backend maintainer refusing
to take changes adding support for the VLE instruction set.
FYI and FWIW,
Maciej
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL] RISC-V updates for v6.18-rc1
2025-09-29 8:00 [GIT PULL] RISC-V updates for v6.18-rc1 Paul Walmsley
2025-09-30 2:54 ` pr-tracker-bot
2025-09-30 7:25 ` Ben Dooks
@ 2025-10-11 8:38 ` Yao Zi
2 siblings, 0 replies; 16+ messages in thread
From: Yao Zi @ 2025-10-11 8:38 UTC (permalink / raw)
To: Paul Walmsley, torvalds
Cc: linux-riscv, linux-kernel, Palmer Dabbelt, Han Gao
Hi Paul, Palmer,
On Mon, Sep 29, 2025 at 02:00:17AM -0600, Paul Walmsley wrote:
> Linus,
>
> The following changes since commit a03ee11b8f850bd008226c6d392da24163dfb56e:
>
> riscv: Fix sparse warning about different address spaces (2025-09-05 15:33:52 -0600)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux tags/riscv-for-linus-6.18-mw1
>
> for you to fetch changes up to 0b0ca959d20689fece038954bbf1d7b14c0b11c3:
>
> riscv: errata: Fix the PAUSE Opcode for MIPS P8700 (2025-09-19 10:33:56 -0600)
...
> Guo Ren (Alibaba DAMO Academy) (1):
> riscv: Move vendor errata definitions to new header
As already noted by Han Gao[1], it seems the second patch of series
"riscv: errata: Add ERRATA_THEAD_WRITE_ONCE fixup"[2] is included in the
pull request for 6.17-rc1, but not this one for 6.18-rc1. Is this
expected?
Best regards,
Yao Zi
[1]: https://lore.kernel.org/all/CAAT7Ki9_Vm0+v9RHpa2w-Bg3agJy2Tp4d6+tcPJ=M7XX3GV-7Q@mail.gmail.com/
[2]: https://lore.kernel.org/all/20250713155321.2064856-1-guoren@kernel.org/
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [GIT PULL] RISC-V updates for v6.18-rc1
2025-10-07 23:43 ` Maciej W. Rozycki
@ 2025-10-20 23:31 ` Paul Walmsley
0 siblings, 0 replies; 16+ messages in thread
From: Paul Walmsley @ 2025-10-20 23:31 UTC (permalink / raw)
To: Maciej W. Rozycki
Cc: Olof Johansson, Ben Dooks, Linus Torvalds, Paul Walmsley,
linux-riscv, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 2945 bytes --]
On Wed, 8 Oct 2025, Maciej W. Rozycki wrote:
> On Thu, 2 Oct 2025, Olof Johansson wrote:
>
> > > Now we’re starting to see commercial cores on the horizon that will have the
> > > ability to be endian configured at run-time. For example, MIPS (the company
> > > not the ISA) has announced they will be producing cores with configurable
> > > endian (https://mips.com/products/hardware/i8500/).
> >
> > MIPS has been doing some not so awesome things to the RISC-V architecture
> > in the last year or so. They've published patchsets that make it seem
> > like that they seem to have taken some old MIPS designs and done the
> > bare minimal conversion over to RISC-V, since they need their own weird
> > system peripherals and hooks. Again, with the burden for everybody to
> > maintain because their hardware engineers couldn't bother to develop a
> > full proper RISC-V core.
>
> This is obviously a false image. The most recent MIPS ISAs, such as the
> microMIPSr6 or the nanoMIPS architecture, and consequently implementations
> were absolutely RISC-V-like, with branch delay slots removed, conditional
> moves replaced with conditional selects, floating-point condition codes
> removed in favour to setting a general register, PC-relative instructions
> added and overall being a variable-length compressed instruction set, up
> to the point for some company engineers to become disgruntled with the ISA
> "losing the MIPS spirit." So it's not that they can't be bothered to make
> a full proper RISC-V core, surely they can.
Olof is probably referring to support for extensions like Xmipsexectl:
https://lore.kernel.org/linux-riscv/20250724-p8700-pause-v5-0-a6cbbe1c3412@htecgroup.com/
https://mips.com/wp-content/uploads/2025/06/P8700_Programmers_Reference_Manual_Rev1.84_5-31-2025.pdf
Xmipsexectl is annoying for at least two reasons:
1. it is a non-conforming RISC-V extension, stepping on existing
standardized base RISC-V ISA opcode space; and
2. it brings over new barrier operations straight from the MIPS
instruction set, rather than just using the standard RISC-V fences
Doing things like this runs additional ecosystem fragmentation risk, which
impacts all of us, for little apparent gain. Nevertheless we took these
patches because their extension includes a custom PAUSE instruction
variant, and it's understandable that MIPS might have finalized their
design before Zihintpause.
I hope Xmipsexectl doesn't survive past P8700, and that we never see
kernel patches to use those leftover MIPS barrier instructions.
> NB I doubt it's about peripherals: dropping a different CPU into an
> existing system is nothing new and does not require the ISAs involved to
> be remotely similar to each other; cf. VAX vs Alpha for example.
This one isn't a hypothetical example either; see:
https://lore.kernel.org/linux-riscv/20250924-riscv-time-mmio-v6-2-9c6158a14b37@htecgroup.com/
- Paul
[-- Attachment #2: Type: text/plain, Size: 161 bytes --]
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2025-10-20 23:32 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-29 8:00 [GIT PULL] RISC-V updates for v6.18-rc1 Paul Walmsley
2025-09-30 2:54 ` pr-tracker-bot
2025-09-30 7:25 ` Ben Dooks
2025-09-30 16:04 ` Linus Torvalds
2025-09-30 23:53 ` Linus Torvalds
2025-10-01 18:33 ` Eric Biggers
2025-10-03 1:45 ` Yury Norov
2025-10-01 19:02 ` Conor Dooley
2025-10-01 19:39 ` Linus Torvalds
2025-10-02 12:48 ` Ben Dooks
2025-10-02 15:06 ` Olof Johansson
2025-10-02 15:22 ` Ben Dooks
2025-10-07 23:43 ` Maciej W. Rozycki
2025-10-20 23:31 ` Paul Walmsley
2025-10-02 18:08 ` Theodore Ts'o
2025-10-11 8:38 ` Yao Zi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).