Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

  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
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
.\"$NetBSD: hardware,v 1.49 2016/09/15 19:27:47 scole Exp $
.
Currently,
.Nx*M
requires the use of
.Tn "Open Firmware"
to boot.
Open Firmware is a command environment using the FORTH language.  The
.Nx
kernel uses Open Firmware to gather information about your system and to 
control some of your devices.  It is part of the boot ROMs in most
.Tn PowerPC Ns No -based
.Tn Macintosh
systems.
Until late 1996,
.Tn Apple
never intended to use Open Firmware for anything other than internal debugging and hardware support.
It was not intended to be used to boot an operating system.
This is why earlier machines have so much trouble with Open Firmware.
This also means that PowerMacs and clones that lack Open Firmware cannot boot
.Nx
on the \*M platform.
Most machines introduced by Apple and the clone-makers
after August 17, 1995 have Open Firmware and are supported.
.Pp
Apple made several revisions of this Open Firmware environment, and each has
various quirks and problems that we must work around.
The single hardest step of installing
.Nx*M
is to set up Open Firmware properly.
Open Firmware versions 1.0.5 and 2.0.x act similarly
and the same set of instructions applies to them.
Open Firmware version 2.4 is slightly different with regards to booting.
Open Firmware version 3 is altogether different, but easier to set up for 
.Nx .
.Pp
The minimal configuration requires 16 MB of RAM and 160 MB of disk space.
To install the entire system requires considerably more, plus space for the
swap partition (usually the RAM size, unless you've got a lot of RAM).
To use X, 32MB of RAM is required.
.Nx
with 16 MB of RAM is very slow.  Until you have around 32 MB of RAM,
getting more RAM is more important than getting a faster CPU.
.
.Ss2 Supported models
Find your model from the list below and take note of its Open Firmware
version:
.(tag 8n
.It Em "Open Firmware 1.0.5"
.Pp
.(bullet -compact
Apple PowerMacintosh (7200, 7300, 7500, 7600, 8500, 8600, 9500,
and 9600)
.It
Apple Workgroup Server 8550
.It
Power Computing (PowerCenter, PowerCenter Pro, PowerCurve,
PowerTower, PowerTower Pro, and PowerWave)
.It
UMAX (J700, S900)
.bullet)
.It Em "Open Firmware 1.1.22"
.Pp
.(bullet -compact
Apple Network Server (500 and 700)
.(Note
Users have reported that the
.Nx
kernel does not work well with the on-board MACE-based ethernet (the one
that requires an Apple AAUI dongle).
If your system does not have the Apple PCI Ethernet Card, you may need to
purchase and install another ethernet card in your Apple Network Server.
.Note)
.bullet)
.It Em "Open Firmware 2.0.x"
.Pp
.(bullet -compact
Apple PowerBook (2400, 3400, G3, and G3 Series)
.It
Apple PowerMacintosh/Performa (4400, 54xx, 5500, 6300/160, 6360, 6400, and
6500)
.It
Apple PowerMacintosh (G3
.Dq Beige
models with ATI RageII+: Desktop, Mini Tower, and All-in-One)
.It
APS Tech (M*Power 604e/200)
.It
Motorola StarMax (3000, 4000, 5000, and 5500)
.It
Power Computing (PowerBase)
.It
UMAX (Apus 2000, Apus 3000, C500, and C600)
.bullet)
.It Em "Open Firmware 2.4"
.Pp
.(bullet -compact
Apple PowerMacintosh (G3
.Dq Beige
models with ATI Rage Pro: Desktop, Mini Tower, and All-in-One)
.bullet)
.It Em "Open Firmware 3"
.Pp
.(bullet -compact
Apple original iBook, iBook SE, iBook (Dual USB), iBook (Late 2001),
iBook (16VRAM), iBook (Opaque 16 VRAM), iBook (32 VRAM), 
iBook (14.1 LCD 32 VRAM), and iBook G4
.It
Apple iMac; Bondi Blue (Rev A and Rev B, 233 MHz),
5 Flavors (Rev C and Rev D, 266 MHz and 333 MHz), iMac (Slot Loading),
iMac (Summer 2000), iMac (Early 2001), iMac (Summer 2001), and iMac (USB 2.0)
.It
Apple original eMac and eMac (ATI Graphics)
.It
Apple PowerBook (G3 Series (bronze keyboard) and G3 (FireWire))
.It
Apple PowerBook (G4 (Titanium), G4 (Gigabit Ethernet), G4 (DVI), 
G4 (12-inch), G4 (17-inch), G4 (12-inch DVI), PowerBook G4
(15-inch FW 800), PowerBook G4 (17-inch 1.33GHz/1.5GHz))
.It
Apple PowerMacintosh G3 (Blue and White)
.It
Apple PowerMacintosh (G4 (PCI), G4 (AGP), G4 (Gigabit Ethernet), G4
(Digital Audio), G4 (Quicksilver), G4 (Quicksilver 2002), 
G4 (Mirrored Drive Doors), G4 (FW 800), and G4 Cube)
.It
Apple Mac Mini G4 (1.25GHz/1.42GHz/1.5GHz)
.It
Apple original Xserve and Xserve (Slot Load)
.(Note
Some newer G4 models may not run at their full CPU speed, due to
the fact Open Firmware starts the CPU at a reduced frequency.
.Note)
.It
Apple iMac G5, PowerMacintosh G5, Xserve G5
.(Note
G5 models are supported as a 32-bit port in bridge mode only.
.Note)
.bullet)
.tag)
.
.Ss2 Unsupported models
.(bullet -compact -offset indent
Systems with a PowerPC microprocessor, but lacking Open Firmware
.(bullet -compact
Apple PowerBook (1400, 2300, and 5300)
.It
Apple PowerMacintosh/Performa (52xx, 53xx, 62xx, and 63xx
(except 6300/160 and 6360 which are supported))
.It
Apple PowerMacintosh/Performa (61xx, 71xx, and 81xx)
.It
PowerComputing (Power 100 and Power 120)
.bullet)
.It
Systems with broken Open Firmware (Twentieth Anniversary Macintosh)
.It
Systems with a Motorola 68k microprocessor (these systems are supported by
.Nx Ns /mac68k )
.It
Systems upgraded from any of the above (unless the motherboard is replaced as
part of the upgrade)
.bullet)
.
.Ss2 Supported devices
.(bullet -offset indent
CPU upgrades
.(bullet -compact
Only one CPU in a multiprocessor system is supported with the GENERIC kernel.
For the 601, only one CPU is supported with the GENERIC_601 kernel.
All CPUs (except the 601) are supported with the GENERIC.MP kernel.
.It
Most CPU upgrades are supported.
Some older models will not automatically enable the L2 and/or L3 caches on
a G3 or G4 processor.
See the FAQ entry
.Lk http://www.NetBSD.org/ports/macppc/faq.html#cpu-upgrade
.bullet)
.It
Ethernet
.(bullet -compact
On-board 79C950-based MACE Ethernet interface
.Pq Em mc
.It
On-board bmac Ethernet interface
.Pq Em bm
.It
On-board gmac Ethernet interface
.Pq Em gem
.It
Apple PCI Ethernet Card (option for Apple Network Server)
.Pq Em tlp
.It
Asante Mac 10/100 PCI Rev A, part number 09-00169-01
.Pq Em tlp
.It
Farallon Fast EtherTX 10/100, part number PN996L-TX
.Pq Em tlp
.It
SMC Etherpower II (9432TX)
.Pq Em epic
.It
SMC 83c170
.Pq Em epic
.It
3Com 3c905
.Pq Em ex
.It
Intel EtherExpress PRO/10+ PCI LAN Adapter
.Pq Em fxp
.It
Realtek 8029 Ethernet
.Pq Em ne
.It
VIA Technologies VT86C926
.Pq Em ne
.It
D-Link DFE-530TX+
.Pq Em rtk
.It
Realtek 8139
.Pq Em rtk
.It
Netgear FA-311
.Pq Em sip
.It
Lite-On PNIC
.Pq Em tlp
.It
D-Link DFE-530TX
.Pq Em vr
.It
Many other PCI and Cardbus Ethernet interfaces, such as
Tulip-compatible
.Pq Em tlp ,
3Com
.Pq Em ep ,
SMC
.Pq Em epic ,
Intel
.Pq Em fxp ,
NE2000-compatible
.Pq Em ne ,
and Realtek
.Pq Em rtk
.It
Many USB Ethernet interfaces
.Pq Em aue , Em cue No and Em kue
.bullet)
.It
Wireless
.(bullet -compact
On-board AirPort or AirMac 802.11b
.Pq Em wi
.It
AT&T/Lucent WaveLan IEEE PCMCIA card
.Pq Em wi
.bullet)
.It
SCSI
.(bullet -compact
On-board NCR 53c94 SCSI controller
.Pq Em esp
.It
On-board MESH SCSI controller
.Pq Em mesh
.It
Adaptec PCI controllers 291x, 2920, 2930C, 294x, 295x, 39xx, 19160, 29160
and AIC-78xx
.Pq Em ahc
.(Note
The 294x models are not bootable in Open Firmware, even though they
can boot
.Tn MacOS 
9 and earlier.
.Note)
.Pp
.It
AdvanSys 1200[A,B], 9xx[U,UA] SCSI controller
.Pq Em adv
.It
AMD 53c974
.Pq Em pcscp
.It
Apple 53c875 Ultra Wide SCSI (shipped in some Beige G3 models)
.Pq Em ncr No or Em siop
.(Note
This card may need a firmware update to boot NetBSD.
Use the Mac OS X SCSI Card Updater from
.Lk http://docs.info.apple.com/article.html?artnum=25176
.Note)
.It
NCR/Symbios 53C8xx
.Pq Em siop No or Em esiop
.It
Many other PCI SCSI controllers should work, but no one has tried them
.It
Most SCSI disk/tape/CD-ROM devices should work
.bullet)
.It
IDE
.(bullet -compact
On-board IDE controllers
.It
Promise Ultra66
.Pq Em pciide
(this, and other PC-based cards are not bootable on \*M)
.It
Acard ATP-850/860 based IDE controllers
.Pq Em pciide
(including the Acard AEC-6210/6260 and the Sonnet Tempo ATA/66 cards)
.It
Some other PCI IDE controllers should work, although no one has had much success
.Pp
.It
Most IDE disk/CD-ROM/ATAPI devices should work
.bullet)
.It
Input devices
.(bullet -compact
Most ADB keyboards, mice, trackballs, and trackpads
.It
Most USB keyboards, mice, trackballs, and trackpads
.It
Most PS/2 keyboards, mice, and trackballs
(middle button on 3-button mice may not work)
.bullet)
.It
Video
.(bullet -compact
On-board video on most models
.Pq Em ofb
.(Note
Several models have been reported to not work with
.Nx
if the on-board video is in use, such as the Performa 54xx, 6360, 6400,
PowerComputing PowerCenter and PowerTower, and UMAX C600 and Apus 3000.
Also, the video
card that shipped with the PowerMacintosh 9500/150, 9500/180, and 9500/200
systems is reported to have the same problem.
.Note)
.Pp
.It
PCI frame buffers which have Open Firmware support
(ATI, IMS, Matrox, and NVIDIA have several models which work)
.It
Valkyrie and Platinum framebuffer drivers
.Pq Em valkyriefb and Em platinumfb
.It
Full wscons capabilities, such as virtual terminals and color text are
available.  (Note however that switching between virtual terminals
while running an X session may not be supported by all drivers.)
.bullet)
.It
Audio
.(bullet -compact
On-board audio on most models
.Pq Em awacs No or Em snapper
.(Note
The
.Pq Em awacs
driver is considered
.Dq experimental No ,
meaning that it may cause your system to crash and/or is lacking
some features you may expect.
Due to interrupt conflicts with some G4 models, this driver is disabled
by default and you will need to build a kernel with it enabled.
.Note)
.Pp
.It
USB audio devices
.Pq Em uaudio
.Pp
.It
PCI audio cards, although only the Ensoniq AudioPCI
.Pq Em eap
has been thoroughly tested
.bullet)
.It
Serial ports
.br
.Nx*M
refers to the on-board serial ports as 
.Pq Em tty00
and
.Pq Em tty01 .
Firmware uses the names listed below.
.(bullet -compact
On-board serial ports (the modem and printer ports)
.Pq Em ttya No and Em ttyb
.br
.Em ttya
is the mini-DIN 8 serial port with the
.Sq Modem
icon, and
.Em ttyb
is has the
.Sq Printer
icon.
Some models with internal modems have the serial port with the
.Sq Modem
icon covered over, and the modem is
.Em ttya .
.(Note
The on-board serial ports can be used for console (38400 bps, 8 bits, no
parity, 1 stop bit, no handshaking), although many users have
reported problems trying to run ppp or other high speed serial applications
.Note)
.Pp
.It
The Xserve serial port.
.(Note
This serial port can be used for console (57600 bps, 8 bits, no 
parity, 1 stop bit, no handshaking).  Use
.Pq Em scca
for the Open Firmware
.Sq input-device
and
.Sq output-device
variables.  Alternatively, if you remove your video card,
Open Firmware will default to using the serial port for the console.
.Note)
.Pp
.It
The Gee Three Stealth Serial Port, possibly the Griffin Technology gPort
.(Note
These serial ports can be used for console (57600 bps, 8 bits, no parity,
1 stop bit, no handshaking).
Use
.Pq Em scca
for the Open Firmware
.Sq input-device
and
.Sq output-device
variables.
.Note)
.Pp
.It
Some USB, PCI, and Cardbus serial ports should work, but no one has tried them
.bullet)
.It
USB devices
.(bullet -compact
Most MI USB devices should work (such as disks, printers, input devices,
SCSI adapters, and ethernet interfaces)
.Lk http://www.NetBSD.org/support/hardware/usb.html
.bullet)
.It
PCMCIA and Cardbus cards
.(bullet -compact
Most MI PCMCIA and Cardbus cards should work, although very few have been
tested with
.Nx*M
.Lk http://www.NetBSD.org/support/hardware/cardbus.html
.Lk http://www.NetBSD.org/support/hardware/pcmcia.html
.bullet)
.It
PCI cards
.(bullet -compact
Most MI PCI cards should work, although very few have been tested with
.Nx*M
.Lk http://www.NetBSD.org/support/hardware/pci.html
.bullet)
.Pp
.(Note
While the
.Nx
kernel may support the various Cardbus, PCI, PCMCIA, and USB devices you may
have, Open Firmware does
.Em not
unless it has a specific Open Firmware ROM.
This means you cannot boot from these devices.
Some Adaptec SCSI controllers have bootable Open Firmware ROMs.
.Note)
.bullet)
.
.Ss2 Unsupported devices
.(bullet -offset indent
Floppy disk
.(Note
Though
.Nx*M
can boot from a floppy, there is no kernel support yet
.Note)
.Pp
.It
Advanced power management (cannot put system to
.Sq sleep )
.It
On-board video capture
.It
AirPort Extreme
.It
On-board SATA controller on G5 systems (these machines must be
netbooted)
.bullet)
.
.Ss2 Supported boot devices and media
.
Each version of Open Firmware supports different devices and media that you
may boot from.
We define the terms
.Dq "bootable media"
as the media (hard drive, floppy, CD-R, ethernet) that will be used to
bootstrap your \*M system into
.Nx ,
and
.Dq "distribution sets"
or
.Dq "distribution media"
as the media (hard drive, CD-R, ethernet) that contains the files that
will be installed to generate a working
.Nx
system onto your destination media.
.Pp
Go to the
.Nx*M
Model Support webpage and look up your system.
Take note of the comments about your model and keep these in
mind during the rest of this installation procedure.
.Lk http://www.NetBSD.org/ports/macppc/models.html