Subject: Disklabels arrive for 2.11BSD (#259 part 10 of 18)
Index:	sys,bin,usr.lib,(many more)/<many> 2.11BSD

Description:
	The moving the partitions tables out of the disk drivers and to
	a disklabel residing on the media has been on the wish list for
	many many years.

	Disklabels have finally arrived for 2.11BSD!

Repeat-By:
	Observation.  Also a reading of the setup and installation
	documentation for previous 2BSD releases (2.9, 2.10, 2.11)
	all have a paragraph similar to this present:

"It is possible to change the partitions by changing the code for the
table in the disk driver.  Since it's desirable to do this, these tables
really should be read off each pack...."

Fix:
	This is part 10 of 18.  Gather all parts before doing anything
	except reading the instructions which are in #250 (part 1).

	Updated by this part are:

/usr/src/sys/mdec/bruboot.s
/usr/src/sys/mdec/dvhpuboot.s
/usr/src/sys/mdec/hkuboot.s
/usr/src/sys/mdec/hpuboot.s
/usr/src/sys/mdec/rauboot.s
/usr/src/sys/mdec/rkuboot.s
/usr/src/sys/mdec/rluboot.s
/usr/src/sys/mdec/rm03uboot.s
/usr/src/sys/mdec/rm05uboot.s
/usr/src/sys/mdec/si51uboot.s
/usr/src/sys/mdec/si94uboot.s
/usr/src/sys/mdec/si95uboot.s

	ALL disk bootblock blocks have been modified.  The change is small
	and will have no effect unless you boot from a unit other than 0.

	The change to the bootblocks is to put the unit number of the
	disk into bits 3-5 so as to leave room for the partition number
	in bits 0-2.  This change will (in the future) allow booting from
	a partition other than 'a' (perhaps to boot from the swap area
	when the coldstart proceedure uses a miniroot like 4.3BSD did).

	You should install new boot blocks eventually but unless you
	are booting from a unit other than 0 nothing bad will happen
	if old bootblocks are used.  The 'disklabel' program now installs
	bootblocks using the -B option.

	Cut where indicated and save to a file (/tmp/259).  Then:

		patch -p0 < /tmp/259
		rm /tmp/259

--------------------------------cut here------------------------------
*** /usr/src/sys/mdec/bruboot.s.old	Tue Mar 10 15:09:33 1992
--- /usr/src/sys/mdec/bruboot.s	Wed May 31 19:54:24 1995
***************
*** 3,8 ****
--- 3,11 ----
  / BR bootstrap. supports the 32 sec/trk, 19 trk/cyl EATON 1537/1711 
  /	Controller and 1538A/B/C/D drive. 
  /
+ / 1995/05/31 - The unit number needs to go in bits 3-5 of bootdev
+ /	       because the partition number now goes into bits 0-2.
+ /
  / disk boot program to load and transfer
  / to a unix entry.
  / for use with 1 KB byte blocks, CLSIZE is 2.
***************
*** 170,175 ****
--- 173,179 ----
  2:
  	mov	ENDCORE-BOOTOPTS, r4
  	movb	unit+1,r3
+ 	ash	$3,r3			/ unit # in bits 3-5, partition # is 0
  	bis	$MAJOR\<8.,r3
  	mov	ENDCORE-CHECKWORD, r2
  	mov	csr,r1
*** /usr/src/sys/mdec/dvhpuboot.s.old	Tue Mar 10 15:09:13 1992
--- /usr/src/sys/mdec/dvhpuboot.s	Wed May 31 19:54:29 1995
***************
*** 2,7 ****
--- 2,10 ----
  
  / Bootstrap for Diva Comp. IV controller (33 sectors)
  /
+ / 1995/05/31 - The unit number needs to go in bits 3-5 of bootdev
+ /	       because the partition number now goes into bits 0-2.
+ /
  / disk boot program to load and transfer
  / to a unix entry.
  / for use with 1 KB byte blocks, CLSIZE is 2.
***************
*** 157,162 ****
--- 160,166 ----
  2:
  	mov	ENDCORE-BOOTOPTS, r4
  	mov	unit,r3
+ 	ash	$3,r3			/ unit # in bits 3-5, partition # is 0
  	bis	$MAJOR\<8.,r3
  	mov	ENDCORE-CHECKWORD, r2
  	mov	csr,r1
*** /usr/src/sys/mdec/hkuboot.s.old	Tue Mar 10 15:10:09 1992
--- /usr/src/sys/mdec/hkuboot.s	Wed May 31 19:54:37 1995
***************
*** 2,7 ****
--- 2,10 ----
  
  / RK06/RK07 bootstrap
  /
+ / 1995/05/31 - The unit number needs to go in bits 3-5 of bootdev
+ /	       because the partition number now goes into bits 0-2.
+ /
  / disk boot program to load and transfer
  / to a unix entry.
  / for use with 1 KB byte blocks, CLSIZE is 2.
***************
*** 162,167 ****
--- 165,171 ----
  2:
  	mov	ENDCORE-BOOTOPTS, r4
  	mov	unit,r3
+ 	ash	$3,r3			/ unit # in bits 3-5, partition # is 0
  	bis	$MAJOR\<8.,r3
  	mov	ENDCORE-CHECKWORD, r2
  	mov	csr,r1
*** /usr/src/sys/mdec/hpuboot.s.old	Wed Jan 27 22:41:52 1993
--- /usr/src/sys/mdec/hpuboot.s	Wed May 31 19:54:43 1995
***************
*** 2,7 ****
--- 2,10 ----
  
  / RP04/05/06 bootstrap.
  /
+ / 1995/05/31 - The unit number needs to go in bits 3-5 of bootdev
+ /	       because the partition number now goes into bits 0-2.
+ /
  / disk boot program to load and transfer
  / to a unix entry.
  / for use with 1 KB byte blocks, CLSIZE is 2.
***************
*** 159,164 ****
--- 162,168 ----
  2:
  	mov	ENDCORE-BOOTOPTS, r4
  	mov	unit,r3
+ 	ash	$3,r3			/ unit # in bits 3-5, partition # is 0
  	bis	$MAJOR\<8.,r3
  	mov	ENDCORE-CHECKWORD, r2
  	mov	csr,r1
*** /usr/src/sys/mdec/rauboot.s.old	Tue Mar 10 15:11:06 1992
--- /usr/src/sys/mdec/rauboot.s	Wed May 31 19:54:49 1995
***************
*** 2,7 ****
--- 2,10 ----
  
  / RA bootstrap.
  /
+ / 1995/05/31 - The unit number needs to go in bits 3-5 of bootdev
+ /	       because the partition number now goes into bits 0-2.
+ /
  / disk boot program to load and transfer to a unix entry.
  / for use with 1 KB byte blocks, CLSIZE is 2.
  / NDIRIN is the number of direct inode addresses (currently 4)
***************
*** 206,211 ****
--- 209,215 ----
  2:
  	mov	ENDCORE-BOOTOPTS, r4
  	mov	unit, r3
+ 	ash	$3,r3			/ unit # in bits 3-5, partition # is 0
  	bis	$MAJOR\<8.,r3
  	mov	ENDCORE-CHECKWORD, r2
  	mov	raip,r1
*** /usr/src/sys/mdec/rkuboot.s.old	Tue Mar 10 15:11:24 1992
--- /usr/src/sys/mdec/rkuboot.s	Wed May 31 19:54:54 1995
***************
*** 2,7 ****
--- 2,10 ----
  
  / RK05 bootstrap.
  /
+ / 1995/05/31 - The unit number needs to go in bits 3-5 of bootdev
+ /	       because the partition number now goes into bits 0-2.
+ /
  / disk boot program to load and transfer
  / to a unix entry.
  / for use with 1 KB byte blocks, CLSIZE is 2.
***************
*** 154,159 ****
--- 157,163 ----
  2:
  	mov	ENDCORE-BOOTOPTS, r4
  	mov	unit,r3
+ 	ash	$3,r3			/ unit # in bits 3-5, partition # is 0
  	bis	$MAJOR\<8.,r3
  	mov	ENDCORE-CHECKWORD, r2
  	mov	csr,r1
*** /usr/src/sys/mdec/rluboot.s.old	Tue Mar 10 15:11:43 1992
--- /usr/src/sys/mdec/rluboot.s	Wed May 31 19:55:00 1995
***************
*** 2,7 ****
--- 2,10 ----
  
  / RL01/02 bootstrap.
  /
+ / 1995/05/31 - The unit number needs to go in bits 3-5 of bootdev
+ /	       because the partition number now goes into bits 0-2.
+ /
  / disk boot program to load and transfer
  / to a unix entry.
  / for use with 1 KB byte blocks, CLSIZE is 2.
***************
*** 159,164 ****
--- 162,168 ----
  2:
  	mov	ENDCORE-BOOTOPTS, r4
  	movb	unit+1,r3
+ 	ash	$3,r3			/ unit # in bits 3-5, partition # is 0
  	bis	$MAJOR\<8.,r3
  	mov	ENDCORE-CHECKWORD, r2
  	mov	csr,r1
*** /usr/src/sys/mdec/rm03uboot.s.old	Tue Mar 10 15:12:01 1992
--- /usr/src/sys/mdec/rm03uboot.s	Wed May 31 19:55:05 1995
***************
*** 2,7 ****
--- 2,10 ----
  
  / RM02/03/05 bootstrap
  /
+ / 1995/05/31 - The unit number needs to go in bits 3-5 of bootdev
+ /	       because the partition number now goes into bits 0-2.
+ /
  / disk boot program to load and transfer
  / to a unix entry.
  / for use with 1 KB byte blocks, CLSIZE is 2.
***************
*** 158,163 ****
--- 161,167 ----
  2:
  	mov	ENDCORE-BOOTOPTS, r4
  	mov	unit,r3
+ 	ash	$3,r3			/ unit # in bits 3-5, partition # is 0
  	bis	$MAJOR\<8.,r3
  	mov	ENDCORE-CHECKWORD, r2
  	mov	csr,r1
*** /usr/src/sys/mdec/rm05uboot.s.old	Tue Mar 10 15:12:18 1992
--- /usr/src/sys/mdec/rm05uboot.s	Wed May 31 19:55:10 1995
***************
*** 2,7 ****
--- 2,10 ----
  
  / RM02/03/05 bootstrap
  /
+ / 1995/05/31 - The unit number needs to go in bits 3-5 of bootdev
+ /	       because the partition number now goes into bits 0-2.
+ /
  / disk boot program to load and transfer
  / to a unix entry.
  / for use with 1 KB byte blocks, CLSIZE is 2.
***************
*** 158,163 ****
--- 161,167 ----
  2:
  	mov	ENDCORE-BOOTOPTS, r4
  	mov	unit,r3
+ 	ash	$3,r3			/ unit # in bits 3-5, partition # is 0
  	bis	$MAJOR\<8.,r3
  	mov	ENDCORE-CHECKWORD, r2
  	mov	csr,r1
*** /usr/src/sys/mdec/si51uboot.s.old	Tue Mar 10 15:12:38 1992
--- /usr/src/sys/mdec/si51uboot.s	Wed May 31 19:55:17 1995
***************
*** 3,8 ****
--- 3,11 ----
  / Fujitsu Eagle (2351A) on SI 6100 Controller bootstrap
  / Actually just a small modification of the RM02/03/05 bootstrap
  /
+ / 1995/05/31 - The unit number needs to go in bits 3-5 of bootdev
+ /	       because the partition number now goes into bits 0-2.
+ /
  / disk boot program to load and transfer
  / to a unix entry.
  / for use with 1 KB byte blocks, CLSIZE is 2.
***************
*** 157,162 ****
--- 160,166 ----
  2:
  	mov	ENDCORE-BOOTOPTS, r4
  	mov	unit,r3
+ 	ash	$3,r3			/ unit # in bits 3-5, partition # is 0
  	bis	$MAJOR\<8.,r3
  	mov	ENDCORE-CHECKWORD, r2
  	mov	csr,r1
*** /usr/src/sys/mdec/si94uboot.s.old	Tue Mar 10 15:12:56 1992
--- /usr/src/sys/mdec/si94uboot.s	Wed May 31 19:55:22 1995
***************
*** 3,8 ****
--- 3,11 ----
  / Fujitsu 160 on SI 9400 or Emulex SC01B Controller bootstrap
  / Actually just a small modification of the RM02/03/05 bootstrap
  /
+ / 1995/05/31 - The unit number needs to go in bits 3-5 of bootdev
+ /	       because the partition number now goes into bits 0-2.
+ /
  / disk boot program to load and transfer
  / to a unix entry.
  / for use with 1 KB byte blocks, CLSIZE is 2.
***************
*** 157,162 ****
--- 160,166 ----
  2:
  	mov	ENDCORE-BOOTOPTS, r4
  	mov	unit,r3
+ 	ash	$3,r3			/ unit # in bits 3-5, partition # is 0
  	bis	$MAJOR\<8.,r3
  	mov	ENDCORE-CHECKWORD, r2
  	mov	csr,r1
*** /usr/src/sys/mdec/si95uboot.s.old	Tue Mar 10 15:13:12 1992
--- /usr/src/sys/mdec/si95uboot.s	Wed May 31 19:55:28 1995
***************
*** 2,7 ****
--- 2,10 ----
  
  / CDC 9766 disk on SI 9500 Controller bootstrap
  /
+ / 1995/05/31 - The unit number needs to go in bits 3-5 of bootdev
+ /	       because the partition number now goes into bits 0-2.
+ /
  / disk boot program to load and transfer
  / to a unix entry.
  / for use with 1 KB byte blocks, CLSIZE is 2.
***************
*** 156,161 ****
--- 159,165 ----
  2:
  	mov	ENDCORE-BOOTOPTS, r4
  	mov	unit,r3
+ 	ash	$3,r3			/ unit # in bits 3-5, partition # is 0
  	bis	$MAJOR\<8.,r3
  	mov	ENDCORE-CHECKWORD, r2
  	mov	csr,r1
