Matrix 320 CPU Bootup Sequence
The Matrix CPU card performs the following sequence at bootup:
-
Jumps to an entry point in EPROM.
-
The EPROM code copies the kernel image and ISFF data acquisition code from
EPROM to system RAM.
-
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
RAM.
-
Executes the usrStartup procedure, which performs the remaining steps.
-
Fetch the data acquistion configuration from the adamserver
process on the base system
-
Initialize the Datel analog-to-digital card,
-
Establish a socket connection to the ingest process on the base system
-
Start the data acquisition processes.
Matrix Bootup Output
On bootup, the Matrix CPU 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 the console
port on the front of the adam. You will need a special cable between the
round 9 pin connector on the adam and the serial port on a PC.
Annotations describing the sequence are shown in red, on the right.
At this point, the Matrix is executing
from RAM.
Initializing backplane net with anchor at 0x600... done.
Backplane anchor at 0x600... Attaching network interface sm0...
done.
Creating proxy network: 128.117.80.172
Attaching network interface lo0... done.
NFS not included.
Adding 2461 symbols for standalone.
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]] ]]]]
]]]]]]]]]] ]]
]]]] (R)
] ]]]]]]]]] ]]]]]]
]]]]]]]] ]]
]]]]
]] ]]]]]]] ]]]]]]]]
]]]]]] ] ]]
]]]]
]]] ]]]]] ] ]]]
] ]]]] ]]] ]]]]]]]]] ]]]] ]]
]]]] ]] ]]]]]
]]]] ]]] ]]
] ]]] ]] ]]]]] ]]]]]] ]] ]]]]]]]
]]]] ]] ]]]]
]]]]] ] ]]]]
]]]]] ]]]]]]]] ]]]] ]] ]]]]
]]]]]]] ]]]]
]]]]]] ]]]]]
]]]]]] ] ]]]]] ]]]] ]] ]]]]
]]]]]]]] ]]]]
]]]]]]] ]]]]] ]
]]]]]] ] ]]] ]]]] ]] ]]]]
]]]] ]]]] ]]]]
]]]]]]]] ]]]]] ]]] ]]]]]]]
] ]]]]]]] ]]]] ]]]]
]]]] ]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
Development System
]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]
VxWorks version 5.1.1
]]]]]]]]]]]]]]]]]]]]]]]]]]
KERNEL: WIND version 2.4
]]]]]]]]]]]]]]]]]]]]]]]]]
Copyright Wind River Systems, Inc., 1984-1993
CPU: Matrix MD-CPU320 BETA. Processor #0.
Memory Size: 0x200000. BSP version 1.0.
start of usrStartup routine
usrStartup ...
calls adamserver hosts
calls adamserver rdate
starts adamstatus RPC process
-> 0x1c2e78 (startup): Tick_Init -> SYSTEM_TT = 0
0x1c2e78 (startup): gmt_tt_set entered, SYSTEM_TT=0x14
0x1c2e78 (startup): gmt_tt_set finished
initializes Datel A2D card
Initializing DATEL DVME-601...
0x1c2e78 (startup): ** Received DATEL DVME-601 EXECUTIVE OFF Acknowledge
**
0x1c2e78 (startup): ** Received DATEL DVME-601 EXECUTIVE ON Acknowledge
**0x1c2e78
(startup): ** DATEL DVME-601 Subroutine Module Downloader: datel/datel2.s02
0x1c2e78 (startup): ** DATEL DVME-601 Module Download ACK0x1c2e78
(startup): ** DATEL DVME-601 Module Download Completed. s02 size=15007
bytes
** DATEL DVME-601 Send function block to run program
** DATEL DVME-601 Execute downloaded program
** DATEL DVME-601 initialization done
0x1c2e78 (startup): HAND_COMMAND = 80
0x1c2e78 (startup): AdPend -> DATEL not ready to suspend
0x1c2e78 (startup): HAND_COMMAND = 80
0x1c2e78 (startup): Datel_Config> DOWNLOADING CONFIGURATION
00 00 00 20 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
0x1c2e78 (startup): Datel_Config> Sending command to datel
0x1c2e78 (startup): Datel config loaded
0x1c2e78 (startup): Datel_Config> 1 channels set active, buffer
size is 16
0x1c2e78 (startup):
Datel_InstHandler-> initialize done
establishes socket connection to
ingest process
sync> Server's address is 128.117.80.29:
0x1c2e78 (startup): <134> adatsSock SO_SNDBUF len=4096
0x1c2e78 (startup): <134> adatsSock SO_SNDBUF len=4096
sync> Connected...
waits for socket connection from
Ironics processor
starts analog acquisition
0x1c2e78 (startup): HAND_COMMAND = 20
0x1c2e78 (startup): AdStart -> START A/D
0x1af0f8 (sync): socket link to serial card established
socket connection with Ironics processor
established
prints out stack table of running tasks
NAME ENTRY
TID SIZE CUR HIGH MARGIN
------------ ------------ -------- ----- ----- ----- ------
tExcTask _excTask
1fa570 7988 152 220
7768
tLogTask _logTask
1f7c70 4988 156 892
4096
tRlogind _rlogind
1c8e70 4988 508 716
4272
startup _usrStartup 1c2e78
6324 3280 4048 2276
tNetTask _netTask
1edae4 9988 88 748
9240
gmt_tt_set _gmt_tt_set 1acd08
1988 136 1188 800
sync _sync
1af0f8 3992 1544 1852 2140
fast_write _fast_write 1adfc8
1988 156 488 1500
fast_buffer _fast_buffer 1ad668 1988
232 884 1104
tPortmapd _portmapd 1c7958
4988 308 2612 2376
tShell _shell
1c5718 9324 804 924
8400
status _status
1ac3a8 2992 100 808
2184
adamstatus _adamstatus 1c0d68
2488 288 1572 916
INTERRUPT
1000 0 384 616
0x1c2e78 (startup): <134> ragwort booted
usrStartup done.
Successful boot!
Datel Code
The data acquisition code for the Datel analog-to-digital processor is
stored in a file called datel2.s02. This is an ASCII file of
machine code encoded into Motorola S records. This file is copied
from the base system to the adam using the UNIX remote shell or FTP. See
the User boot parameter. The datel2.s02 file then must
exist in the adats/datel subdirectory of the home directory
for that user, and the user must have (at least) read access to the file.
Matrix Boot Parameters
Several parameters are stored in non-volatile RAM on the Matrix
card. These include the hostname and IP addresses of the adam (known in
the VxWorks operating system as the "target"), 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
: med
Name of network device, med or ppp
processor number : 0
Always 0
host name
: aster
Hostname of base server
inet on ethernet (e) : 192.168.4.29 IP
address & netmask of Matrix ethernet card
inet on backplane (b): 192.168.4.30 IP
address & netmask of Matrix on backplane network
host inet (h) : 192.168.4.10
IP address of base server
user (u)
: aster
Username of aster account on base server
flags (f)
: 0x108
Boot flags
target name (tn) : ragwort
Hostname of adam
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 non-volatile, battery-backed RAM on the Matrix, so
they will be retained after power down.
-> bootChange
'.' = clear field; '-' = go to previous field; ^D =
quit
boot device
: med
processor number : 0
host name
: aster
file name
:
inet on ethernet (e) : 192.168.4.29tt>
inet on backplane (b): 192.168.4.30
host inet (h) : 192.168.4.10
gateway inet (g) :
user (u)
: aster
ftp password (pw) (blank = use rsh):
flags (f)
: 0x108
target name (tn) : ragwort
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 ethernet" and "inet on backplane" parameters, 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 ethernet (e) : 128.117.80.171:ffffff00
inet on backplane (b): 128.117.80.172: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.
Displaying Boot Parameters in non-volatile RAM
The bootChange command copies the boot parameters to non-volatile SRAM, at
address 0xffe20900. These can be displayed with the command
-> bootParamsShow(0xffe20900)
Once, displaying the boot parameters in NV SRAM seemed to help a sick adam.
The boot sequence was failing because the boot parameters were jibberish,
even though I had run bootChange several times. After displaying
the bad parameters in SRAM, then running bootChange, the problem
cleared up.
User Boot Parameter
The processes on the adam will run under the user name specified by
the"user (u)" boot parameter, and it is the user name for processes that
are run from the console port on the Matrix or Ironics.
The adam fetches the datel2.s02 file from the base system using either FTP
or the UNIX remote shell, using that
user name, so a user account with a name specified
by the "user (u)" boot parameter must exist on the base server.
If the "ftp passwd (pw)" parameter is non-blank, the adam will try to
fetch the file with FTP.
If the ftp passwd parameter is a blank, the adam will fetch the file
using a remote shell and the base system must provide remote shell access,
without a password, to the user account on the adam. Create a ".rhosts"
file in the home directory of the user on the base system. Enter the names
of the adams needing remote shell access in the .rhosts file, one adam
name per line.
To test whether the remote shell permissions are correct, try:
> rlogin "basename"
from the VxWorks shell prompt, where basename is the host name
of the base system. If the remote shell permissions are
correct, you will not be prompted for a password. Do logout
to logout.
Neither the FTP or remote shell methods offer much security. To improve
security, one method is to run tcp_wrappers on the base system, denying
FTP or remote shell access to outside hosts, but listing the adam names
in the /etc/hosts.allow file. Get the advice of a system administrator
about tcp_wrappers and security.
Displaying IV3234 Ironics Boot Parameters from Matrix
The 16 port IV3234 Ironics' memory is accessible from the Matrix card at address 0x20400000.
Therefore you can also display the Ironic's boot parameters from the Matrix
(but you can't change them from the Matrix):
-> bootParamsShow(0x20400700)
Displaying IV1624 Ironics Boot Parameters from Matrix
The 8 port IV1624 Ironics' memory is accessible from the Matrix card at address 0xf0a00000.
To display the Ironic's boot parameters from the Matrix:
-> bootParamsShow(0xf0a00700)
Remote Login
The Matrix and Ironics cards accept remote logins via rlogin, not telnet.
"aster" is the only account enabled for remote logins on the Matrix or
Ironics cards, so enter aster when prompted for a VxWorks login:
The version of VxWorks on the VME cards ignores any -l user parameter
on incoming rlogins.
If you then wish to login into other systems as another user, do
iam "newname" at the VxWorks prompt to change your user name.
This would be useful, for example, if the user boot parameter is set to
something other than "aster", and you wish to test remote logins to other systems
from an rlogin session on the adam.