Expand PMF_FN_* macros.
[netbsd-mini2440.git] / distrib / notes / sparc / prep
blob0f3516c378f93d49a6c80f3d5721f0c8bc482485
1 .\"     $NetBSD: prep,v 1.25 2008/11/20 20:52:17 jdc Exp $
3 .Ss2 Configuring your PROM
5 Before you start, you should configure your PROM. There are three
6 categories of PROM:
7 .Dq sunmon
8 (sometimes called Restricted Prompt, sun monitor, or old command mode),
9 OpenBoot PROM 1, and OpenBoot PROM 2.
10 The sun4 machines only have sunmon. Some of the early sun4c models
11 default to sunmon but have OpenBoot PROM 1.
12 The later sun4c models and all sun4m models have OpenBoot PROM 2.
13 .Pp
14 First, you need to stop your system from automatically booting when
15 powered on. Pressing the
16 .Key STOP
17 key (sometimes called the
18 .Key L1
19 key, found on the left side of your keyboard) and the
20 .Key a
21 key will halt your system and give you a PROM prompt. If you are using a
22 Tadpole SPARCbook, you press the
23 .Key Pause
24 and
25 .Key a
26 keys. If you are using a serial console, send a
27 .Dq BREAK
28 signal from your terminal (the method of sending
29 .Dq BREAK
30 varies from terminal to terminal).
31 .Pp
32 If the ethernet address of your \*M system is
33 .Li ff:ff:ff:ff:ff:ff ,
34 then your NVRAM battery is dead and you will have trouble using
35 ethernet (among other problems).  Read the Sun NVRAM/Hostid FAQ.
36 .Lk http://www.squirrel.com/squirrel/sun-nvram-hostid.faq.html
37 .Pp
38 If you have a valid ethernet address and you plan to netboot, write down
39 your system's ethernet address.
40 .Pp
41 Next, you should set your system to always use the OpenBoot PROM
42 (sometimes called
43 .Dq "new command mode" )
44 if it defaults to sunmon. The
45 .Nx
46 kernel relies on some of the functionality provided by the OpenBoot PROM.
47 If your machine gives you a `\*[Gt]' prompt instead of an `ok' prompt,
48 type:
49 .Pp
50 .(disp
51 .No \*[Gt] Ic n
52 .No ok Ic "setenv sunmon-compat? false"
53 .No ok
54 .disp)
55 .Pp
56 Next, if you are using any security features of OpenBoot PROM, you should
57 turn them off \(em
58 .Nx
59 can't deal well with this.
60 .Pp
61 .(disp
62 .No ok Ic "setenv security-mode none"
63 .disp)
64 .Pp
65 If you are using a serial console, the
66 .Nx*M
67 installer defaults to using 9600 bps, 8N1 settings.  You may want to 
68 configure your system and serial terminal like this prior to booting the 
69 installer.  Additionally, a new installation of
70 .Nx*M
71 will default to these settings as well.
72 .Pp
73 The OpenBoot PROM 1 machines (SPARCstation/server 1, SPARCstation/server 1+,
74 IPC, and SLC) have an odd SCSI quirk you should be aware of.
75 There are three SCSI addressing schemes used by your
76 system: SCSI target ID (set by physical jumpers on the device), PROM
77 .Sq unit
78 number (set by OpenBoot PROM 1, based on its SCSI target ID), and the name
79 you reference within an operating system (set by the kernel, based on the PROM
80 .Sq unit
81 number).
82 .Pp
83 Sun shipped these systems with the internal drives set to SCSI target IDs
84 3 and 1.  The default value of the OpenBoot PROM variable
85 .Sq Li sd-targets
87 .Sq Li 31204567.
88 This variable maps how the OpenBoot PROM 1 assigns
89 .Sq unit
90 numbers based on the SCSI target ID.
91 Thus the device at SCSI target ID 3 is considered
92 .Sq unit
93 0, and the SCSI device at target ID 0 is
94 .Sq unit
95 3.  When you type
96 .Dq Ic boot scsi(0,0,0) ,
97 the OpenBoot PROM will boot from
98 .Sq unit
99 0 (which is SCSI target ID 3, the internal hard drive).  The
100 .Tn SunOS
101 kernel is hard-wired to map
102 .Li sd0
103 to SCSI target 3, and
104 .Li sd3
105 to SCSI target 0.
106 .Bl -column -offset indent PROM\ Unit# SCSI\ Target SunOS\ name
107 .It Em PROM\ Unit# Ta Em SCSI\ Target Ta Em SunOS\ name
108 .It \~\~\~0 Ta \~\~\~3 Ta \~\~\~sd0
109 .It \~\~\~1 Ta \~\~\~1 Ta \~\~\~sd1
110 .It \~\~\~2 Ta \~\~\~2 Ta \~\~\~sd2
111 .It \~\~\~3 Ta \~\~\~0 Ta \~\~\~sd3
112 .It \~\~\~4 Ta \~\~\~4 Ta \~\~\~st0
113 .It \~\~\~5 Ta \~\~\~5 Ta \~\~\~st1
114 .It \~\~\~6 Ta \~\~\~6 Ta \~\~\~cdrom
118 .Nx*M
119 .Li GENERIC
120 kernel does not wire things down as does
121 .Tn SunOS .
122 It names the disks in the order
123 that the SCSI targets are probed (01234567). If you only have one disk,
124 it is always
125 .Li sd0
126 regardless of its SCSI target ID or its PROM
127 .Sq unit
128 number, and there are no problems. If you have two disks, one at
129 SCSI ID 2
130 .Pf ( Sq unit
131 2) and SCSI ID 3
132 .Pf ( Sq unit
133 0), then they are recognized as
134 .Li sd0
136 .Li sd1
137 respectively. This can be a problem if you are not
138 aware of it, particularly when creating an fstab.
140 There are two approaches to fixing this problem: changing the
141 mapping that OpenBoot PROM 1 does, and changing the
143 kernel configuration.
144 To get OpenBoot PROM 1 to number the SCSI
145 .Sq unit
146 numbers the same as the SCSI target IDs, you need to run this command:
148 .(disp
149 .No ok Ic "setenv sd-targets 01234567"
150 .disp)
152 This may, however, cause problems if you were to later attempt to use
153 .Tn SunOS
154 on this machine or if you reset the OpenBoot PROM variables.
156 The other approach is to use a
158 kernel that matches the PROM's odd target mapping by treating
159 .Sq unit
160 0 (i.e. SCSI target ID 3) as
161 .Li sd0
163 .Sq unit
164 3 (i.e. SCSI target ID 0) as
165 .Li sd3 .
167 .Li GENERIC_SCSI3
168 kernel performs this target mapping, but the
169 .Li GENERIC
171 .Li INSTALL
172 kernels do not.
174 .(Note
175 This is also a concern when you start building your own customised kernels.
176 .Note)
178 The machines with OpenBoot PROM 2 (SPARCstation/server 2,
179 ELC, IPX, and all sun4m models) have a similar SCSI target mapping in the
180 form of a
181 .Ic devalias
182 entry.  That is, the device alias
183 .Ic disk
184 is shorthand for the disk at SCSI ID 3 on the internal SCSI controller.
185 Normally, the
186 .Ic disk
187 device alias is what the PROM uses as the default boot device, i.e. in the
188 absence of a
189 .Ar device
190 argument to the
191 .Ic boot
192 command.
193 Note that there are also pre-configured device alias entries for
194 .Ic disk0,
195 .Ic disk1,
196 .Ic disk2
198 .Ic disk3 ,
199 which are in fact a one-to-one mapping to the SCSI targets
200 .Ic 0
202 .Ic 3
203 .Pq all on the internal SCSI controller .
205 Again, it may be advantageous to use a fixed
206 .Dq SCSI target
208 .Dq Nx "" disk unit
209 mapping in your kernel configuration file (such as is done in the
210 .Li GENERIC_SCSI3
211 kernel) to ensure that your disks remain showing up at the same
213 device unit numbers even if you add disks to your system at a later time.
215 .Ss2 Determining how to access your SCSI disk from the PROM
217 sunmon and OpenBoot PROM 1 use an archaic
218 .Li sd( Ns Ar c,u,p Ns Ic \&)
219 syntax to address SCSI devices. OpenBoot PROM 2 uses a more intuitive
220 syntax using device aliases.
222 To calculate the parameters for sunmon and OpenBoot PROM 1:
223 .(tag xcc -offset indent
224 .It Ar c
225 specifies the SCSI controller number (first is 0, second is 1, ...)
226 .It Ar u
227 the hexadecimal number obtained from evaluating
228 the expression
229 .Em (8 * TARGET) + LUN
230 .It Ar p
231 the partition number from which to boot
232 .Pf ( Sq Li 0
234 .Sq Li a ,
235 .Sq Li 1
237 .Sq Li b ,
238 etc.)
239 .tag)
241 Therefore, to boot from the swap partition on the internal hard drive
242 (first SCSI bus, target 0, lun 0, partition 1), one would use:
244 .(disp
245 .No ok Ic "boot sd(0,0,1)"
246 .disp)
248 To boot from a CD-ROM (first SCSI bus, target 6,
249 lun 0, partition dynamically determined), one would use:
251 .(disp
252 .No ok Ic "boot sd(0,30,)"
253 .disp)
255 And, to boot from a kernel named
256 .Li netbsd-GENERIC
257 on the fourth partition
258 .Pf ( Sq Li d ,
259 often the
260 .Pa /usr
261 partition) on an external hard drive (first SCSI bus, target 2, lun 0,
262 partition 3), one would use:
264 .(disp
265 .No ok Ic "boot sd(0,10,3)netbsd-GENERIC"
266 .disp)
268 Now, for OpenBoot PROM 2, SCSI devices are specified by an OpenBOOT
269 .Ic devalias
270 which provides simple mnemonics for the full path to the device. Type
271 .Ic devalias
272 in OpenBoot PROM 2 to get a list of all of the available aliases.
273 Just the alias and partition are necessary when booting.
275 Therefore, to boot from the swap partition on the internal hard drive
276 (OpenBoot PROM 2 assumes the internal hard drive is at target 3), one would
277 use:
279 .(disp
280 .No ok Ic "boot disk:b"
281 .disp)
283 To boot from a CD-ROM (OpenBoot PROM 2 assumes the CD-ROM is at target 6),
284 one would use:
286 .(disp
287 .No ok Ic "boot cdrom"
288 .disp)
290 And, to boot from a kernel named
291 .Li netbsd-GENERIC
292 on the fourth partition
293 .Pf ( Sq Li d ,
294 often the
295 .Pa /usr
296 partition) on an external hard drive (target 2, partition 3), one would use:
298 .(disp
299 .No ok Ic "boot disk2:d netbsd-GENERIC"
300 .disp)
302 The full device path specifier for OpenBoot PROM 2 depends on how OpenBoot
303 PROM 2 recognizes
304 your SCSI controller. Typically, one would use something like:
305 .Pa /sbus/esp/sd@ Ns Ar t,p
306 where t is the SCSI target and p is the partition number.
308 .Ss2 Determining how to boot from an SBUS card
310 Some SBUS cards have firmware that lets you use them as a boot device.
311 These cards do not automatically create a
312 .Ic devalias
313 entry, so you must traverse the device tree to figure out what the
314 OpenBoot PROM calls your card.  You will be using OpenBoot PROM commands
315 at the `ok' prompt. First `cd' to the top of the device tree and list the
316 nodes there.  The following is the procedure to boot from an HME card in a
317 SPARC Classic.
318 .(disp
319 .No ok Ic "cd /"
320 .No ok Ic "ls"
321 ffd3b790 TI,TMS390S10@0,f8fffffc
322 ffd2d254 virtual-memory@0,0
323 ffd2d198 memory@0,0
324 ffd2b65c obio
325 ffd2b310 iommu@0,10000000
326 ffd2b2a0 openprom
327 ffd24af0 aliases
328 ffd24abc options
329 ffd24a88 packages
330 .disp)
331 Usually, you can simply type in the name before the at (@) sign and the
332 OpenBoot PROM will fill in the rest.
333 .(disp
334 .No ok Ic "cd iommu"
335 .No ok Ic "ls"
336 ffd2b454 sbus@0,10001000
337 .No ok Ic "cd sbus"
338 .No ok Ic "ls"
339 ffd467e8 cgthree@3,0
340 ffd42a1c SUNW,hme@1,8c00000
341 ffd4297c le@0,c00000
342 ffd40d28 ledma@4,8400010
343 ffd40c9c SUNW,bpp@4,c800000
344 ffd40c00 audio@4,1300000
345 ffd3dc68 espdma@4,8400000
346 .No ok Ic "cd SUNW,hme"
347 .No ok Ic "ls"
348 .No ok Ic "pwd"
349 /iommu@0,10000000/sbus@0,10001000/SUNW,hme@1,8c00000
350 .disp)
351 OK, now we know the path to the HME device in this example.  Now, we need
352 to determine if it's capable of booting.  If it is, it will have the
353 .Ic word
354 `open'.
355 .(disp
356 .No ok Ic "words"
357 reset         seek          load          open          close
358 watch-net     selftest      obp-selftest  write         read
359 preamble-32   enable-link-pulse           disable-link-pulse
360 force-speeds  reset-transceiver           use-bit-bang-mode
361 use-frame-mode              dump-phys     transfer-speed=10
362 transfer-speed=100          mii-write     mii-read
363 create-rev-id
364 .disp)
365 Great!
366 Also, in case you're interested in further details about your
367 hardware, you can use the `.attributes' command.
368 .(disp
369 .No ok Ic ".attributes"
370 hm-rev                   00000022
371 version                  1.18
372 model                    SUNW,501-2919
373 device_type              network
374 intr                     00000037  00000000
375 interrupts               00000004
376 address-bits             00000030
377 max-frame-size           00004000
378 reg                      00000001  08c00000  00000108
379                          00000001  08c02000  00002000
380                          00000001  08c04000  00002000
381                          00000001  08c06000  00002000
382                          00000001  08c07000  00000020
383 name                     SUNW,hme
385 .disp)
386 So, when it's time to type in a boot command, use the shortened version of the
387 .Ic pwd
388 command.  In this example, you'd type:
389 .(disp
390 .No ok Ic "boot /iommu/sbus/SUNW,hme"
391 .disp)
392 And when the kernel is done booting, it may not automatically use your
393 card as the root device -- you may need to type in the
394 .Nx*M
395 name for
396 that device:
397 .(disp
398 root on sd0a dumps on sd0b
399 no file system for sd0 (dev 0x700)
400 cannot mount root, error = 79
401 .No "root device (default sd0a):" Ic "?"
402 use one of: fd0[a-h] le0 le1 hme0 sd0[a-h] halt
403 .No "root device (default sd0a):" Ic "hme0"
404 .No "dump device:" Ic "hme0"
405 .No "file system (default generic):" Ic "nfs"
406 root on hme0
407 .disp)
409 .Ss2 Deciding on partition sizes
411 If you're installing
412 .Nx*M
413 for the first time it's a good idea
414 to look at the partition sizes of disk you intend installing
415 .Nx*M
418 A minimal installation of
420 requires about 100 MB.
421 A full installation requires considerably more.
422 A good initial size for the swap partition is twice the amount
423 of physical memory in your machine (unlike
424 .Tn SunOS 4.x ,
425 there are no restrictions on the size of the swap partition that would render
426 part of your memory unusable).
428 Note that there are limitations on the size of the root partition for
429 various models.
431 On sun4 machines, the
433 sparc boot loader can only boot from RAID partitions that start at the
434 beginning of the disk.
436 On sun4 and early PROM version sun4c machines, the PROM can only boot from
437 the first 1Gb of the disk.
439 On later PROM version sun4c and early PROM version sun4m machines, the PROM
440 can only boot from the first 2Gb of the disk.
442 On later PROM version sun4m machines, the PROM can only boot from the first
443 4Gb of the disk.
445 .Ss2 Configuration of network interfaces
447 Some network devices (i.e. the built-in
448 .Em le
449 interface on sun4m machines)
450 allow a choice between operating on a UTP or a AUI port once the
452 kernel is running. The
453 .Em le
454 driver supports automatic detection of the port which is actually connected to
455 the wire. Additionally, some of the Fast ethernet devices (such as
456 .Em be ,
457 .Em hme ,
458 .Em qec ,
460 .Em qfe )
461 support selection of various speeds and options.
462 The default is to attempt to automatically detect the speed.
464 If automatic detection is not available or not working properly in your
465 environment, you may have to specify the type connection using the
466 .Ic media
467 parameter of
468 .Xr ifconfig 8 .
469 During installation, you'll get the opportunity to specify the appropriate
470 medium. Use
471 .Li 10base5
473 .Li AUI
474 to select the AUI connector, or
475 .Li 10baseT
477 .Li UTP
478 to select the UTP connector.
479 Fast ethernet interfaces default to
480 .Li auto ,
481 which usually does not detect properly and runs at
482 .Sq 10BaseT
483 speed.
484 The options are
485 .Li 10baseT ,
486 .Li 10baseTX ,
488 .Li auto .
490 .Em hme
492 .Em qfe
493 interfaces also allow
494 .Li 10baseT-FDX
496 .Li 100baseT-FDX .