I got the driver to come up on a second controller in E11.
Evidently the PRO350 RA driver would only work as a root drive,
which is attached via some other mechanism that I am not
familiar with. What I did to get it to autoconfig was create an
"raprobe" routine that simply returned the status code that says
"it's OK and you don't need to look for an interrupt". Crude,
but the target machine won't work without the controller
present.
Now I need to work on the boot sector. The problem is that
rauboot.s in the distribution is corrupt, in both the tree and
the tar version. See file
http://www.tuhs.org/Archive/PDP-11/Distributions/ucb/2.9-pro350/
mdec/rauboot.s, the line that begins "NDIRIN = 4." ends in
garbage, and there is a chunk of code missing.
One of the doc files, I think boot.doc, has the same problem. It
seems that the disk from which the 2.9BSD-PRO patch distribution
was prepared was slightly scrambled. There is a chunk of C code
right in the middle of the doc in place of some important info.
I've been able to reconstruct most of rauboot.s by comparing
with other boot programs, except I need the snippet of code for
initializing the MSCP controller. I can probably figure this out
 from the 2.11 driver, but I'd much rather not have
to. The 2.11 
driver is very different.
Does anyone know where I can get the original file?
--
Jonathan Engdahl             Rockwell Automation
Principal Research Engineer  24800 Tungsten Road
Advanced Technology          Euclid, OH 44117  USA
Euclid Labs                  
http://users.safeaccess.com/engdahl
----- Original Message -----
From: "Steven M. Schultz" <sms(a)TO.GD-ES.COM>
To: <classiccmp>; <engdahl>; <pups>
Sent: Saturday, June 30, 2001 12:10 AM
Subject: Re: [pups] adding MSCP driver to 2.9BSD
  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(a)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(a)moe.2bsd.com (when the circuit gets fixed ;))