Configuring WRS Tornado 2.x for EPICS

If you have a virgin installation of Tornado and want to run EPICS, at least the changes listed below need to be made to your BSP configuration. To use some hardware interface boards you may need additional changes to the BSP which depend on your CPU type, but the changes given here should be sufficient to get started. <vw> is the installation directory for tornado at your site.

cd to <vw>/target/config/all

Copy the file configAll.h to configAll.h.orig and edit the original. Find the INCLUDED SOFTWARE FACILITIES section.

You must add the following lines (or better, move them here from the EXCLUDED FACILITIES section lower down):

#define INCLUDE_CPLUS_STRING      /* include string class */
#define INCLUDE_LOADER          /* object module loading */
#define INCLUDE_SHELL           /* interactive c-expression interpreter */
#define INCLUDE_STARTUP_SCRIPT  /* execute start-up script */
#define INCLUDE_STAT_SYM_TBL    /* create user-readable error status */
#define INCLUDE_SYM_TBL         /* symbol table package */

For Tornado 2.2.x you will also need #define INCLUDE_DISK_UTIL which was added for that release.

These lines are recommended, but may not be essential:

#define INCLUDE_DEBUG           /* native debugging */
#define INCLUDE_POSIX_TIMERS    /* POSIX timers */
#define INCLUDE_SECURITY        /* shell security for network access */
#define INCLUDE_SHOW_ROUTINES   /* show routines for system facilities*/
#define INCLUDE_SPY             /* spyLib for task monitoring */
#define INCLUDE_UNLOADER        /* object module unloading */

You can delete (or move to the EXCLUDED FACILITIES section) these:

#define INCLUDE_SIGNALS         /* software signal library */
#define INCLUDE_ANSI_LOCALE     /* ANSI-C locale library functionality */
#define INCLUDE_WDB             /* WDB debug agent */

Increase the definition of NUM_FILES to 100, 150 or even 250 if you're likely to have many simultaneous users interacting with each IOC.

Within the relevent #if section for your CPU family, increase the setting of SHELL_STACK_SIZE to 20000

In the INCLUDED NETWORK FACILITIES section, you should add these lines (or move them from the EXCLUDED NETWORK FACILITIES section below):

#define INCLUDE_SNTPC           /* SNTP client */
# define STANDALONE_NET         /* initialize network in */
# define INCLUDE_NET_SYM_TBL    /* load symbol table from network */

You may also want to include these, although they're probably not essential:

#define INCLUDE_BSD             /* netif driver support */
#define INCLUDE_NFS             /* nfs package */
#define INCLUDE_PING            /* ping() utility */
#define INCLUDE_PROXY_SERVER    /* proxy arp server (Master Board) */
#define INCLUDE_RPC             /* rpc package */
#define INCLUDE_TELNET          /* telnet-style remote login */

If you're going to be using NFS for file system access, at about line 880 set suitable values for NFS_USER_ID and NFS_GROUP_ID for your site. These values can be over-ridden at runtime, but the settings here allow you to define some sensible site defaults.

If you added the INCLUDE_SECURITY line above, you'll want to change the strings defined for LOGIN_USER_NAME and LOGIN_PASSWORD (NB the password string you give should be generated from your desired password using the vxencrypt program supplied with Tornado. You can add more users and passwords in your startup scripts if you need them).

Finally go to the end of the file and delete any line there which looks like this:

    #include <configDb.h>

which would otherwise override all your hard-won settings above.

Save and quit the editor, then cd to <vw>/target/config/<your target> and rebuild vxWorks (see the vxWorks users guide if you need help on this, you may need to set some environment variables before running make).

Andrew Johnson