1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
|
<!-- 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 >
</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 ??? 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 IBM Fix Central 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 <file_name.img>
</screen></informalexample>
</para></listitem>
<listitem><para>
Update the firmware by running the following command.
<informalexample><screen>
$update_flash -f <file_name.img>
</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-get</command> tool on Debian-based distros.
Like so:
<informalexample><screen>
# apt-get 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 <slof_file> </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 <directory-where-the-iso-is>
# mkdir ./iso
# sudo mount -o loop ibm-powerkvm-*-ppc64-service-*.iso ./iso
# cp -a ./iso/* <path-to-wwwroot>
</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 <your-system> {
hardware ethernet <system macaddr>
fixed-address <system ip>;
option host-name "<system hostname>";
option conf-file "<powerkvm/petitboot.conf>";
}
</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>
-->
|