[pups] Major/minor device numbers and device names for MSCP drives?

C. H. Dickman chd_1 at nktelco.net
Tue Jun 20 07:43:33 AEST 2006

Robert Armstrong wrote:
>   Probably this is documented somewhere, but I really need a pointer 
> or a brief tutorial on the major/minor device numbers for mknod() and 
> the device names for MSCP drives in 2.11bsd.
This is what I remember about it all when I struggled with it a couple 
of years ago.

The 8 bit minor number has 3 parts: the upper two bits are the 
controller (4 controllers max), the middle 3 bits are unit number (8 
drives per controller) and the lower 3 bits are the partition (a-h).

The assignment of device names is static (or nearly static). The 
discovery code for the controllers checks them in the order listed in 
/dev/dtab and assigns a controller number to each that is discovered and 
in that order (the nearly static part). Note also that DEC has a 
standard order for controller addresses too (which might be different). 
After that, drives are accessed using the 3 bit unit number which MUST 
correspond to the MSCP unit number (a catch follows because of this). 
Partitions are accessed with the 3 bit partition number.

The catch is that MSCP unit numbers are supposed to be global cross all 
controllers and the microPDP-11/83 boot code assumes this. The boot code 
can only see the first unit n that is encountered and 2.11BSD can only 
see the drives with MSCP unit numbers less than 8.

If you only have one controller there is no problem. When you add 
multiple controllers, things get more complex because you can only boot 
the first 8 MSCP units if you want to be able to access them from 2.11BSD.



More information about the TUHS mailing list