Ironics IV3234 CPU Bootup Sequence

The Ironics serial card acts very much like the Matrix CPU at bootup:
  1. Jumps to an entry point in EPROM.
  2. The EPROM code copies the kernel image and  serial data acquisition code from EPROM to system RAM.
  3. Jumps to an entry point in RAM which initializes the hardware and configures the network, using the boot parameters that are stored in non-volatile (battery backed) RAM.
  4. Executes the usrStartup procedure, which performs the remaining steps.
  5. Fetch the serial data acquistion configuration from the  adamserver  process on the base system
  6. Initialize the serial ports
  7. Establish a socket connection to the sync process on the Matrix card
  8. Start the serial data acquisition processes.

Ironics IV3234 Bootup Output

On bootup, the Ironics card should send the following messages to the console port. If problems are encountered, connect a PC with communications software, configured for 9600 baud, no parity, 8 data bits to  Port A (it may be labeled as the console port) on the top of the Ironics card.  This console port is not accessible from the outside of the adam. A straight-through male DB-9 to female DB-9 serial cable works with a typical 9-pin serial port on a PC.
Annotations describing the sequence are shown in red, on the right.

At this point, the Ironics is executing from RAM.
Backplane anchor at 0x400600... Attaching network interface sm0... done.
Attaching network interface lo0... done.
NFS not included.

Adding 2216 symbols for standalone.
 

 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
      ]]]]]]]]]]]  ]]]]     ]]]]]]]]]]       ]]              ]]]]         (R)
 ]     ]]]]]]]]]  ]]]]]]     ]]]]]]]]       ]]               ]]]]
 ]]     ]]]]]]]  ]]]]]]]]     ]]]]]] ]     ]]                ]]]]
 ]]]     ]]]]] ]    ]]]  ]     ]]]] ]]]   ]]]]]]]]]  ]]]] ]] ]]]]  ]]   ]]]]]
 ]]]]     ]]]  ]]    ]  ]]]     ]] ]]]]] ]]]]]]   ]] ]]]]]]] ]]]] ]]   ]]]]
 ]]]]]     ]  ]]]]     ]]]]]      ]]]]]]]] ]]]]   ]] ]]]]    ]]]]]]]    ]]]]
 ]]]]]]      ]]]]]     ]]]]]]    ]  ]]]]]  ]]]]   ]] ]]]]    ]]]]]]]]    ]]]]
 ]]]]]]]    ]]]]]  ]    ]]]]]]  ]    ]]]   ]]]]   ]] ]]]]    ]]]] ]]]]    ]]]]
 ]]]]]]]]  ]]]]]  ]]]    ]]]]]]]      ]     ]]]]]]]  ]]]]    ]]]]  ]]]] ]]]]]
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]       Development System
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]       VxWorks version 5.1.1
 ]]]]]]]]]]]]]]]]]]]]]]]]]]       KERNEL: WIND version 2.4
 ]]]]]]]]]]]]]]]]]]]]]]]]]       Copyright Wind River Systems, Inc., 1984-1993

                               CPU: Ironics IV-3234.  Processor #1.
                              Memory Size: 0x3fff00.  BSP version 1.0.
 
 

start of usrStartup routine
usrStartup ...
calls adamserver  hosts
calls adamserver  rdate
waits for socket connection to sync process on Matrix
-> 0x3de9ac (serialio): serialio> sync_host address is 128.117.80.172
0x3de9ac (serialio): serialio> Connect failed: S_errno_ECONNREFUSED
0x3de9ac (serialio): serialio> trying to connect again...
0x3de9ac (serialio): serialio> sync_host address is 128.117.80.172
0x3de9ac (serialio): serialio> Connect failed: S_errno_ECONNREFUSED
0x3de9ac (serialio): serialio> trying to connect again...
0x3de9ac (serialio): serialio> sync_host address is 128.117.80.172
0x3de9ac (serialio): serialio> Connect failed: S_errno_ECONNREFUSED
0x3de9ac (serialio): serialio> trying to connect again...
0x3de9ac (serialio): serialio> sync_host address is 128.117.80.172
0x3de9ac (serialio): serialio> Connect failed: S_errno_ECONNREFUSED
0x3de9ac (serialio): serialio> trying to connect again...
0x3de9ac (serialio): serialio> sync_host address is 128.117.80.172
0x3de9ac (serialio): serialio> Connect failed: S_errno_ECONNREFUSED
0x3de9ac (serialio): serialio> trying to connect again...
0x3de9ac (serialio): serialio> sync_host address is 128.117.80.172
0x3de9ac (serialio): serialio> Connect failed: S_errno_ECONNREFUSED
0x3de9ac (serialio): serialio> trying to connect again...
0x3de9ac (serialio): serialio> sync_host address is 128.117.80.172
0x3de9ac (serialio): serialio> Connect failed: S_errno_ECONNREFUSED
0x3de9ac (serialio): serialio> trying to connect again...
0x3de9ac (serialio): serialio> sync_host address is 128.117.80.172
0x3de9ac (serialio): serialio> Connect failed: S_errno_ECONNREFUSED
0x3de9ac (serialio): serialio> trying to connect again...
0x3de9ac (serialio): serialio> sync_host address is 128.117.80.172
0x3de9ac (serialio): serialio> Connect failed: S_errno_ECONNREFUSED
0x3de9ac (serialio): serialio> trying to connect again...
0x3de9ac (serialio): serialio> sync_host address is 128.117.80.172
0x3de9ac (serialio): sync_host connected
socket connection to sync process on Matrix is established
calls adamserver  configintto get value for "iv3234_base_chan"
calls adamstatus systemttaddr remote procedure on matrix to get shared address of system clock counter
calls adamserver  getsiocfg
initializes serial ports
starts serial data acquisiton
starts rserial process
  NAME        ENTRY        TID     SIZE   CUR  HIGH  MARGIN
------------ ------------ -------- ----- ----- ----- ------
tExcTask     _excTask     3fa578    7988   152   220   7768
tLogTask     _logTask     3f7c78    4988   156   880   4108
tRlogind     _rlogind     3ea648    4988   508   716   4272
startup      _usrStartup  3e4650    6992    76  3676   3316
tNetTask     _netTask     3edaec    9988    88   712   9276
serialMsgHan _serialMsgHa 3d38e0    3980  2208  2276   1704
portPrompter _portPrompte 3d27b0    1484   140   208   1276
serialio     _serialio    3de9ac    3988   644  2348   1640
rserial_recv 0x0000006d9c 3c5988    3984    40    40   3944
tShell       _shell       3e6ef0    9324   804   924   8400
tPortmapd    _portmapd    3e9130    4988   308  1112   3876
siostatus    _siostatus   3dd87c    2988   288  1572   1416
INTERRUPT                           1000     0   272    728
0x3e4650 (startup): <134> yarrow booted
usrStartup done.
0x3c5988 (rserial_recv): receive_side> Listening to client
0x3c5988 (rserial_recv): receive_side> Accepting CLIENT
prints out stack table of running tasks
Successful boot!

Ironics Boot Parameters

As is the case on the Matrix CPU card, several parameters are stored in  battery-backed RAM on the Ironics. These include the hostname and IP address of the Ironics (known in the VxWorks operating system as the "target"), the IP address of the Matrix card on the backplane network, and the hostname and IP address of the base server (known in VxWorks as the "host")

Displaying Boot Parameters

To dislay the current value of the boot parameters, do "bootParamsShow(0x700)" at the VxWorks prompt (->):

-> bootParamsShow(0x700)

boot device          : sm=0x400600       Name of network device, always "sm=0x400600"
processor number     : 1                                           Always 1
host name            : array             Hostname of base server
inet on backplane (b): 192.168.4.31      IP address & netmask of Ironics "backplane" network interface
host inet (h)        : 192.168.4.10      IP address of base server
gateway inet (g)     : 192.168.4.30      IP address of Matrix card on backplane network
user (u)             : aster             Not used on Ironics
flags (f)            : 0x108             Boot flags
target name (tn)     : yarrow            Hostname of Ironics card

value = 1 = 0x1
->

Other parameters may be displayed, but are not used in the present version of software on the adams.
 

Changing Boot Parameters

To change the boot parameters, use the "bootChange" command.  The parameters are saved in battery-backed RAM so they will be retained after power down.

If the IP address of the Matrix card has changed, the Ironics will report the following, every two seconds:

0x3de9ac (serialio): serialio> Connect failed: S_errno_ECONNREFUSED

This message will interfere with your typing.  The workaround is to suspend the serialio task, which is in this example is task id 0x3de9ac:

-> ts 0x3de9ac

Then you can change the boot parameters without rude interruption:

-> bootChange

'.' = clear field;  '-' = go to previous field;  ^D = quit

boot device          : sm=0x400600
processor number     : 1
host name            : array
file name            :
inet on ethernet (e) :
inet on backplane (b): 192.168.4.31
host inet (h)        : 192.168.4.10
gateway inet (g)     : 192.168.4.30
user (u)             : aster
ftp password (pw) (blank = use rsh):
flags (f)            : 0x108
target name (tn)     : yarrow
startup script (s)   :
other (o)            :
 

value = 0 = 0x0
->
 

As you are prompted for the value of each parameter, type in its value, followed by a carriage return. Use back space to correct typos. To clear an unused parameter, enter a  period.  Do a "bootParamsShow(0x700)" afterwards to verify.

If your network uses a non-default netmask, you can specifiy the netmask with the  "inet on backplane" parameter, by following the IP address by a colon and then the netmask in hex notation.  For example to set the netmask to ffffff00 (octal: 255.255.255.0) for an adam on the NCAR network, do:

inet on backplane (b): 128.117.80.173:ffffff00

Set the netmask for the target only, do not specify it with the "host inet (h)" parameter.

After setting the boot parameters, reboot the adam.