[pups] adding MSCP driver to 2.9BSD

From: Steven M. Schultz <sms_at_TO.GD-ES.COM>
Date: Fri Jun 29 23:10:49 2001

Hi --

        I'd normally be posting from my '2bsd.com' account but the circuit
        failed today and the telco is due out tomorrow (Saturday) morning.
        
> From: "Jonathan Engdahl" <engdahl_at_cle.ab.com>
> I took the MSCP disk driver (the ra driver) from the PRO-350
> version of 2.9BSD on the PUPS archive, and added it to the

        Ah, I didn't know that someone had created a MSCP driver for 2.9

> I have figured out that the autoconfig will not work with this
> driver. It reports "No autoconfig routines". Evidently, probe is
> not implemented in either the 2.9 or 2.11 version of the MSCP driver.
>
        I don't know about 2.9 but I do know just a little bit about 2.11
        and the MSCP (and TMSCP) drivers 'probe' and "autoconfig" just fine.

        In fact in 2.11 floating vectors are allocated descending from 01000
        and programmed into the adaptor for secondary controllers (the
        primary/first/boot controller always gets 0154).

> So, how to I get UNIX to "attach" the ra driver?

        When you updated the kernel did you also update the 'autoconfig'
        process? In 2.11 there is /sys/autoconfig and whenever a new
        device driver is added to the kernel it is also necessary to
        update the autoconfig code with a 'XXauto.c" file and an entry
        in a couple tables.

        As I recall on 2.9 the autoconf stuff was intermingled with the
        regular driver sources which made for a bit of a mess. When 2.11
        came around the chance was taken to clean things up.

        Programmable vector devices (such as MSCP) are a VERY awkward thing
        for 'autoconfig' to deal with. Prior to 2.11 the vectors were
        more or less hardcoded in 'l.s' (or was it scb.s or locore.s - gads
        my memory is slipping) and the driver. 'autoconfig' was mostly a
        double check that a device was really present. 2.11 has the kernel
        hooks for 'autoconfig' to request a dynamically allocated vector
        which can be assigned to a device - bit of a hack but fairly
        elegantly done.

> This is the first time I've tried doing a UNIX sysgen, so extra
> explanations might be required. The only documentation I have is
> what I downloaded along with the distribution.

        Look in /sys/pdpuba and see if you can find the '*auto.c' files -
        follow their lead and craft something for 'autoconfig'. The
        simplest case is to just "check that something exists" at the
        CSR and return 'true' - don't try to force an interrupt, etc.

        Perhaps some other folks who have run 2.9 more recently (or who
        have better memory than I do ;)) can jump in here.

        Steven Schultz
        sms_at_moe.2bsd.com (when the circuit gets fixed ;))
Received on Fri Jun 29 2001 - 23:10:49 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:34:01 BST