Introduced in Linux 5.13 back in 2021 was eXecute In Place “XIP” support for RISC-V that allows for the kernel image to be executed from ROM. The intent is on allowing the kernel to run from non-volatile storage like NOR flash that is directly addressable by the CPU and to reduce RAM usage. But after RISC-V XIP support is broken for months at a time, the feature is now set to be retired from the mainline kernel.
Last year RISC-V XIP kernel support was restored after being broken for several Linux kernel versions. It was fixed up only to end up being in a broken state later in the year and is still broken on mainline. With broken RISC-V XIP kernel support persisting for months, it’s clear to the developers the functionality is not being well used or tested.
Nam Cao has authored a patch to just remove the RISC-V XIP support given its recurring broken state. The patch is queued up in RISC-V’s “for-next” Git branch and thus should be part of the upcoming Linux 7.1 merge window.
Nam Cao explained with that patch:
“XIP has a history of being broken for long periods of time. In 2023, it was broken for 18 months before getting fixed. In 2024 it was 4 months.
And now it is broken again since commit a44fb5722199 (“riscv: Add runtime constant support”), 10 months ago.
These are clear signs that XIP feature is not being used.
I occasionally looked after XIP, but mostly because I was bored and had nothing better to do.
Remove XIP support. Revert is possible if someone shows up complaining.”
Especially given RAM constraints in the industry these days, it’s a bit surprising RISC-V XIP wasn’t better leveraged, but alas it can be restored later on if people end up actually using it.
