There is an interesting tidbit in the comments of that Hack a Day post from Timothy Pearson:
Leaving aside for a second that it’s fairly easy to take any of the existing RISC-V soft cores and “upgrade” them to POWER (replace instruction decoder, add the small bits of missing functionality), POWER does have a practical lower core size, just as RISC-V has a practical upper core size (note I’m talking compatible chips here, not comparing two different RISC-V ISA versions/sets/whatever that would not be able to run the same binaries).
If the basic micro-architecture really is that portable between ISAs, what are the actual advantages between ISAs?
If you do something like that, take an originally RISC-V design, and then put a Power ISA front-end on it, how well will it handle code compiled/optimised for a more traditional Power chip?
It makes me wonder what part of porting — say x86 → Power — is optimisation for ISA, and what part is optimisation for micro-architecture…
I really should buckle down and force myself to read some compiler books/documentation/code.
you and me both i barely understand ofw and power isa riscv is a beast i need to read into. still alot to learn but the white papers on the 970mp and the g5 mainboard schematics are helping tons. i might wanna get a riscv fpga now to see what i can do
That sounds really interesting, but I am confused what exactly OpenBIOS is. The Wikipedia page makes it sound like an umbrella project for all the difference versions of IEEE 1275 firmware, and then lists a bunch of different projects, including OpenBIOS as one of them:
Project
Company
Open Firmware
Firmworks
SmartFirmware
CodeGen
OpenBOOT
Sun
OpenBIOS
community
SLOF
IBM
did they (OpenBIOS) take up code hosting for all the company projects, are they a code merge of all the other codebases?
Speaking of which, do we know which variant Apple used, or did they write their own OpenFirmware/IEEE 1275 firmware? With G5/PPC970 chips being made by IBM, I would guess SLOF, but earlier chips were from Motorola… Hmm…
If it is just an FPGA with a RISC-V softcore, you might be able to load the Power ISA Microwatt softcore as well:
openbios is open source firmware and it adds back what apple took away from the firmware on the powerpc’s they made. effectivelly makeing the machine a power 4.5 machine in my book (waiting on parts to test some functionality pcie storage boot) you could boot to other location but not load os from pcie apple prevented that you HAD to boot to the slow af sata1.5 drives.
apple used basically the same firmware but removed alot to not touch their xserve market cause that was going at the time the xserve g5 was a beast but limited due to heat having drive speed controls on the xserve was super fun. but i didnt learn much as the xserve was under powered for the goals of the machine its gone now many years ago. xserve mainboards had a much more open firmware that was more like sunmicrosystems then a apple power mac g5 firmware cause it was stripped im still learning about this so im explaining what i can. sorry about that
im mostly playing with this g5 untill i can afford a telos2 or better for more ideas i have
OpenBIOS, in short, is the booting firmware of openfirmware based machines. This includes modern POWER machines like ibm system i and p, TALOS machines (both on SLOF, or at least the ibm machines are), openfirmware on ppc macs, openbios on amiga one computers, openBOOT on sun machines, you get the point. All the commands are relatiwely the same. The only reason I know jack shit about ofw is from the manu’l that came with my SunBlade 2500.
Talos and other PowerNV (Power Non-Virtualized) machines don’t use SLOF - they instead use petitboot (a kexec based firmware that was initially written for the PS3). You still use SLOF when booting pseries virtual machines though.
Here’s the raw URL to bypass the weird supplyframe analytics garbage:
Regarding IEEE 1275-1994 (Open Firmware)
Yeah, I think I will just stick to calling it by the IEEE name to avoid ambiguity.
From the OpenBIOS website (confusingly domained at openfirmware.info), they mention,
there are several commercial implementations from SUN, Firmworks, CodeGen, Apple, IBM and others.
↑ Note how there is no link to the Apple IEEE 1275 implementation, so I guess theirs was proprietary?
@THEkitchenSINK, did you get a dump of the existing firmware before flashing your OpenBIOS replacement?
Also, it looks like OpenBIOS has a has mirrored (all? part?) of the IEEE spec on their site, linked from the IEEE 1275-1994 page:
Might be useful to you.
DeviceTree
I remember watching through one of the Stewart Smith talk/lectures linked earlier in the thread, and there was an offhanded remark about OpenPOWER firmware using “the normal DeviceTree we are all used to” or something to that effect. Now there is a separate DeviceTree specification with its own website:
but while it is partly based on the IEEE 1275 device tree, the version 0.1 (released 2016 May according to the GitHub note) says:
DTSpec is loosely related to the IEEE 1275 Open Firmware standard
…
Notable features of the IEEE 1275 specification that are omitted from the DTSpec include:
• Plug-in device drivers
• FCode
• The programmable Open Firmware user interface based on Forth
• FCode debugging
• Operating system debugging
taken from the “Relationship to IEEE™ 1275 and ePAPR” section of the 0.1 document
So this might be worth being aware of if you are working with both OpenPOWER and IEEE 1275 (Open Firmware) era machines.
Hmm, looks like ARM also uses DeviceTree, and it can work with both U-Boot and UEFI, neat.
Some parts of the DTSpec appear to be quite interchangeable with IEEE 1275 (Open Firmware):
FDT is to Open Firmware what DSDT is to ACPI. The FDT reuses Open Firmware’s established device tree layout. In fact, Linux PowerPC support uses the same codebase to support both Open Firmware and FDT platforms.
qt5-webkit now has working javascript on 32-bit ppc (as well as ppc64le, which always worked), though not on ppc64 (would need more debugging and changes)
webkit2gtk now has working javascript on all ppc systems (LE, BE, 32-bit, 64-bit)
i’m not gonna bother with fixing qt5-webkit further as it’s obsolete and has tons of vulnerabilities (it’s based on an ancient version of webkit with no sandboxing and so on); instead i’m gonna wait for the upcoming version which finally rebases on latest webkit upstream which besides other things changed the JS bytecode format, which enables 64-bit BE to work without any more patching (32-bit BE still needs patching, but it’s small) - even on 32-bit systems, your best bet right now is using a gtkwebkit based browser like midori or epiphany as gtkwebkit is actually secure and sandboxed
all of this means, modern web browsers on 32-bit, except firefox which I managed to coerce into building (crosscompiled from a ppc64le host, native build crashes the rust compiler) but it crashes on start
i contributed better AltiVec/VSX detection bits into Mesa (which do not involve SIGILL handling like before, instead it uses the ELF auxiliary vector) which means it’s now possible to sanely debug 3D programs in gdb without the detection getting in the way; I backported the patch into Void
got the packages tested on wii u last week and it works
wayland is also confirmed working now, on all variants (weston at least)
scroll wheel in qt5 programs on big endian systems is now fixed
other assorted fixes
also
on a side note @ mesa and 3D on G5:
nouveau sure is broken, even on an ancient potato like geforce 6600
llvmpipe is only part broken when trying to render games (distant geometry does not show, and the gun is red for whatever reason) - funnily it’s faster than the actual gpu on anything that’s not an empty map with no geometry
Graphical ISOs are now shipped for all 6 ppc* flavors, the same ones as official Void for x86 (Xfce, MATE, Cinnamon, LXDE, LXQt, Enlightenment, in addition to the basic text ISO). If you use one of those, a graphical desktop will automatically boot.
For G5s (as well as the infamous Windtunnel G4 Dual “Mirrored Drive Doors”), the initramfs now by default includes a hook that will automatically load the necessary thermal/fan control kernel modules, so you’ll only go deaf for a brief period of time between GRUB and when the initramfs loads, instead of for the whole duration of using the live image.
installer now offers an option to wipe the partitioning info from the target drive first before executing pmac-fdisk on it on Macs. This is to deal with the issue that pmac-fdisk does not properly wipe that upon partition table reinitialization, which confuses the system and makes it present you with the old partitions even after a new partition table has been created.
Question about void. Would this run on a PS3 with OtherOS enabled?
I ask this because I do not have any source media for PPC Linux builds on my favorite distros. ppc64el will not work on the Cell BE and it is an inorder chip. The PowerPC and ppc64 architecture repos have been deleted. The only ones that I know exist are RHEL for PPC and Gentoo has PPC/64 port. T2 Linux is a thing and works, but I was not really trying to run a package manager-less distro.
Being this is my thread, CELL is absolutely on topic. Its a POWER form factor, and a strong competitor in the space.
As the PS3 has been openly cracked and is easy to get at the hardware now, I have yet to really attempt this sorta thing, but I have a deep desire to get void on it. Another Void-PPC user, foxlet fox (@FoxletFox on twitter) has been after void linux on consoles for a good bit. In fact he got void running on a wii, which I REALLY want to do but I haven’t had time to dedicate anything to that project. At least not recently.
Currently I don’t think anything is completely compatible. However, the CELL is a 64 bit (?) processor, so ppc64 may work. Otherwise its a matter of cracking a machine, installing some linux of some sort, and either porting in sys till theres enough to make something out of, or making it however foxlet does. I’m not console wizard for non-handhelds, so I don’t really know.
Its possible, is the point. Go on the Void PPC github and submit a feature request!
As I’ve been working with the machines more often recently I have found more and more of a need for different tools on by ppc machines, at least in osx. Now I do realize that the osx software market for ppc is going to be microscopic in comparison, but I need to know what software(s) I should port to it to have tools available for users. I want to give the same treatment to ubuntu mate and try to fix that absolute garbage pile of a mess.
I’m going to start with a usb image writing tool and work my way up, but what other tools would be good to have? I’d love to make .app’s and make them available on a repository and list that repo here.
Also, I’m going to completely redo the op soon in the same style as the amdgpu info and news thread so osx, void, and bsd users have a quick reference at the top, and move the op on top of my next following post.