2022.02.15
Geert is an experienced embedded Linux Kernel Hacker and has contributed to open source and Linux world in years. Talking about RISC-V, he has a lot to say:
1. What is your contribution on RISC-V in 2021?
I did miscellaneous work to improve and/or fix running Linux on the RISC-V hardware platforms I have access to[*].
The largest part was co-developing the clock and reset controller drivers for the StarFive JH7100 SoC, which will be included in the next release of the Linux kernel (v5.17).
[*] Canaan/Kendryte K210 on SiPEED MAiX BiT,
LiteX/VexRiscv on OrangeCrab FPGA board,
StarFive JH7100 on BeagleV StarLight Beta,
Microsemi/Microchip PolarFire Soc on Icicle kit.
2. How do you think of RISC-V ecosystem growth?
While I am mostly interested in CPU cores that can run Linux, I find it amazing how RISC-V is making inroads at the full computing range, from small microcontrollers to high-performance multi-core platforms.
I'm also intrigued by the various RISC-V softcores people develop as a hobby, each with a different focus. So I think RISC-V has a bright future.
While the core ISA was well-thought out and seems to work well, I am a bit concerned about architectural ambiguities that popped up in early SoCs, and about premature hardware based on non-ratified standards for e.g. extensions.
However, that may not be that hampering, as in the end, Linux is about the users. So if a hardware platform becomes sufficiently widespread, upstream Linux support will follow.
Of course, RISC-V being an open ISA does not mean that all RISC-V hardware is open. The CPU cores are only a small part of an SoC, and adding full Linux support for an SoC also requires access to detailed documentation of the other parts, and how everything is integrated.
3. What suggestion would you make to new open-source developers?
Do not give up too soon! In a world driven by social media and short attention spans, people want it all, and they want it now. But learning to understand a project (both the technical and social parts) does take time.
I do realize that joining a project can be intimidating at first, especially for large and complex projects like the Linux kernel. But whatever your skill sets are, I think you can always find an area to contribute.
So find yourself a FLOSS project that you think is interesting, or that you are already using, and start by reporting things you notice that are wrong, or try fixing them yourself. This can range from documenting a feature that's not well-documented, over fixing broken code, to improving an existing or adding a new feature that can be useful not only for yourself, but also for others.
Personally, I find it very rewarding when a patch set I wrote over a larger period of time, and which went over multiple iterations, is finally accepted upstream. I hope you will find the same!