riscv64: archive qualification page

Contents

  1. riscv64: archive qualification page
    1. Questions for new architectures
      1. Are machines available to buy for the general public?
      2. Is full source available?
      3. Is this architecture related to other architectures already in the archive, or that also should be considered, either now or in the future? Can the related architectures be supported in a single architecture (eg, with a biarch arrangement)?
      4. Are there 3 or more developers (or NMs) actively maintaining the port? Who are they?
      5. What sort of architecture is this? Desktop/workstation? Mainframe/supercomputer? Embedded? Something else?
      6. Does it have any users? If a desktop system, are there Debian admins who run Debian systems on the arch? If an embedded system are there real systems shipping that a Debian port will be useful for? If a mainframe system are there real systems with many users that a Debian port will be useful for? Who are they?
      7. Is there kernel and toolchain support? At what level? Are the latest versions supported, or are legacy releases required for compatibility with some hardware?
      8. Has the ABI stabilised, or are there major ABI changes coming up? Is the ABI stable enough to ensure users will be able just "apt-get dist-upgrade" from one version to the next?
      9. How do you install a system? (URL to a HOWTO)
      10. Has a buildd been setup? How much of the archive has been built (count by source package, builds of old versions are fine for this case)?
      11. What hardware is potentially available as a fast buildd?
      12. Is there an example box developers can login to to see if it works?
      13. It's also worth considering whether the port has any special requirements. If the port is mainly for embedded systems, it may be appropriate to have different installation or release arrangements compared to normal desktop/workstation architectures.

Questions for new architectures

Are machines available to buy for the general public?

Yes, there has been a shortage in 2020-2022 for the well-known issues, but there are multiple RISC-V board available for purchase since long ago, and expected to increase in the near term:

Is full source available?

Yes. The full stack is open source:

No, RISC-V is a new architecture, similar to ARM, but uses a different, open-source instruction set.

Are there 3 or more developers (or NMs) actively maintaining the port? Who are they?

Aurelien Jarno (DD), Manuel A. Fernandez Montecelo (DD), Adrian Bunk (DD), Adam Borowski (DD) (from the release qualification data), BO YU (Debian maintainer)

What sort of architecture is this? Desktop/workstation? Mainframe/supercomputer? Embedded? Something else?

RISC-V architecture is a scalable architecture. Current use will be embedded single board computing, edge computing, etc.

Does it have any users? If a desktop system, are there Debian admins who run Debian systems on the arch? If an embedded system are there real systems shipping that a Debian port will be useful for? If a mainframe system are there real systems with many users that a Debian port will be useful for? Who are they?

There are users of the existing boards installing software the current Debian port on them (and has been for a few years now), poping up on IRC channels or mailing lists with questions, others trying to set-up CI systems for their companies to deliver software on this platform (for which not having stable or testing is a bit of a pain), etc.

This is not just for real users, but also for upstream projects that are waiting for riscv64 to become stable, like cross build for Chromium.

Is there kernel and toolchain support? At what level? Are the latest versions supported, or are legacy releases required for compatibility with some hardware?

Yes. The architecture support started with these versions, which are recent:

Has the ABI stabilised, or are there major ABI changes coming up? Is the ABI stable enough to ensure users will be able just "apt-get dist-upgrade" from one version to the next?

Yes. The ABI is stable, and supported with the GNU toolchain (binutils, glibc, GCC).

It is possible to apt-get dist-upgrade in 2022 from initial images dated back to 2018 (solving expired keys and similar ABI-unrelated issues).

The ABI document is available at https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf

How do you install a system? (URL to a HOWTO)

Currently, running debootstrap from another port/architecture and running debootstrap second-stage from the port.

https://wiki.debian.org/RISC-V#Creating_a_riscv64_chroot

Hardware-specific install documentation available too:

https://wiki.debian.org/RISC-V#Hardware

Has a buildd been setup? How much of the archive has been built (count by source package, builds of old versions are fine for this case)?

sid/experimental package are being built, with 80~90% constantly since the bootstrap in 2018, and constantly over 95% in 2023/03.

This is with normal builds, checks enabled and everything. There have been no special tricks other than the use of "unreleased" now and then to untie dependencies or solve problems like tests not passing temporarily, but the number of such uses has been quite low.

All kind of packages are being built, with the exception of special things like Chromium or Libreoffice, some science packages, and very marginal --at least in terms of Debian and build-dependencies-- programming environments (FreePascal, Mono). Other top-level packages like Firefox are close to being built, and there are WebKit-based browsers available for example.

There are typically less than 500 of each "Auto-Not-For-Us", "BD-Uninstallable" and "Build-Attempted" (as of this writing, the exact numbers are 415, 205 and 173 respectively).

What hardware is potentially available as a fast buildd?

SiFive's HiFive Unmatched are not exactly speed demons, but with 5~10 boards it should keep up with the archive, possible with bottlenecks during rebootstrapping due to the huge size of the archive by now.

It was doing fine with ~5 hardware boards equivalent to HiFive Unmatched for a few years (plus some supporting VMs for peaks like Haskell transitions), but with the growth and increasing demands of large packages (frequent uploads of several versions of GCC, LLVM, Linux, etc, it started to struggle and have longer queues).

StarFive VisionFive2 is probably a bit faster and becoming available during these weeks, but without full Linux kernel support upstream for now.

Future SiFive's HiFive designs which should be coming in 2023 are expected to gain full support in Linux kernel soon, and be much faster than the older generation of HiFive boards.

(If need be we could use other hardware or VMs, but we're only counting explicitly with those than can be easily administered by DSA without much hassle, have full Linux support, etc... so only HiFive Unmatched at this point).

Is there an example box developers can login to to see if it works?

debian-riscv64-porterbox-01

It's also worth considering whether the port has any special requirements. If the port is mainly for embedded systems, it may be appropriate to have different installation or release arrangements compared to normal desktop/workstation architectures.

Nothing special, in principle.