| .. 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. | |
| Patchwork | |
| --------- | |
| RISC-V has a patchwork instance, where the status of patches can be checked: | |
| https://patchwork.kernel.org/project/linux-riscv/list/ | |
| If your patch does not appear in the default view, the RISC-V maintainers have | |
| likely either requested changes, or expect it to be applied to another tree. | |
| Automation runs against this patchwork instance, building/testing patches as | |
| they arrive. The automation applies patches against the current HEAD of the | |
| RISC-V `for-next` and `fixes` branches, depending on whether the patch has been | |
| detected as a fix. Failing those, it will use the RISC-V `master` branch. | |
| The exact commit to which a series has been applied will be noted on patchwork. | |
| Patches for which any of the checks fail are unlikely to be applied and in most | |
| cases will need to be resubmitted. | |
| 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.) |