Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: I/O bus reset to fix CMD MSCP controllers (and probably others)



> Anyway, I've re-read most of the UDA50 programming manual this
> morning and [...]

It seems to me that manual - at least if it's the one I found - is
somewhat incomplete.  Quoting from a comment in the MSCP support for my
emulator, which emulates a MicroVAX-II:

 * AA-L621A-TK is silent on some important questions.  In particular:
 *
 * What does reading IP before the end of the four-step init sequence
 *  return?  Are there any side effects of such a read?
 *
 * What does reading SA during normal operation return?  Are there any
 *  side effects of such a read?
 *
 * The KA630 boot ROM seems to expect a nonzero value in SA the first
 *  time it reads it, which seems to run counter to AA-L621A-TK's
 *
The host begins the initialization sequence either by  issuing  a  bus
INIT  or  by  writing  any  value  to  the IP register.  The port must
guarantee that the host will read zeroes in SA on the next bus  cycle.
Initialization  then  sequences  through Steps 1-4 as described on the
following pages.
 *
 *  but the ROM code does read from IP before reading SA.  (If the ROM
 *  code finds zero in SA, it seems to assume the device has already
 *  been initialized.)  I'm going to assume that reading from IP also
 *  pushes the device from reset to step 1.
 *
 * The spec is also silent on the question of what order the elements
 *  of the command and response rings are supposed to be used in.
 *  Calling them `ring's implies that they are to be used in cylic
 *  order, but this is not stated; also, there's no hint where the
 *  hands should begin in that case.  The NetBSD driver seems to use 0,
 *  so that's what we use.

/~\ The ASCII				  Mouse
\ / Ribbon Campaign
 X  Against HTML		mouse%rodents-montreal.org@localhost
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B


Home | Main Index | Thread Index | Old Index