BPROC(8)

NAME
boot procedures - UNIX startup

DESCRIPTION
How to start UNIX.|| UNIX is started by placing it in memory at location zero and transferring to zero. Since the system is not reenterable, it is necessary to read it in from disk or tape.

To boot from disk: type the console command ``BOOT'' (which may be abbreviated ``B'') when the console is in LSI-11 mode. It may be necessary to type control-P to gain the attention of the LSI-11. This loads and executes a standalone boot program boot off the floppy. The boot program relocates itself into high memory, and types a `:' as a prompt on the console. It then reads from the console a device specification (see below) followed immediately by a pathname. Boot finds the corresponding file on the given device, loads that file into memory location zero, and starts the program at the entry address specified in the program header (after clearing off the high bit of the specified entry address.) Normal line editing character can be used in specifying the pathname.

If you have an rp06 or rm03 disk and wish to boot off of a file system which starts at cylinder 0 of unit 0, you can type ``hp(0,0)vmunix'' to the boot prompt. On Ernie Co-vax, ``up(0,0)vmunix'' would specify a UNIBUS ampex 9300 drive.

Device specifications. A device specificaion has the following form:

    device(unit, minor)

where device is the type of the device to be searched, unit is the unit number of the device, and minor is the minor device index. The following list of supported devices may vary from installation to installation:
	rp	RP06 or RM03 on MASSBUS
	up	AMPEX 9300 on UNIBUS
	ht	TE16

For tapes, the minor device number gives a file offset.

Emergency bootstraps. If the console BOOT command does not work, here is a position-independent program which will read the boot block (block 0) from a RP06 or RM03 disk, on the MASSBUSS; the boot block will then boot in the file /boot off the file system at cylinder 0 of the RP, in the same way that the console floppy would bring the program in.

RP06 disk (MBA 0, drive 0)
	00009fde	moval	*$0x20010000,r1	# MBA 0
	  512001
	d0      	movl	$1,4(r1)	# initialize MBA
	  04a101
	d0      	movl	$0x13,0x400(r1)	# volume valid
	0400c113
	10008f32	cvtwl	$0x1000,0x424(r1)	# 16-bit format
	  0424c1
	d4      	clrl	12(r1)	# map reg. 0, offset 0
	    0ca1
	8fd0    	movl	$0x80000000,0x800(r1)	# valid, page 0/0
	80000000
	  0800c1
	32      	cvtwl	$-512,16(r1)	# byte count
	a1fe008f
	      10
	28c1d4  	clrl	0x428(r1)	# cylinder
	      04
	14c1d4  	clrl	0x414(r1)	# sector, track
	      04
	c139d0  	movl	$0x39,0x400(r1)	# read 1 block
	    0400
	  00    	halt

To boot from magnetic tape: The tp(1) command places the bootstrap program mboot on block 0 of the tape. When read into memory at location 0 and executed, mboot prompts with an equal sign `=', reads a file name from the console, then loads and executes that file from the tp tape. Unfortunately DEC does not provide a console command to read a block from tape to memory. Here is a position-independent program which does:

TM03 magtape (MBA 1, drive 0) from load point:
	20009fde	moval	*$0x20012000,r1	# MBA 1
	  512001
	d0      	movl	$1,4(r1)	# initialize
	  04a101
	32      	cvtwl	$0x14c0,0x424(r1)	# drive characteristics
	c114c08f
	    0424
	a1d4    	clrl	12(r1)	# map reg. 0, offset 0
	      0c
	008fd0  	movl	$0x80000000,0x800(r1)	# valid, page 0/0
	c1800000
	    0800
	8f32    	cvtwl	$-512,16(r1)	# byte count
	10a1fe00
	00c139d0	movl	$0x39,0x400(r1)	# read 1 block
	      04
	    00  	halt
Then give the console command ``START 0\r''.

mboot does not perform character erase and line kill editing. Instead, it starts over with the prompt for file name whenever the requested file cannot be found.

Be sure that mboot exists whenever a tp tape is made. Remember to put an appropriate block 0 boot and a /boot in file systems when running mkfs.

FILES
/vmunix    UNIX code
/usr/mdec/uboot    rp disk bootstrap
/boot    backup system bootstrap
/usr/mdec/mboot tp magtape bootstrap

SEE ALSO
tp(1), init.vm(8)