Skip to main content

TODO: create a quickstart that covers

  • Members vs Insiders
  • Basics of RISC-V Instruciton Set
  • Explain how to get started (point to QUEMU /SPIKE / other simulator getting started guides)
  • Concept of Profiles
  • Concept of extensions

The first place to start with RISC-V is the Introduciton to RISC-V course on EdX. Start here to learn the basics of RISC-V.

Introduction

This document is intended to give a member’s overview of the RISC-V technical organizations. The intended audience is both for new members as well as a reference for existing members.

A lot of this information is scattered throughout different places in the RISC-V community. We will point to other relevant documents as appropriate.

If you have suggestions on how to improve this document, find information in the document that is incomplete or broken, or simply have an unanswered question, please either post a comment in the working draft document or submit a “General Request” per the directions in the “Requesting Help from the RISC-V Staff” section.

Organizational Tools & Accounts

RISC-V information can be organized into these key tools:

  1. Linux Foundation tools
  2. Portal
  3. Wiki
  4. Technical Calendar
  5. GitHub
  6. Google Drive

Each is detailed more in the following subsections.

Linux Foundation Tools (LFX)​

An ever increasing number of tools used by RISC-V are hosted out of the Linux Foundation. Thus, members who will be actively engaged in development and/or leading groups at RISC-V are encouraged to ensure that they have an LFX id.

To request one, visit the LFX Tools website at https://lfx.linuxfoundation.org/, click on “Create LFX Profile”. On the Individual Dashboard, follow the “Create an account” link, complete the information, and click on the blue “Create Account” button.

If you already have an LF id, you should login and review your information at https://openprofile.dev/. In particular visit these pages and review/update information as needed:

RISC-V Portal​

The RISC-V Portal (“mailing lists” or “communities”) in Groups.IO: https://lists.riscv.org. While these lists are publicly viewable, only RISC-V members can contribute.

When you joined RISC-V as an individual member or your company joined, you received access to the Members only mailing lists at https://lists.riscv.org/groups.

If your company is a RISC-V member, you can request a portal id by sending an email to info@riscv.org from your company email, asking for an id.

Once you have received your id, update it with your GitHub ID and your LFX id. Following these steps:

  1. Click on this link: https://lists.riscv.org/g/main/editprofile
  2. Login if needed
  3. Scroll to the bottom of the page
  4. Add the appropriate information in the LFX Email field.
    Note: there is not any data validation on these fields. So, please ensure you provide your Linux Foundation (LFX) email address (not username) in this field. See this video for a quick overview.
  5. Add the appropriate information in the Github ID field.
    Note: there is not any data validation on these fields. So, please use the Github (short) id in this field. See this video for a quick overview.
  6. Submit using the blue "Update Group Profile" button.

RISC-V primarily uses Groups.IO as a list server for its various groups. Join groups, review mail archives, and participate in conversations.

To locate groups, visit the RISC-V main page and follow the directions. All RISC-V groups are also directly available at https://lists.riscv.org/g/main/subgroups. To join any group, find the home page for the group and click on the +Join This Group button at the bottom of the page. To leave a group, go to the group main page, select “Subscription” in the left pane, scroll to the bottom of the page, and click on the Leave Group button in the lower right corner.

For more information on which groups to join, please see the “Getting involved” section later in this document.

RISC-V Wiki​

The RISC-V Wiki (sometimes called the “Technical Wiki”): wiki.riscv.org

This area can be accessed from the RISC-V Website (riscv.org) using the “Technical” menu item labeled “Technical Wiki”. It will bring you to the main RISC-V wiki page.

A community favorite is the Technical Overview wiki page (formerly “Important Links” or just the “URL Table”). Bookmark this page and when searching for something, start at this page. If you ever want to or need to contribute to the RISC-V wiki, use the “Requesting Help from the RISC-V Staff” section and submit a “General Request” asking for wiki access.

A RISC-V “Org Chart” can be found at the “Technical Organization” item. This interactive slide deck can be used to explore the various RISC-V groups, find Chair and Vice-chairs, and locate the community mailing list for each group. Click on boxes or use the arrows in the lower right to navigate the groups.

While the RISC-V wiki access is generally public, to get edit capability in the RISC-V wiki, perform the following steps:

  1. If you do not have an LFX (Linux Foundation) id, see the Linux Foundation Tools (LFX) section above for directions on how to request one.

  2. Add your LFX id email address to your RISC-V Portal account with the following steps:

    1. Click on this link: https://lists.riscv.org/g/main/editprofile
    2. Login if needed
    3. Scroll to the bottom of the page
    4. Add the appropriate information in the LFX Email field.
      Note: there is not any data validation on these fields. So, please ensure you provide your Linux Foundation (LFX) email address (not username) in this field. See this video for a quick overview.
    5. Submit using the blue "Update Group Profile" button.
  3. Request RISC-V wiki edit right by following the directions in the “Requesting Help from the RISC-V Staff” section to submit a “General Request” asking for wiki access.

Technical Calendar​

The RISC-V Technical Calendar: https://tech.riscv.org/calendar/

Chairs and vice-chairs are encouraged to keep their group meetings on this calendar. There is no invite management tooling for the groups. Meetings can be added to the calendar by simply inviting tech.meetings@riscv.org to the meeting invite. Additional information on meetings, including timezone-centric links to the calendar, can be found on the Calendars, Meetings, and Zoom wiki page.

GitHub​

The RISC-V GitHub overview: GitHub Repo Map wiki page

RISC-V has multiple GitHub “organizations” under which their repositories are created. These are described in greater detail and referenced via link on the wiki page.

All RISC-V specifications and software repositories are generally accessible. However, contributions may be constrained to members only. If you plan on contributing to a RISC-V GitHub repository or plan to be group Chair or Vice-Chair, the following steps should be taken:

  1. If possible, enable your RISC-V portal (Groups.IO) email as one of your public email addresses in your GitHub profile.

    To manage your GitHub emails, sign-in and then navigate to: https://github.com/settings/emails. On this page, you can use the “Add email address” field to add your RISC-V portal email address and verify that “Keep my email addresses private” is not checked.

  2. Add GitHub id in your RISC-V Portal account with the following steps:

    1. Click on this link: https://lists.riscv.org/g/main/editprofile
    2. Login if needed
    3. Scroll to the bottom of the page
    4. Add the appropriate information in the Github ID field.
      Note: there is not any data validation on these fields. So, please use the Github (short) id in this field. See this video for a quick overview.
    5. Submit using the blue "Update Group Profile" button.

Google Drive​

The Google Drive RISC-V entry point: for riscv members folder

While GitHub is preferred as a storage and organization tool, some activities such as spreadsheets and document collaboration are best performed with Google web-based tooling. Therefore, RISC-V has opted to anchor all of their documentation in the for riscv members folder. Generally speaking, read access to the documents should be available.

When you request your RISC-V Portal access (step #3 above), the email address you use will be automatically added to a Google group within 3 working days to provide additional access to the RISC-V documents in Google Drive. If your email is not Google, you can enable it by following the directions found in the “Use an existing email address” section of the “Create a Google Account” article from Google.

To test that your membership has been set up correctly, the Member Authorization Test Document has been created for posting of comments by RISC-V members. Directions for how to use the document and what to do if you cannot post comments are contained in the document. Similar documents also exist for the following groups – Tech Chairs Authorization Test Document, Committee Chairs Authorization Test Document, TSC Authorization Test Document.

If for some reason your email address cannot be enabled or if you have any problems enabling it, please submit a “General Request” in the “Requesting Help from the RISC-V Staff” section asking for assistance with Google Drive access.

Key folders of interest:

  1. for riscv members - the top-level folder into which all RISC-V members content is placed
  2. Workgroups - contains folders which serve as the Google drive work space for working groups
  3. Policies - holds all RISC-V policies organized into folder for their adoption state, e.g. approved or being written & pre-review
  4. Status - organizes the various documents of for our specifications/work products
  5. Information - collects many foundational documents key to the organization, including this one, the RISC-V Overview Presentation, the RISC-V Technical Organization, and the Specification Lifecycle and Milestone Definitions

Additional places for information​

There are additional, generally open (publicly viewable and publicly postable), mailing lists which are hosted in Google Groups and serve a variety of public purposes. Most of these lists (e.g. sw-dev and isa-dev) can be found via the RISC-V Technical Forums webpage.

Principles

Our Code of Conduct is published and maintained on the RISC-V website at:
https://riscv.org/community/community-code-of-conduct/.

Read more about its importance and other core ideas in the RISC-V Guiding Principles document.

Governing Group Structure and Responsibilities

The RISC-V organization is detailed in the RISC-V Technical Organization deck.

Most processes and procedures have been documented with policies documents. All policies can be found from the RISC-V Technical Policies wiki page.

Commonly used policies include:

The step-by-step directions of how to define groups and perform specification development are detailed in the RISC-V Lifecycle Guide.

Operations

Leadership​

RISC-V CTO: Mark Himelstein, RISC-V
TSC Chair: Greg Favor, Ventana Micro Systems
TSC Vice-Chair: Philipp Tomsich, VRULL GmbH

Full TSC membership is found in the TSC Voting Members slide of the RISC-V Technical Organization deck.

Organizational Meetings​

The following meetings and general cadence are core to RISC-V technical organization:

  • Technical Steering Committee (sometimes called “CCM” for “Committee Chairs Meeting”): generally meets 1 time per month on the first Wednesday morning of the month, U.S. time. This meeting includes all representatives from TSC-level member organizations, community elected TSC representatives (2 from the Strategic and 1 from the Community/Individual members), as well as the Chairs and Vice-chairs of HCs and ICs. However, not all CCM attendees are voting members.
  • Technical Committee Chairs Coordination meeting for Committee Chairs and Vice-chairs: meets the third Wednesday morning of the month, U.S. time. The attendees include chairs of the HCs and ICs. This meeting focuses on execution only, no policy.
  • Technical Chairs (and Vice-chairs) meeting (“Tech Chairs”): generally meets on the second and fourth Wednesday mornings of the month, U.S. time, and is composed of all Chairs and Vice-chairs of HCs, ICs, SIGs, and TGs.

These meetings are generally invite-only based upon membership level and group leadership. If you need an invite, please reach out for assistance per the directions in the “Requesting Help from the RISC-V Staff” section.

Getting Started as a Chair or Vice-chair of a RISC-V Group​

If you have assumed a leadership role for one of the RISC-V groups, let us begin by thanking you. The RISC-V community is a “contributor culture” that only accomplishes work when members contribute.

The first thing chairs need to understand is that RISC-V has chairs and vice-chairs only. There is no concept of co-chairs. Secondly, group leaders should be aware of whether their “acting” or fully confirmed (approved). Acting chairs are used at the beginning of a group’s existence and are working to get the group and the chairs functional and officially established (approved). More information on this process can be found in the “Group Lifecycle” section of the RISC-V Lifecycle Guide.

To prepare for your leadership position, please ensure to complete these steps:

  1. Obtain access to all tools in the “Organizational Tools & Accounts” section above.
  2. Follow the additional guidance in the “Getting involved” section.
  3. Ensure you have the appropriate Video Conferencing application setup on your workspace and that you have the host information for your group. For new groups, see the “Requesting Help from the RISC-V Staff” section to obtain new credentials. For existing groups, your predecessor or other chair may have this information and can share it.
  4. Before your first meeting, familiarize yourself with the information on RISC-V Technical Meetings wiki page for a primer on meeting leadership.
  5. Locate your group resources: RISC-V Group in the Portal (Groups.IO), Group meeting time (tech.meeting calendar), GitHub Group repo (in riscv-admin), and your Google Drive Workgroup folder. If you are an “acting” chair, these will be requested during the group creation (see “Steps to Complete the Pending Milestone” section of the RISC-V Lifecycle Guide). If you are a confirmed chair, your predecessor or other chair can help you locate these.
  6. If you are a confirmed chair (not “acting”), complete these few additional items:
    1. Ensure that you have a meeting invite to the appropriate meeting(s) listed above in the “Organizational Meetings” section. You should at least have an invite to the Technical Chairs meeting.
    2. Work with the RISC-V Staff to ensure that you can vote using the tool described in the “Voting” section. This typically involves the RISC-V Staff sending you a request to vote in a test election. They will initiate this action when ready.

Video Conferencing​

RISC-V uses Zoom for group meetings. Links are provided in the calendar entries. The details for using hosting meetings with Zoom are on the “Using Zoom“ section of the "Calendars, Meetings, and Zoom" wiki page.

Voting​

When groups need to hold a formal vote, the OpaVote (https://www.opavote.com/) tool is used. Voters receive an email with a link to their voting credentials. Status of votes can be found on the Vote Status wiki page.

Requesting Help from the RISC-V Staff​

Sometimes called, “The TPMs”, the RISC-V Staff has a couple of Technical Program Managers who facilitate RISC-V operations.

To request assistance from them, create issues in the help.riscv.org GitHub repository. Forms are provided for common requests.

Unique requests can be submitted via a “General Request” issue.

If you need access to the (private) Help repository or prefer email, you may send an email to help@riscv.org.

Specifications

RISC-V is fundamentally a specification-driven organization. As such, the process by which specifications are proposed, developed, and ratified are critical to organizational success.

All specifications (ISA or Non-ISA) have a common lifecycle and milestones. Please see the RISC-V Lifecycle Guide for details.

Every specification being developed has two key documents: its Ratification plan document (located in one of the 1 - Ratification Plans folders) and its support Acceptance Criteria spreadsheet (located in one of the 2 - Status Checklists folders). These documents are created from templates, based on their document classification (ISA or Non-ISA), completed by the document owners (TG Chair and Vice-chair), and managed by the document owners and RISC-V TPMs throughout the specification development process.

During development, specification status is up-leveled from a specification’s Ratification Plan document and Acceptance Criteria into a dashboard under the Specification Status wiki page based upon specification type and milestone.

Within the Task Group (TG), the specifications are developed in an open-source-like, community-driven way, involving GitHub tooling for source and issues, Asciidoctor and plugins for building the documentation, meetings for in-person coordination and larger discussions, and mailing lists for asynchronous work. Each group forms their own norms and culture within the guidance of the RISC-V policies and structure.

To learn more about the technical aspects of developing documentation in Asciidoctor, see the Authoring and Editing RISC-V Specifications document (or “Docs Dev Guide”).

For additional guidelines around documentation, see the (still draft version) RISC-V Technical Documentation Policy document.

Software

The RISC-V software initiatives are anchored in the Software Horizontal Committee (HC):

Almost every ISA extension impacts some piece of the software ecosystem. Details about the RISC-V Software Development Lifecycle (and Milestones) exist in the Specification Lifecycle and Milestone Definitions slides.

Getting involved

To contribute to a specification or a technical area, find the most appropriate group in Groups.IO, join it, follow the discussions on the mailing list, attend the meetings, and volunteer to help.

To engage in the development of an active specification, visit the Specification Status wiki page, locate the Task Group or Committee which owns the specification, and join the group via the links provided.

If you are a member of the RISC-V Technical community, you should join the following groups:

Additional groups of interest are the ISA and Horizontal Committees (ICs and HCs). These groups are:

To find a list of all existing groups, see the RISC-V Portal page for “Sub-groups” at https://lists.riscv.org/g/main/subgroups.

To find the list of all existing and proposed groups, review the “Technical Org Chart” link on the main RISC-V wiki page (https://wiki.riscv.org/).

To propose a new group, see 2. Group Lifecycle section of the RISC-V Lifecycle Guide. If needed, see the “Requesting Help from the RISC-V Staff” section for guidance on how to get more assistance.

To propose a new specification or topic,see 3. Specification Lifecycle section of the RISC-V Lifecycle Guide. See the “Requesting Help from the RISC-V Staff” section for guidance on how to request more assistance.

To find an answer to a question, here’s how we suggest you find your answer:

  1. Review a list of common questions in the Frequently Asked Questions (FAQs) section of the RISC-V Lifecycle Guide.
  2. For questions about the ISA or compilers and software, post to the external mailing lists isa-dev and sw-dev.
  3. Check out the working groups (see Information Organization above) to see if the topic is already discussed. Join and ask!
  4. Join the RISC-V Slack workspace at https://join.slack.com/t/risc-v-international/signup and post to either the #random or #tech-general channels.
  5. If all else fails, see the “Requesting Help from the RISC-V Staff” section for guidance on how to get more assistance.

Nomenclature

Understanding the following terms and definitions will help navigating the RISC-V development community.

The following sections define some of the most common terms. Additional terms can be found in the Appendix of the RISC-V Lifecycle Guide.

Extensions​

Extensions are a group of instructions and state (registers, CSRs) and the behaviors for those instructions and state. The extension is defined by a specification (or chapter in a specification) and a formal model in SAIL. Extensions are governed and approved by the TSC and ratified by the Board of Directors and extensions along with their corresponding task groups are governed by their committee and their charter is governed and approved by TSC.

An extension has a name. The name is governed, allocated and approved by the Unprivileged IC and appears in a chapter in the Unprivileged specification. Extension names may be individual alphabetic letters or may begin with a [ZSM]<string> for RISC-V extensions and X<string> for custom vendor specific non-standard extensions.

Ratification Packages​

Extensions are grouped together into a set which is documented in a single specification and ratified at the same time. This group is the Ratification Package or “Rat Pack” for short.

Profiles​

Profiles are a collection of extensions which is more broad than the Ratification Package. The source repository for the RISC-V Profiles specification is https://github.com/riscv/riscv-profiles.

Platforms​

Platforms define a set of requirements (including Profiles and other hardware and software standards) for interoperability between software and hardware and among all software distributions. The source repository for the RISC-V Platform specification is https://github.com/riscv-admin/server-platform.