patch-acceptance.rst 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. .. SPDX-License-Identifier: GPL-2.0
  2. arch/riscv maintenance guidelines for developers
  3. ================================================
  4. Overview
  5. --------
  6. The RISC-V instruction set architecture is developed in the open:
  7. in-progress drafts are available for all to review and to experiment
  8. with implementations. New module or extension drafts can change
  9. during the development process - sometimes in ways that are
  10. incompatible with previous drafts. This flexibility can present a
  11. challenge for RISC-V Linux maintenance. Linux maintainers disapprove
  12. of churn, and the Linux development process prefers well-reviewed and
  13. tested code over experimental code. We wish to extend these same
  14. principles to the RISC-V-related code that will be accepted for
  15. inclusion in the kernel.
  16. Patchwork
  17. ---------
  18. RISC-V has a patchwork instance, where the status of patches can be checked:
  19. https://patchwork.kernel.org/project/linux-riscv/list/
  20. If your patch does not appear in the default view, the RISC-V maintainers have
  21. likely either requested changes, or expect it to be applied to another tree.
  22. Automation runs against this patchwork instance, building/testing patches as
  23. they arrive. The automation applies patches against the current HEAD of the
  24. RISC-V `for-next` and `fixes` branches, depending on whether the patch has been
  25. detected as a fix. Failing those, it will use the RISC-V `master` branch.
  26. The exact commit to which a series has been applied will be noted on patchwork.
  27. Patches for which any of the checks fail are unlikely to be applied and in most
  28. cases will need to be resubmitted.
  29. Submit Checklist Addendum
  30. -------------------------
  31. We'll only accept patches for new modules or extensions if the
  32. specifications for those modules or extensions are listed as being
  33. unlikely to be incompatibly changed in the future. For
  34. specifications from the RISC-V foundation this means "Frozen" or
  35. "Ratified", for the UEFI forum specifications this means a published
  36. ECR. (Developers may, of course, maintain their own Linux kernel trees
  37. that contain code for any draft extensions that they wish.)
  38. Additionally, the RISC-V specification allows implementers to create
  39. their own custom extensions. These custom extensions aren't required
  40. to go through any review or ratification process by the RISC-V
  41. Foundation. To avoid the maintenance complexity and potential
  42. performance impact of adding kernel code for implementor-specific
  43. RISC-V extensions, we'll only consider patches for extensions that either:
  44. - Have been officially frozen or ratified by the RISC-V Foundation, or
  45. - Have been implemented in hardware that is widely available, per standard
  46. Linux practice.
  47. (Implementers, may, of course, maintain their own Linux kernel trees containing
  48. code for any custom extensions that they wish.)