<!-- retain these comments for translator revision tracking -->
<!-- $Id$ -->


<!--
  <sect2 arch="powerpc" id="invoking-openfirmware">
  <title>Invoking OpenFirmware</title>
<para>

There is normally no need to set up the BIOS (called OpenFirmware) on
&arch-title; systems. PReP and CHRP are equipped with OpenFirmware,
but unfortunately, the means you use to invoke it vary from
manufacturer to manufacturer.  You'll have to consult the hardware
documentation which came with your machine.

</para><para>

On &arch-title; Macintoshes, you invoke OpenFirmware with
<keycombo><keycap>Command (cloverleaf/Apple)</keycap><keycap>Option</keycap><keycap>o</keycap><keycap>f</keycap></keycombo>
while booting.  Generally it will check for these keystrokes after the
chime, but the exact timing varies from model to model.  See
<ulink url="&url-netbsd-powerpc-faq;"></ulink> for more hints.

</para><para>

The OpenFirmware prompt looks like this:

<informalexample><screen>
ok
0 &gt;
</screen></informalexample>

Note that on older model &arch-title; Macs, the default and sometimes
hardwired I/O for OpenFirmware user interaction is through the serial
(modem) port. If you invoke OpenFirmware on one of these machines, you
will just see a black screen. In that case, a terminal program running
on another computer, connected to the modem port, is needed to
interact with OpenFirmware.

</para><para>

The OpenFirmware on OldWorld Beige G3 machines, OF versions 2.0f1
and 2.4, is broken. These machines will most likely not be able to
boot from the hard drive unless the firmware is patched. A firmware
patch is included in the <application>System Disk 2.3.1</application>
utility, available from Apple at
<ulink url="ftp://ftp.apple.com/developer/macosxserver/utilities/SystemDisk2.3.1.smi.bin"></ulink>.
After unpacking the utility in MacOS, and launching it, select the
<guibutton>Save</guibutton> button to have the firmware patches
installed to nvram.

</para>
  </sect2>
-->

  <sect2 arch="ppc64el;powerpc" id="update-firmware">
  <title>How to update bare metal ppc64el firmware</title>
<para>

This is an excerpt from
<ulink url="&url-ibm-powerkvm;">IBM PowerKVM on IBM POWER8</ulink>.

</para><para>

Open Power Abstraction Layer (OPAL) is the system firmware in the stack
of POWER processor-based server.

</para><para>

There may be instances when the user might have to upgrade the Power
Systems firmware to a more recent level to acquire new features or
additional support for devices.

</para><para>

Make sure that the following requirements are met:

<itemizedlist>
<listitem><para>
    an OS to be running on the system;
</para></listitem><listitem><para>
    the .img file of the OPAL level that the user needs to update to;
</para></listitem><listitem><para>
    the machine isn't under HMC control.
</para></listitem>
</itemizedlist>
</para><para>

Power Systems has two sides of flash to boot firmware from, namely
permanent and temporary. This provides a way to test firmware updates on
the temporary side of the flash before committing the tested changes to
the permanent side, thereby committing the new updates.

</para><para>

Perform the following steps for the update:

<orderedlist>
<listitem><para>
    Save the level of the existing firmware before really updating. In
    ASM, in the system menu, click <command>Service Aids -&gt; Service Processor
    Command Line</command>, and run the following command:
<informalexample><screen>
     cupdcmd -f
</screen></informalexample>
</para></listitem><listitem><para>
    Download the .img file of the level of firmware to be updated to a
    location in the host filesystem. Refer to
    <ulink url="&url-ibm-fixcentral;">IBM Fix Central</ulink> for downloading
    the image file.
</para><para>
    Verify the image downloaded by running the following command and
    save the output.
<informalexample><screen>
    $update_flash -v -f &lt;file_name.img&gt;
</screen></informalexample>
</para></listitem>
<listitem><para>
    Update the firmware by running the following command.
<informalexample><screen>
    $update_flash -f &lt;file_name.img&gt;
</screen></informalexample>
</para>

<note><para>

 <itemizedlist>
 <listitem><para>
    The command reboots the system and therefore, sessions if any,
    would be lost.
 </para></listitem><listitem><para>
    Do not reboot or switch off the system until it is back.
 </para></listitem>
 </itemizedlist>

</para></note>

</listitem><listitem><para>
    Verify the updated firmware level of the temporary side of the flash
    as in step 1. 
</para></listitem><listitem><para>
    In case the update has to be reverted, the user can do so by running
    this command:
<informalexample><screen>
    $update_flash -r
</screen></informalexample>
    Rejection would reject only the temporary side of the flash. 
    Therefore, the new level should be committed to the permanent side only
    after thorough testing of the new firmware.
</para><para>
    The new updated level can be committed to the permanent side of the
    flash by running the following command.
<informalexample><screen>
    $update_flash -c
</screen></informalexample>
</para></listitem>
</orderedlist>

</para>
  </sect2>

  <sect2 arch="ppc64el;powerpc"> 
  <title>Updating KVM guest firmware (SLOF)</title>
<para>

Slimline Open Firmware (SLOF) is an implementation of the IEEE 1275 
standard. 
It can be used as partition firmware for pSeries machines running on
QEMU or KVM.

</para><para>

The package qemu-slof is, in fact, a dependency of package 
qemu-system-ppc (which also provides the virtual package 
qemu-system-ppc64), and can be installed or updated via 
<command>apt</command> tool on Debian-based distros.
Like so:

<informalexample><screen>
# apt install qemu-slof
</screen></informalexample>

SLOF can also be installed into rpm-based distribution systems, given 
the proper repository or rpm package. Additionally, the upstream source 
code is available at
<ulink url="http://github.com/leilihh/SLOF"></ulink>.

</para><para>

Thus, one can use a different SLOF file rather than the default, when
running <command>qemu-system</command>, by adding the command line
argument <userinput>-bios &lt;slof_file&gt; </userinput> when starting
qemu.

</para>
  </sect2>

  <sect2 arch="ppc64el"> <title>Updating PowerKVM hypervisor</title>
    <sect3 arch="ppc64el"> <title>Instructions for Netboot installation</title>
<para>

You will need a DHCP/TFTP (BOOTP) server, as well as a web server.
After downloading ibm-powerkvm-*-ppc64-service-*.iso, mount loop it and
unpack it into some directory within your HTTP server www root 
structure (say wwwroot):

<informalexample><screen>
# cd &lt;directory-where-the-iso-is&gt;
# mkdir ./iso
# sudo mount -o loop ibm-powerkvm-*-ppc64-service-*.iso ./iso
# cp -a ./iso/* &lt;path-to-wwwroot&gt;
</screen></informalexample>

Create the petitboot.conf file in a directory under your tftproot, say
/tftproot/powerkvm, with the following contents:

<informalexample><screen>
label PowerKVM Automated Install
kernel http://YOUR-SERVER-IP/SOME-PATH-TO-wwwroot/ppc/ppc64/vmlinuz
initrd http://YOUR-SERVER-IP/SOME-PATH-TO-wwwroot/ppc/ppc64/initrd.img
append root=live:http://YOUR-SERVER-IP/SOME-PATH-TO-wwwroot/LiveOS/squashfs.img repo=http://YOUR-SERVER-IP/SOME-PATH-TO-wwwroot/packages rd.dm=0 rd.md=0 console=hvc0 console=tty0
</screen></informalexample>

Editing your dhcpd.conf, set this directive at the beginning:

<informalexample><screen>
option conf-file code 209 = text;
</screen></informalexample>

Add the system directive:

<informalexample><screen>
host &lt;your-system&gt; {
    hardware ethernet &lt;system macaddr&gt;
    fixed-address &lt;system ip&gt;;
    option host-name "&lt;system hostname&gt;";
    option conf-file "&lt;powerkvm/petitboot.conf&gt;";
 }
</screen></informalexample>

Reboot the dhcp server.

</para><para>

Boot your PowerLinux machine.

</para><para>

There should be the following option at petitboot (select it):

<informalexample><screen>
"Power KVM Automated Install" 
</screen></informalexample>

The installer menu should appear automatically.

</para>
    </sect3>

    <sect3 arch="ppc64el"> <title>Instructions for DVD</title>
<para>
Boot the ISO ibm-powerkvm-*-ppc64-service-*.iso (either burn a DVD or
make it virtual if using QEMU) and simply wait for the boot.
</para><para>
There should be the following option at petitboot (select it):
<informalexample><screen>
"POWERKVM_LIVECD" 
</screen></informalexample>
The installer menu should appear automatically.
</para>
    </sect3>
  </sect2>

<!-- commented out for now, since there is no content
  <sect2 arch="ppc64el"> <title>Updating PowerVM hypervisor</title>
<para>
FIXME: add some useful content here
</para>
  </sect2>
-->
