arch/riscv maintenance guidelines for developers

Overview

The RISC-V instruction set architecture is developed in the open:in-progress drafts are available for all to review and to experimentwith implementations. New module or extension drafts can changeduring the development process - sometimes in ways that areincompatible with previous drafts. This flexibility can present achallenge for RISC-V Linux maintenance. Linux maintainers disapproveof churn, and the Linux development process prefers well-reviewed andtested code over experimental code. We wish to extend these sameprinciples to the RISC-V-related code that will be accepted forinclusion in the kernel.

Submit Checklist Addendum

We’ll only accept patches for new modules or extensions if thespecifications for those modules or extensions are listed as being“Frozen” or “Ratified” by the RISC-V Foundation. (Developers may, ofcourse, maintain their own Linux kernel trees that contain code forany draft extensions that they wish.)

Additionally, the RISC-V specification allows implementors to createtheir own custom extensions. These custom extensions aren’t requiredto go through any review or ratification process by the RISC-VFoundation. To avoid the maintenance complexity and potentialperformance impact of adding kernel code for implementor-specificRISC-V extensions, we’ll only to accept patches for extensions thathave been officially frozen or ratified by the RISC-V Foundation.(Implementors, may, of course, maintain their own Linux kernel treescontaining code for any custom extensions that they wish.)