|  | .. SPDX-License-Identifier: GPL-2.0 | 
|  |  | 
|  | 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 experiment | 
|  | with implementations.  New module or extension drafts can change | 
|  | during the development process - sometimes in ways that are | 
|  | incompatible with previous drafts.  This flexibility can present a | 
|  | challenge for RISC-V Linux maintenance.  Linux maintainers disapprove | 
|  | of churn, and the Linux development process prefers well-reviewed and | 
|  | tested code over experimental code.  We wish to extend these same | 
|  | principles to the RISC-V-related code that will be accepted for | 
|  | inclusion in the kernel. | 
|  |  | 
|  | Submit Checklist Addendum | 
|  | ------------------------- | 
|  | We'll only accept patches for new modules or extensions if the | 
|  | specifications for those modules or extensions are listed as being | 
|  | unlikely to be incompatibly changed in the future.  For | 
|  | specifications from the RISC-V foundation this means "Frozen" or | 
|  | "Ratified", for the UEFI forum specifications this means a published | 
|  | ECR.  (Developers may, of course, maintain their own Linux kernel trees | 
|  | that contain code for any draft extensions that they wish.) | 
|  |  | 
|  | Additionally, the RISC-V specification allows implementers to create | 
|  | their own custom extensions.  These custom extensions aren't required | 
|  | to go through any review or ratification process by the RISC-V | 
|  | Foundation.  To avoid the maintenance complexity and potential | 
|  | performance impact of adding kernel code for implementor-specific | 
|  | RISC-V extensions, we'll only consider patches for extensions that either: | 
|  |  | 
|  | - Have been officially frozen or ratified by the RISC-V Foundation, or | 
|  | - Have been implemented in hardware that is widely available, per standard | 
|  | Linux practice. | 
|  |  | 
|  | (Implementers, may, of course, maintain their own Linux kernel trees containing | 
|  | code for any custom extensions that they wish.) |