File: README

package info (click to toggle)
m68k-vme-tftplilo 1.0.0-1
  • links: PTS
  • area: main
  • in suites: slink
  • size: 316 kB
  • ctags: 637
  • sloc: ansic: 5,475; makefile: 78
file content (532 lines) | stat: -rw-r--r-- 20,810 bytes parent folder | download
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
522
523
524
525
526
527
528
529
530
531
532
TFTPLILO V1.0.0
===============

TFTPLILO is a Linux kernel loader for booting diskless m68k/Linux
machines over a network. Currently TFTPLILO supports the BVM
BVME4000/6000 and Motorola MVME SBCs. TFTPLILO relies on the network
services of the target computer's boot ROMs in order to transfer the
required kernel and configuration data.


Theory of operation
-------------------

The target computer's boot ROMs must first be configured to transfer and
execute the TFTPLILO (tftplilo.bvme or tftplilo.mvme) executable at boot
time. TFTPLILO will then transfer its configuration text file using the
services for the boot ROMs. The configuration file contains details such
as which kernel to load, the kernel startup command line etc. A single
configuration file can specify any number of boot configurations for any
number of machines. TFTPLILO examines the configuration file and
extracts the configurations relating to the target machine. If
configured to do so TFTPLILO will then present the user with a list of
available configurations and allow them to select one along with any
extra kernel command line parameters that may be required. Once the
configuration is selected TFTPLILO will proceed to load and execute the
corresponding Linux kernel and optional initrd ramdisk, again using the
services of the targets boot ROMs.


Configuration file
------------------

The configuration file is an ASCII text file, which defines the boot
configuration for one or more machines. The default configuration file
name, "tftplilo.conf", is compiled into TFTPLILO but may be overridden by
configuring the boot ROMs (see machine specific details below). Each
line of the configuration file may be terminated with either a CR or LF
or both in either order, what ever suits the environment in which it is
edited, (DOS, Linux, Macintosh etc.).

The file itself is divided into 3 types of section:

1. One or more machine specific sections each of which defines the
   configuration for a single or group of machines selected by the IP
   address of the target machine. Each of these sections begins with a line
   containing the word 'crate' in square brackets, i.e. [crate], and extend
   to the start of the next section or to the end of the file.

2. Zero or more boot specific sections each defining a kernel image and
   configuration you can select at boot time. Boot sections begin with a
   line containing the word 'boot' in square brackets, i.e. [boot], and
   extend to the start of the next section or the end of the file.

3. A single global section which defines the default values for the
   other sections. The global section extends from the first line of the
   configuration file until the first [boot] or [crate] section.

Blank lines and lines beginning with a '#' are ignored and may be used
to improve readability and add comments. A line may be continued onto
the next line by placing a backslash at the end.

The parameters in each section are specified using the syntax:

  option = value

Where 'option' is the name of the configuration parameter and 'value' is
what it is set to. Each configuration parameter must begin on a new
line. The value of each option can be one of 4 possible types:

<number>     Numeric values are used to specify timeouts, delays and
             memory sizes. By default they are interpreted as decimal
             but they can be specified in binary, octal and hexadecimal
             by prefixing them with 0b, 0 and 0x respectively.
             Additionally by suffixing the number with a 'K' or an 'M'
             they are multiplied by 1024 or 1024*1024 respectively.

<bool>       Boolean values are used to turn an option on or off and
             are specified as either "Yes", "No", "True", "False" or a
             number that is either zero (false) or non-zero (true).

<filename>	 A pathlist string that is used to transfer the fiie from
             the remote TFTP server.

<string>	 An arbitrary sequence of characters that are used to
             specify labels and command line parameters.


The following is a list of the possible global options. All of these
options provide default values for similarly named options in each of
the [crate] sections. Any option not specified in the global section
takes on a default compiled in value.

Valid global options are:

  Option name                Compiled in default Value
  -----------                -------------------------
  debug                      No
  timeout                    No timeout (infinite)
  delay                      3 seconds
  prompt                     No
  restricted                 No
  calldbg or callmonitor     No
  memsize                    Auto detect
  kernel or image            No default (must be specified)
  ramdisk                    None
  cmdline                    None
  append                     None


The following is a list of possible [crate] options where appropriate
default option values are taken from either the compiled in defaults or
similarly named options in the global section.

  debug
  ip
  timeout
  delay
  prompt
  restricted
  calldbg or callmonitor
  memsize
  kernel or image
  ramdisk
  cmdline
  append
  boot
  default


Valid [boot] section options are as follows, default values are taken
from either the applicable [crate] section or the global or compiled in
defaults.

  label
  alias
  debug
  restricted
  calldbg or callmonitor
  memsize
  kernel or image
  ramdisk
  cmdline
  append


Option descriptions
-------------------

Below is a full description of each of the available options.

------------------------------------------------------------------------
debug = bool

Enable TFTPLILO debug mode.

------------------------------------------------------------------------
timeout = secs

Sets a timeout in seconds for keyboard input. If no key is pressed for
the specified time, the default image is automatically booted. A timeout
of zero disables the timeout feature. The default timeout is disabled.

------------------------------------------------------------------------
delay = secs

Specifies the number of seconds the TFTPLILO should wait before booting
the default configuration. Pressing a key on the keyboard will interrupt
the delay and cause TFTPLILO to prompt for a configuration to boot.
TFTPLILO doesn't wait or check for keyboard input if 'delay' is set to
zero. The default delay is 3 seconds.

------------------------------------------------------------------------
prompt = bool

Forces entering the boot prompt without delaying or expecting any prior
key-presses. Unattended reboots are impossible if 'prompt' is set and
'timeout' isn't.

------------------------------------------------------------------------
cmdline = string

Specifies the kernel command line. Command line parameter specified at
the Boot: prompt replace the values specified here.

------------------------------------------------------------------------
append = string

Specifies extra kernel command line parameters that are ALWAYS appended
to the values specified by 'cmdline' or at the Boot: prompt.

------------------------------------------------------------------------
restricted = bool

If true specifies that any kernel command line parameters entered at the
boot prompt should be ignored. This provides a safe way for an operator
to select between multiple boot configurations.

------------------------------------------------------------------------
kernel = filename

Specifies the path to a version 2.0, 2.1 or 2.2 Linux kernel image on
the remote TFTP server. The image should be an ELF format image and may
be compressed with 'gzip' if required. 

------------------------------------------------------------------------
image = filename

Another name for the 'kernel' option.

------------------------------------------------------------------------
ramdisk = filename

Specifies the path to an initrd ramdisk image that is to be loaded at
boot time from the remote TFTP server. If the filename is specified as
"none", without the quotes, then any previously specified default value
is ignored and no ramdisk load will be attempted.

------------------------------------------------------------------------
memsize = number

Specifies the amount of system RAM in bytes that the Kernel can use. If
not specified the boot loader will auto detect the amount of available
memory. 

------------------------------------------------------------------------
callmonitor = bool

If specified as true causes the TFTPLILO to call the resident ROM debug
monitor immediately prior to executing the loaded kernel.

Warning: Do NOT use this option if your boot ROMs are configured to use
the bottom 64K of memory for local storage. The Linux kernel is loaded
over this memory region and will probably cause the boot ROM code to
crash when it is called.

------------------------------------------------------------------------
calldbg = bool

Another name for the 'callmonitor' option.

------------------------------------------------------------------------
label = name

Specifies the name by which TFTPLILO identifies the boot configuration.
A label option must be specified for each boot section.

------------------------------------------------------------------------
alias = name

An alternative name by which TFTPLILO can identify the boot section.

------------------------------------------------------------------------
boot = boot-section-label

Specifies the label or alias of a boot configuration to use for this
machine. This option can be specified any number of times to select all
the required boot configurations. The order in which multiple 'boot'
options are specified dictates the order in which they are presented at
the Boot: prompt. If no valid boot options are specified TFTPLILO will
first try to build a single default boot configuration from the default
values specified in the [crate] and global sections. If no configuration
can be made this way TFTPLILO will scan the whole of the configuration
file and use ALL the boot configurations that are available.

------------------------------------------------------------------------
default = boot-section-label

This option specifies an additional boot configuration that will be the
default boot configuration to use for this machine. If not specified the
first 'boot' option will become the default.

------------------------------------------------------------------------
ip = IP address

This option specifies an IP address or range of IP addresses that
TFTPLILO uses to select a crate section for the booting target machine.
If TFTPLILO cannot find a [crate] section that matches the target
machines IP address it will first try to a [crate] section with an 'ip'
option with the string value of "any". If that fails it will scan for a
[crate] section without an 'ip' option. The 'ip' option can be used any
number of times to specify a number of matching addresses. IP addresses
should be specified using the conventional decimal dotted quad notation.
Giving a hyphenated range for any of the decimal components of the IP
address specifies ranges of IP addresses.

For example:

 192.168.1.2-5   = 192.168.1.2, 192.168.1.3, 192.168.1.4 and 192.168.1.5
 192.168.1-2.1   = 192.168.1.1 and 192.168.2.1
 192.168.1-2.1-2 = 192.168.1.1, 192.168.1.2, 192.168.2.1 and 192.168.2.2

------------------------------------------------------------------------

IP address substitution
-----------------------

To aid configuration, the kernel command line and configuration file
name are subject to IP address substitution. This allows you to place
'printf' style sequences into to these strings which TFTPLILO
substitutes for various IP addresses obtained from the boot ROMs.

	%%	= %
	%C	= machines IP address.
	%S	= TFTP servers IP address.
	%M	= subnet mask.
	%G	= gateway address.
	%B	= broadcast address (MVME only)

Lower case equivalents of these sequences substitute an empty string if
the address is "0.0.0.0" (unconfigured).


Boot prompt
-----------

When TFTPLILO enters interactive mode it first displays a list of
available configurations. This list can be redisplayed by entering
"help" or by pressing the <TAB> key. At the Boot: prompt enter the
required configuration name or alias followed by any extra kernel
command line parameters required. The extra kernel command line
parameters are subject to IP address substitution as described above.
Entering nothing at the boot prompt or allowing it to timeout (see the
'timeout' configuration option) will cause the default boot
configuration to be selected.


Machine configuration
---------------------

BVME4000/6000
-------------

In order to use TFTPLILO the BVM SBC must be fitted with BVMBug Revision
G or later boot ROMs.

Front panel DIP switch usage:

Switch  Left position  Right position  Function
------  -------------  --------------  --------------------------------
 SW1    disable        enable          VMEbus system controller functions
 SW2    0x00000000     0xE900000000    BVMBug workspace address (64Kb)
 SW3    disable        enable          Map VMEbus into low 256Mb
 SW4    enable         disable         Autoboot

New to BVMBug revision G is the ability to choose which area of RAM to
use for it's local workspace. Previous revisions always used the onboard
SRAM at address E9000000. With revision G, the front panel DIP switch 2
is used to select between address E9000000 (SRAM) when switched to the
right and address 00000000 (DRAM) when switched to the left. If TFTPLILO
is configured to call BVMBug just before calling the Linux kernel
(calldbg = Yes) then the DIP switch should be set to use the SRAM at
address E9000000 because the linux kernel will have been moved to the
bottom area of memory overwriting what would have been BVMBug's
workspace.

Flip the lower front panel DIP switch 4 to the right to cause the BVMBug
prompt to be displayed at reset. Using the BVMBug 'rc' (reconfigure
command) the machines network boot parameters can be configured. When
done flip DIP switch 4 back to the left to cause BVMBug to auto boot.


BVME4000/6000 Generic Bootstrap - Revision G
Copyright (c) 1997-1998 BVM Ltd.

tcr:0000          dttn:F00FA040 00000000                ittn:00000000 00000000
vbr:E9000000 sfc:0 dfc:0   cacr:00000000       urp:00000000       srp:00000000
dn: 00000000 00000000  00000000 00000000  00000000 00000000  00000000 00000000
an: 00000000 00000000  00000000 00000000  00000000 00000000  E9000400 E900F800
pc: E800052C  sr:2700 (--S--7-----)t:OFF                 usp:E900F000   ^ssp^
0xE800052C          >2C7C00000000         movea.l #0,a6
BVMBug: rc

SYSTEM RECONFIGURATION

VMEbus snooping is enabled, LANC snooping is enabled
VME A16 slave address window is disabled
VME A24 slave address window is disabled
VME A32 slave address window is disabled
IP IRQ's: A0=1 A1=1 B0=1 B1=1 C0=1 C1=1 D0=1 D1=1 E0=1 E1=1 F0=1 F1=1
IPA is slow/async, IPB is slow/async, IP exp is slow/async
The boot ROM baud rate is 115200
The initiator SCSI ID is 7
The Ethernet Address is 00:80:FB:02:04:65
Internet address is determined using BOOTP
Server address is determined using BOOTP
Gateway address is determined using BOOTP
Subnet mask is 128.0.0.0
Default net boot file load address is 0x00000000
Net boot file name is "bootfile"
Boot argument string is ""
The current boot order is : Disk on ID 2

Set default values? (y/n/q/f) : n
Reconfigure the ethernet address? (y/n/q/f/b) : n
Reconfigure the snoop control? (y/n/q/f/b) : n
Reconfigure the slave addressing? (y/n/q/f/b) : n
Reconfigure the IP IRQ levels? (y/n/q/f/b) : n
Reconfigure the IP modes? (y/n/q/f/b) : n
Reconfigure the baud rate? (y/n/q/f/b) : n
Reconfigure the initiator SCSI ID? (y/n/q/f/b) : n
Reconfigure net boot parameters? (y/n/q/f/b) : y

Internet address is determined using BOOTP
Server address is determined using BOOTP
Gateway address is determined using BOOTP
Subnet mask is 0.0.0.0
Default net boot file load address is 0x00000000
Net boot file name is "bootfile"

Internet address    :  (n.n.n.n or 0 to use bootp) : 192.168.1.3
TFTP server address :  (n.n.n.n or 0 to use bootp) : 0
Gateway address     :  (n.n.n.n or 0 to use bootp) : 0
Number of subnet mask bits (0-31) : 24
Enter default net boot file load address (hex) : 10000
Net boot file name ("NULL" for none) : tftplilo.bvme

Reconfigure boot file arguments? (y/n/q/f/b) : y

Boot argument string is ""

Boot arguments ("NULL" for none) : tftplilo.conf

Reconfigure the boot devices? (y/n/q/f/b) : y
The current boot order is : Disk on ID 2

Available boot drivers:
 1. BOOTP/TFTP
 2. SCSI CD-ROM, Hard or Floppy Disk

The order you specify these boot drivers determines the order
in which they will be tried when the system is configured to boot
automatically. Each driver is selected with a 1 or 2 digit code,
the first digit represents the boot driver number as listed above,
and the second the SCSI device ID where applicable

Enter the numbers of the boot drivers in the order that you want
them prioritised: 1


VMEbus snooping is enabled, LANC snooping is enabled
VME A16 slave address window is disabled
VME A24 slave address window is disabled
VME A32 slave address window is disabled
IP IRQ's: A0=1 A1=1 B0=1 B1=1 C0=1 C1=1 D0=1 D1=1 E0=1 E1=1 F0=1 F1=1
IPA is slow/async, IPB is slow/async, IP exp is slow/async
The boot ROM baud rate is 115200
The initiator SCSI ID is 7
The Ethernet Address is 00:80:FB:02:04:65
Internet address is 192.168.1.3
Server address is determined using BOOTP
Gateway address is not used
Subnet mask is 255.255.255.0
Default net boot file load address is 0x00010000
Net boot file name is "tftplilo.bvme"
Boot argument string is "tftplilo.conf"
The current boot order is : BOOTP/TFTP

Is this the configuration you want? (y/n/b/q) : y

Notes:

1. TFTPLILO will always load at address 0x00010000 regardless of the
   "Default net boot file load address" configuration.

2. TFTPLILO uses the "Boot argument string" as its configuration file
   name. If not set it will use the compiled in default value. Boards
   earlier than revision F cannot configure this parameter (there is not
   enough non-volatile storage) and will always use the compiled in default.

3. Boards earlier than revision F cannot configure the net boot file
   name (not enough non-volatile storage) and have a hard coded name
   string of "bootfile". Space is reserved in the BVMBug prom image at
   address 0xE8000410 to patched an alternative name (up to 64 bytes
   including null terminator) if you have the facility to copy an
   reprogram the proms. If not the "tftplilo.bvme" file must be renamed
   to "bootfile" or BVMBug must be configured to use the BOOTP protocol
   in which case it will use the bootfile name returned from the BOOTP server.

4. BVMBug only use the BOOTP protocol if either the client or the
   server's IP address is set to zero, or on a revision F or later board
   the net bootfile name is not set. The gateway address is set from
   the BOOTP response only if both it and the server IP address are set to zero.
   The subnet mask is set from the BOOTP response only if it is non zero
   and the client IP address is zero. When transfering the data from the
   TFTP server the gateway address is used only if it is non-zero and
   the client and server addresses are on different subnets.


MVME16x
-------

To reconfigure the MVME network boot parameters use the 'niot' command.


167-Bug>niot
Controller LUN =00? 0
Device LUN     =00? 0
Node Control Memory Address =FFE10000?
Client IP Address      =0.0.0.0? 192.168.1.4
Server IP Address      =0.0.0.0? 192.168.1.1
Subnet IP Address Mask =0.0.0.0? 255.255.255.0
Broadcast IP Address   =0.0.0.0? 192.168.1.255
Gateway IP Address     =0.0.0.0?
Boot File Name ("NULL" for None)     =? tftplilo.mvme
Argument File Name ("NULL" for None) =? tftplilo.conf
Boot File Load Address         =00000000? 10000
Boot File Execution Address    =00000000? 10000
Boot File Execution Delay      =00000000?
Boot File Length               =00000000?
Boot File Byte Offset          =00000000?
BOOTP/RARP Request Retry       =00?
TFTP/ARP Request Retry         =00?
Trace Character Buffer Address =00000000?
BOOTP/RARP Request Control: Always/When-Needed (A/W)=W? w
BOOTP/RARP Reply Update Control: Yes/No (Y/N)       =Y?

Update Non-Volatile RAM (Y/N)? y
167-Bug>

Notes:

1. TFTPLILO will always load at the address specified by the "Boot File
   Load Address" configuration. This should always be set to 0x00010000
   and the "Boot File Execution Address" should always match.

2. TFTPLILO uses the "Argument File Name" string as its configuration file
   name. If not set it will use the compiled in default value.


----

Nick Holgate <nick@deadleg.freeserve.co.uk> <holgate@debian.org> [08/01/99]