[comp.sys.ibm.pc.hardware] Problems with Inmos IMS B008 TRAM motherboard on IBM-a-like PC

dac@ukc.ac.uk (David Clear) (09/04/90)

This posting refers to the IMS B008 TRAM motherboard for IBM PCs.

I am having problems getting the Inmos B008 TRAM motherboard to work. On
running the iserver program, I receive the message:

	Error - iserver - unable to write byte <n> to the boot link.

The manual says that this error message could be caused by the object module
being in the incorrect format. This does not help me. I need help from
someone who has experience with the board. Below is a pretty thorough
description of my setup:

1. Hardware.

	My system is a Viglen Vig I Plus with IMS B008 TRAM motherboard,
	1 x IMS B404-3 T800 2Mb TRAM,
	1 x IMS B411   T425 1Mb TRAM,
	2 x IMS B407   T222 64k Lance (ethernet) TRAM.

The TRAMS are set up in the following way:

     SLOT 0        SLOT 1        SLOT 2        SLOT 6
    
    |~~~~~~|      |~~~~~~|      |~~~~~~|      |~~~~~~|
H  0|      |2    1|      |2    1|      |2    1|      |
O===| T800 |======| T212 |======| T425 |======| T212 |=== etc
S   |      |      |      |      |      |      |      |
T   |______|      |______|      |______|      |______|
         I 3      0 I  I 3      0 I  I 3      0 I  I 3
         I          I  I          I  I          I  I
         I          I  I          I  I          I  I
         I 10     1 I  I 11     2 I  I 12     6 I  I 16
    |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ ~
    |                IMS C004 Link Switch               ~ ~ ~
    |____________________________________________________ _ _

The slot numbers refer to the motherboard slots, the rest of the numbers
correspond to transputer links/C004 links.
=== are hard links (hardwired by the TRAM's position on the motherboard)
I   are soft links which are switched through the C004 link switch.

2. Configuration Files

The hardwire configuration file as used by the B008 support software contains
the following:

-- B008 harwire description
DEF B008
  SIZES
    T2 1
    C4 1
    SLOT 10
    EDGE 10
  END
  T2CHAIN
    T2 0, LINK 3 C4 0
  END
  HARDWIRE
    SLOT 0,LINK 2 TO SLOT 1,LINK 1
    SLOT 1,LINK 2 TO SLOT 2,LINK 1
    SLOT 2,LINK 2 TO SLOT 3,LINK 1
    SLOT 3,LINK 2 TO SLOT 4,LINK 1
    SLOT 4,LINK 2 TO SLOT 5,LINK 1
    SLOT 5,LINK 2 TO SLOT 6,LINK 1
    SLOT 6,LINK 2 TO SLOT 7,LINK 1
    SLOT 7,LINK 2 TO SLOT 8,LINK 1
    SLOT 8,LINK 2 TO SLOT 9,LINK 1
    C4 0,LINK 10 TO SLOT 0,LINK 3
    C4 0,LINK 1 TO SLOT 1,LINK 0
    C4 0,LINK 11 TO SLOT 1,LINK 3
    C4 0,LINK 2 TO SLOT 2,LINK 0
    C4 0,LINK 12 TO SLOT 2,LINK 3
    C4 0,LINK 6 TO SLOT 6,LINK 0
    C4 0,LINK 16 TO SLOT 6,LINK 3
  END
PIPE B008 END

The second section (HARDWIRE) is thought to be correct, but anything above
it... I don't know.

The softwire configuration file which says how the C004 is to be configured
contains the following:

SOFTWIRE
 PIPE 0
   SLOT 1, LINK 3 TO SLOT 2, LINK 0
   SLOT 2, LINK 3 TO SLOT 6, LINK 0
END

This is thought to be correct. These files are accepted by the MMS software
and a computed network map (using a worm) shows the result to be, as
required, the following:


     SLOT 0        SLOT 1        SLOT 2        SLOT 6
    
    |~~~~~~|      |~~~~~~|      |~~~~~~|      |~~~~~~|
H  0|      |2    1|      |2    1|      |2    1|      |
O===| T800 |======| T212 |======| T425 |======| T212 |=== etc
S   |      |      |      |      |      |      |      |
T   |______|      |______|      |______|      |______|
                       | 3      0 |  | 3      0 |
                       |          |  |          |
                       |__________|  |__________|


These configuration files are used on boot up to configure the C004.

3. Software

The following software has been used to try to get all four transputers
talking and causes the error message at the top of this article to be
displayed (ie the code does not load).

The software I'm trying to run is very simple - just to get the transputers
talking. Here is the code:

-- File: four.occ
-- Send 10 numbers down a channel
PROC four(CHAN OF INT16 data)
  SEQ
    SEQ x = 0 FOR 10
      data ! (INT16 x)
:

-- File: three.occ
-- Route numbers through the processor
PROC three(CHAN OF INT16 in, out)
  INT16 x:
  SEQ
    WHILE TRUE
      SEQ
        in ? x
        out ! x
:

-- File: two.occ
-- Route numbers through the processor
PROC two(CHAN OF INT16 in, out)
  INT16 x:
  SEQ
    WHILE TRUE
      SEQ
        in ? x
        out ! x
:

-- File: one.occ
-- Read numbers from channel and display
#INCLUDE "hostio.inc" ---- contains SP protocol

#USE "hostio.lib"  -- iserver libraries

PROC one(CHAN OF SP fs, ts, CHAN OF INT16 data)
  INT16 x:
  
  WHILE TRUE
    SEQ
      data ? x
      so.write.int(fs, ts, (INT x), 4)
:


As you can see, these programs are trivial. INT16s are used instead of INTs
as INTs are different sizes across different transputers (T8 & T4 vs T2).
The configuration file for the above program is as follows:

#INCLUDE "hostio.inc"
#INCLUDE "linkaddr.inc"

#USE "one.c8h"
#USE "two.c2h"
#USE "three.c4h"
#USE "four.c2h"

-- external channels to be mapped to links
CHAN OF SP fs, ts:

CHAN OF INT16 a,b,c:

PLACED PAR
  PROCESSOR 0 T8
    PLACE fs AT link0.in:
    PLACE ts AT link0.out:
    PLACE a AT link2.in:
    one(fs, ts, a)
  
  PROCESSOR 1 T2
    PLACE a AT link1.out:
    PLACE b AT link2.in:
    two(b,a)

  PROCESSOR 2 T4
    PLACE b AT link1.out:
    PLACE c AT link2.in:
    three(c,b)

  PROCESSOR 3 T2
    PLACE c AT link1.out:
    four(c)


The files compile and link correctly. Running iserver /sb on the resultant
binary gives the error:

	Error - iserver - unable to write byte <n> to the boot link.

The information contained in this posting is, I think, all the information I
have on the problem. I can't see why the above program won't run. The
setup files and software all seem to be ok from where I'm standing.

I'd appreciate any suggestions (within reason!).

Dave.

-- 
% cc life.c                      | David Clear <dac@ukc.ac.ukc>
% a.out                          | Local Area Networks, Computing Laboratory,
Segmentation fault (core dumped) | University of Kent, Canterbury, England.