Port-vax archive

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

Re: VAXstation 4000 TURBOchannel not working



On Thu, 24 Mar 2016, Felix Deichmann wrote:

> >   I suggest that you only map as much as an individual TC option needs, as
> > reported in the REX ROM header.
> 
> You mean the "slot size" field in the ROM header [1]? This is given as a
> multiple of 4 MB. Sounds reasonable at first.

 Yes.

> >   Most options have been designed to fit in the 4MB slot space the original
> > 5000/200 TC implementation provided, and DMA options are particularly
> > conservative here as all they need is the ROM space plus a bunch of
> > control registers.
> 
> Accordingly, the DECstation/DECsystem 5000 Model 200 slot size is mentioned to
> be 1 (i. e. 4 MB).
> 
> But the ugly thing is that I would have to parse the ROM header for it in
> tc_vsbus.c *before* it is again parsed in the generic TC part (tc.c). Code
> duplication etc.?

 Hmm, I guess you need at least a temporary mapping to get at the ROM 
header.

 I checked what Linux does and its TC bus driver actually maps whole slots 
one by one temporarily as it walks the TC space and reads ROM headers to 
present for option drivers' use.  It would be enough though to map the 
initial 4MB only to get at the two possible REX ROM locations.  Slots are 
then unmapped and option drivers need to map whatever they need themselves 
as they claim devices.  This is platform independent.

 I found out you don't actually need to poke at DWCTX-BX adapter's control 
registers to get the TC option working -- the settings left by the console 
firmware seem adequate, unless you want to make use of the SG map (I 
couldn't be bothered given the amount of other stuff to handle combined 
with the lack of time; perhaps you'll be able to put it in a good use).

 My most serious (regular) use for the adapter so far was with a PMAD-A 
option as the NFS root interface.  No issues there, worked like a charm.

> What would be the preferred way to do this? Use functions from tc.c? Don't
> know how the other TC platforms do this (alpha, pmax)... Do they map at all or
> map the whole option space?

 Perhaps someone else can fill you in here, I only know what hardware does 
(and Linux).

> And can/should we rely on the option to report the "slot size" correctly? What
> does the "ZLX-E3 aka PMAGD-CA" actually show in "slot size"?

 All options I came across had their REX ROM contents right.  The ZLX-E3 
option reports 32MB (i.e. 8), and ZLX-E2 and ZLX-E1 report 16MB and 4MB, 
respectively.

> >   KA49 seems to be using 0x51, this is at least what my old findings
> > indicate and what worked with a bunch of options I tried with the Linux
> > port; I can't speak of KA46 as I didn't have one to check back when I was
> > at it, but it just might be the same.
> 
> What I copied seems to work for the KA46, too.

 Great!

  Maciej


Home | Main Index | Thread Index | Old Index