Open Sourced BIOS Helps Power8 Compete With X86
IBM is deadly serious about fostering an open ecosystem around the Power8 processor and its follow-ons, and has taken the next step in advancing its OpenPower cause by open sourcing the microcode that manages the boot sequence on the Power8 chips.
This may sound like a small thing, but it has important ramifications for IBM and the OpenPower Foundation partners who are making motherboards based on the Power8 processor. At the moment, this includes a single-socket board made by Tyan aimed at software developers and early system builders and a two-socket board made by Google for its own internal testing. Google has been testing IBM and homegrown Power8 systems since earlier this year, and both companies were showing off their Power8 boards at IBM's Impact2014 conference back in April. In February, EnterpriseTech reported that Google was testing homegrown Power8 systems and that the company's software engineers were working on the firmware for the system. It is not clear if Google's contributions – or those from any other company that is working on the firmware – are being made available yet as open source code.
The firmware that IBM has opened up is akin to the BIOS (short for Basic Input/Output System) in an X86 system and it is the piece of boot code that, among other things, allows the processor to link to its memory and peripherals and sets up the bootloader so it can load an operating system after testing the components in the system. Jim Wasko, director of the Linux Technology Center at IBM, says that the Power8 firmware is stored on flash memory, just like BIOS software is. The goal of the Systems Software working group within the OpenPower Foundation, which is a group that is open to the public, is to make a Power8 machine running Linux look as much like an X86 system running Linux as possible. The working group is steering the further development of the little endian versions of 64-bit Linuxes that are compatible with Power8 chips and order their bytes in the same way as X86 machines. (Prior Power chips were big endian and did not, and this created an incompatibility.) The group is also working on the Power8 variant of the KVM server virtualization hypervisor and on the firmware for the Power8 chip. The application development toolchain is being steered through the Application Software working group, which is also public. The Open Server Development Platform, Hardware Architecture, and Compliance working groups are all driven by members and are not open to the public. (You can learn more about the working groups here.)
IBM has opened up over 420,000 lines of Power8 firmware code under the auspices of the OpenPower Foundation, and you can see that code here on GitHub. The two main elements of the firmware are called hostboot, which is the hardware power-on and testing chunk of the code, and OPAL, which is short for the Open Power Abstraction Layer and which itself is comprised of three sub-components called skiboot, skiroot, and skirun. The skiboot component runs in the field service processor (FSP) of a Power8 system, which is akin to a baseboard management controller in X86 systems. Power8 systems have a hypervisor kernel up and running by default, called pHype, which in past and current systems loads the PowerVM hypervisor from IBM that in turn can have logical partitions running its own AIX or IBM i operating system or Linuxes from Red Hat and SUSE Linux.
IBM has always loaded up this hypervisor layer on Power machines because the assumption was that all commercial customers would want to consolidate workloads onto as few physical machines as possible and by doing it by default and showing the performance of machines with the hypervisor running, IBM was in effect absorbing the overhead of virtualization. Customers didn't have to think about it. But, IBM wants to chase supercomputing and financial trading markets with Power8 and later systems, and in these cases, such a heavyweight hypervisor is never going to be used because it adds latency and eats some of the CPU performance in the box.
And so, with OPAL, IBM is making the Power8 boot sequence look a bit more like an X86 boot sequence, where the BIOS loads on an X86 chip and the Linux operating system can reach right into the underlying iron and go. No more pHype booting, no more assuming there will be PowerVM or the lighter weight Integrated Virtualization Manager, a hypervisor and partition manager that is part of the Virtual I/O Server (VIOS) stack. For those of you not in the IBM know, VIOS is a baby AIX kernel that runs in a partition and acts as a hub for I/O device drivers that other logical partitions can talk to. It virtualizes all of the I/O in the system, is somewhat cranky, and imposes its own performance overhead, but it allows for IBM to make one device driver for VIOS and have AIX, IBM i, and Linux link to a device through VIOS instead of having to make three different drivers. (Many customers hate this and want native drivers.) PowerVM required an out-of-band virtualization manager, called the Hardware Management Controller, but the lighter IVM tool, which can only manage a few Linux partitions, does not.
Here is the real point of OPAL: It lets a Power8 system boot up and get straight into Linux and then KVM and OpenStack, just like an X86 machine does, and use Intelligent Platform Management Interface (IPMI) for out-of-band management. (IBM is working on a successor to OPAL called Sapphire, and it stands to reason that this will involve getting the functions now handled by the field services processor into the firmware itself, but Wasko was mum on the subject. This will be determined by the OpenPower Foundation, presumably, not just by IBM itself.)
"We have removed almost all of the things that made Power different and sometimes not easy," explains Wasko. "That means no HMC, no pHype, no VIOS, no PowerVM. We want people who buy X86 today to slide these in, hopefully by the rackfulls, and they just work like X86 machines."
Wasko is not naming names, but IBM is lining up customers in the HPC and financial services areas to participate in proofs of concept with Power8 systems running the leaner and meaner firmware on bare metal or on machines running the PowerKVM version of the KVM hypervisor. IBM will be talking about these use cases later this year.
With the Power8 firmware open sourced, now other motherboard makers might join the OpenPower effort and start making system boards.