SFS/SFFS v3.x Linux Distributions

As you know NLnet has been funding Libre-SOC for five years now. The strategy has always been to work towards the mass-volume power-efficient high-computation market of smartbooks netbooks chromebooks Edge IOT Industrial SBCs.

We also have no intention and never had any intention of Licensing a separate GPU nor a separate VPU nor a separate Crypto-Accelerator Hard Macro nor a separate AI Accelerator Hard Macro, nor anything other than dramaticaly uprating the Power ISA itself to meet the heavy mathematical and algorithmic computational requirements of these markets. This gives Power ISA the opportunity to extend well beyond its present server-only remit.

These markets require Linux and Android, and they require significant power efficiency due to being battery-operated.

As these markets are price-sensitive given that the volumes are 100 million units and above it has been absolutely essential that we cut out everything that will hinder us by imposing both unnecessary silicon costs and unnecessary software development costs.

Illustrating this clearly: as the developers of IBM Microwatt are keenly aware, adding even an incomplete fraction of the 750 v3.0 VSX instructions resulted in a whopping FIFTY PERCENT increase in the amount of FPGA resources required, pushing the possibility of fitting into Lattice ECP5-85k and Digilent Arty A7-100t for LibreBMC firmly to zero. This is quite embarrassing as it means that a Power ISA based BMC Card for IBM’s own POWER9/POWER10 systems is not feasible if to boot a RADIX MMU also requires that the Softcore implement 1,000 instructions (750 of which are VSX)

By contrast, almost 3 years ago, Joel Shenki successfully demonstrated a v3.0 SFS-built Microwatt buildroot with linux-5.7 booting on a full RADIX MMU version of Microwatt implementing only the ~150 instructions of v3.0 SFS. This also helped push forward some patches to glibc6 by Tulio to remove “#ifdef IBMPOWER9” with “#ifdef VSX” (and we hope in future, #ifdef MMA instead of #ifdef IBMPOWER10).

We have therefore been preparing Linux-Capable v3.0 SFS/SFFS GNU/Linux Distributions, getting through the early bootstrap phase, which lower-resourced systems (Microwatt, A2I and A2O if upgraded to v3.0 SFFS, Libre-SOC) will be more than capable of running.


So far we have Debian, Gentoo, and PowerEL all at an early stage. Gentoo turns out to be easy. Debian had issues as not all early bootstrap packages obey “APPEND” to CFLAGs. PowerEL ran into issues with libc6 that were solved one time but are challenging to reproduce.

Our next goal is to continue with additional NLnet Grants to push these distributions forward, also looking at Android. There have been multiple efforts to port Android to PPC: they have all been taken offline. The last-remaining version of Android for PPC still accessible on the internet is over 12 years old: Android 2.3 (!)

The Debian bootstrap to SFFS may now continue “native” (not cross-compiling) by manually merging in ppc64le packages then recompiling those packages one by one to replace them with ppc64le-sffs equivalents.

Gentoo which has been set up from day one to be cross-compilable many decades ago will be much more straightforward to continue.

Our ultimate goal here is to re-introduce a similar dynamic software runtime detection of hardware capability that Intel has had for many years, the 4 levels roughly corresponding to “Intel Atom” at the lowest level and “Intel XEON” at the highest.

The SFFS GNU/Linux distributions are therefore an intermediate step towards that ultimate goal.

Great Work! Thanks for your passion and effort!

Great work and let us continue to create the momentum in OpenPOWER

appreciated Roberto. although funded by NLnet and I am the Lead of Libre-SOC the actual work has been done by Toshaan for PowerEL, and Sadoon Albader for Gentoo and Debian. also Steven Munroe was crucially instrumental in advising me behind the scenes on the suitability of the existing Power ISA ELF ABI and its optionality for VRs and hardfloat, thus ensuring that we did not make any silly mistakes, unnecessarily inventing a new SFFS-only ABI.

This turned out to be:

`FLAGS="-mcpu=power9 -mno-altivec -mno-vsx -mno-crypto -mno-htm -mlong-double-64"`

which if you look closely at Joel Shenki’s microwatt-buildroot (used for the microwatt-linux-5.7 SFFS-3.0 demo on an Arty-A7-100t) you find pretty much the exact same flags. GitHub - shenki/linux-on-microwatt: Linux on Microwatt

I believe Toshaan was able to do both LE-v3.0-SFFS and BE-v3.0-SFFS ports of PowerEL (aka RHEL without the Trademark), however we ran out of time under this NLnet Grant to do both BE and LE, choosing to do ppc64lesffs as a priority.

given that the instructions on how to reproduce the build process are 100% available online you should be able to track them and do a QUORL/NXP ppc64/be/sffs bootstrap reasonably easily.

thank you Ganesan, really appreciated. yes it is very important to the success and acceptance of OpenPOWER beyond IBM that the barrier to adoption of Power ISA by individuals and organisations be significantly lowered.

150 SFS or 214 SFFS instructions, when the equivalents in RISC-V are around 30 and 96 respectively, makes that feasible where 1,000 instructions definitely does not. having GNU/Linux Distributions that work on Microwatt and Libre-SOC’s Softcores is strategically extremely important and needs all the assistance from OpenPOWER Members including IBM that they can provide.