From 96d7a2ff1c74243ed210665c555070c6e12d8b6b Mon Sep 17 00:00:00 2001 From: Dirk Zimoch Date: Fri, 11 Mar 2016 16:44:05 +0100 Subject: [PATCH] startup files added --- App/startup/network.fin | 7 ++ App/startup/network.hipa | 7 ++ App/startup/network.proscan | 6 ++ App/startup/network.sls | 19 +++++ App/startup/network.trfcb | 5 ++ App/startup/saveRestore.script_common | 1 + App/startup/saveRestore.script_linux | 1 + App/startup/startup.script_common | 110 ++++++++++++++++++++++++++ App/startup/startup.script_iocmon | 1 + App/startup/startup.script_linux | 13 +++ App/startup/startup.script_part2 | 9 +++ App/startup/startup.script_part3 | 16 ++++ App/startup/startup.script_win32 | 11 +++ App/startup/startup.script_win64 | 14 ++++ App/startup/sw-require.script | 22 ++++++ 15 files changed, 242 insertions(+) create mode 100644 App/startup/network.fin create mode 100644 App/startup/network.hipa create mode 100644 App/startup/network.proscan create mode 100644 App/startup/network.sls create mode 100644 App/startup/network.trfcb create mode 100644 App/startup/saveRestore.script_common create mode 100644 App/startup/saveRestore.script_linux create mode 100644 App/startup/startup.script_common create mode 100644 App/startup/startup.script_iocmon create mode 100644 App/startup/startup.script_linux create mode 100644 App/startup/startup.script_part2 create mode 100644 App/startup/startup.script_part3 create mode 100644 App/startup/startup.script_win32 create mode 100644 App/startup/startup.script_win64 create mode 100644 App/startup/sw-require.script diff --git a/App/startup/network.fin b/App/startup/network.fin new file mode 100644 index 0000000..a7b68e3 --- /dev/null +++ b/App/startup/network.fin @@ -0,0 +1,7 @@ +# setup mount points +hostAdd ("fileserver","129.129.145.56") +nfsMount ("fileserver", "/export/fin/ioc", "/ioc") +nfsMount ("fileserver", "/export/fin/work", "/fin/work") +nfsMount ("fileserver", "/export/fin/prod", "/fin/prod") +nfsMount ("fileserver", "/export/fin/devl", "/fin/devl") +nfsMount (&sysBootHost, "/home/ioc", "/home/ioc") diff --git a/App/startup/network.hipa b/App/startup/network.hipa new file mode 100644 index 0000000..4633b3e --- /dev/null +++ b/App/startup/network.hipa @@ -0,0 +1,7 @@ +# setup mount points +hostAdd ("fileserver","129.129.145.42") +nfsMount ("fileserver","/export/hipa/work","/hipa/work") +nfsMount ("fileserver","/export/hipa/prod","/hipa/prod") +nfsMount ("fileserver","/export/hipa/ioc","/ioc") +nfsMount (&sysBootHost, "/home/ioc", "/home/ioc") +nfsAuthUnixSet &sysBootHost,500,9102 diff --git a/App/startup/network.proscan b/App/startup/network.proscan new file mode 100644 index 0000000..54f745a --- /dev/null +++ b/App/startup/network.proscan @@ -0,0 +1,6 @@ +# setup mount points +hostAdd ("fileserver","129.129.145.66") +nfsMount ("fileserver","/export/proscan/ioc","/ioc") +nfsMount ("fileserver","/export/proscan/work","/proscan/work") +nfsMount ("fileserver","/export/proscan/prod","/proscan/prod") +nfsMount (&sysBootHost, "/home/ioc", "/home/ioc") diff --git a/App/startup/network.sls b/App/startup/network.sls new file mode 100644 index 0000000..e1de783 --- /dev/null +++ b/App/startup/network.sls @@ -0,0 +1,19 @@ +# Accept SLSBASE or INSTBASE +PBASE=0 +symFindByName(sysSymTbl,"INSTBASE",&PBASE,0) +symFindByName(sysSymTbl,"SLSBASE",&PBASE,0) +SLSBASE=*PBASE +INSTBASE=*PBASE + +# Router for SLS machine net (fails otherwise but that's ok) +routeAdd ("0.0.0.0","172.20.10.1") + +# setup mount points (try both possible locations for /ioc) +hostAdd ("slsfs","129.129.145.52") +nfsMount (&sysBootHost, "/home/ioc", "/home/ioc") +nfsMount (&sysBootHost, "/ioc", "/ioc") +nfsMount ("slsfs", "/export/csa/releases/ioc", "/ioc") +nfsMount ("slsfs","/export/csa/releases/work","/work") +nfsMount ("slsfs","/export/csa/releases/prod","/prod") +nfsMount ("slsfs","/export/csa/releases/devl","/devl") +nfsMount ("slsfs","/export/exchange","/exchange") diff --git a/App/startup/network.trfcb b/App/startup/network.trfcb new file mode 100644 index 0000000..597f23b --- /dev/null +++ b/App/startup/network.trfcb @@ -0,0 +1,5 @@ +# setup mount points +hostAdd ("fileserver","129.129.145.56") +nfsMount ("fileserver", "/export/trfcb/ioc", "/ioc") +nfsMount ("fileserver", "/export/trfcb/work", "/trfcb/work") +nfsMount (&sysBootHost, "/home/ioc", "/home/ioc") diff --git a/App/startup/saveRestore.script_common b/App/startup/saveRestore.script_common new file mode 100644 index 0000000..0eb23d2 --- /dev/null +++ b/App/startup/saveRestore.script_common @@ -0,0 +1 @@ +require "autoSRarray",getenv("autoSRarray_VERSION") diff --git a/App/startup/saveRestore.script_linux b/App/startup/saveRestore.script_linux new file mode 100644 index 0000000..a41b4b8 --- /dev/null +++ b/App/startup/saveRestore.script_linux @@ -0,0 +1 @@ +require "autoSRarray" "$(autoSRarray_VERSION=)" diff --git a/App/startup/startup.script_common b/App/startup/startup.script_common new file mode 100644 index 0000000..d2d2a07 --- /dev/null +++ b/App/startup/startup.script_common @@ -0,0 +1,110 @@ +# $Source: /cvs/A/CS/startup/startup.script_common,v $ +# This is the common part of all startup scripts +# It is included by all generated scripts + +# The following variables should be set before: +# * INSTBASE where to boot from +# * EPICS the epics release (e.g "R3.13.9") + +EPICS_MODULES = "/ioc/modules" + +# find a better way later to know current require version +REQUIRE_VERSION="2.3.5" + +#set EPICS_HOST_ARCH according to vxWorks version and cpu type +VX6=(*runtimeVersion>>24)&255-'5' +VMI=(*runtimeVersion>>8)&255 +EPICS_HOST_ARCH=malloc(16) +sprintf(EPICS_HOST_ARCH,"%s%c-ppc60%d",VX6?"V6":"T",VX6?VMI:VMI>'3'?'2':'1',sysCpu-90) + +#set target name as IOC name +IOC=&sysBootParams+60 + +BOOTPC=&sysBootHost + +STRINGBUFFER=malloc(256) + +# set the prompt +sprintf STRINGBUFFER, "%s (startup.script aborted) > ", IOC +shellPromptSet STRINGBUFFER + +# do the NFS mounts and other network dependend stuff +< ../../startup/network + +sprintf STRINGBUFFER, "IOC=%s", IOC +putenv STRINGBUFFER + +# setup logging on boot PC +sprintf STRINGBUFFER, "EPICS_IOC_LOG_INET=%s", BOOTPC +putenv STRINGBUFFER +putenv "EPICS_IOC_LOG_PORT=6500" + +# create some path variables +HOME=malloc(80) +sprintf HOME, "/ioc/%s", IOC +cd HOME + +CFG=malloc(80) +sprintf CFG, "%s/cfg", HOME + +STREAM_PROTOCOL_DIR=malloc(80) +sprintf STREAM_PROTOCOL_DIR, "%s/cfg", HOME + +LIB=malloc(80) +sprintf LIB, "%s/iocBoot/%s/%s", INSTBASE, EPICS, EPICS_HOST_ARCH + +DBD=malloc(80) +sprintf DBD, "dbd:%s/iocBoot/%s/dbd", INSTBASE, EPICS + +sprintf STRINGBUFFER, "EPICS_DRIVER_PATH=.:bin:snl:%s:%s", EPICS_MODULES, LIB +putenv STRINGBUFFER + +TEMPLATES=malloc(80) +sprintf TEMPLATES, ".:%s/iocBoot/templates", INSTBASE + +# time server (must be set before any drivers are configured) +putenv "EPICS_TS_NTP_INET=129.129.190.1" + +# Release memory above 32 MB +# Code loaded after this must be compiled with -mlongcall +# at the moment snp24 does not work with this +memAddToPool (sysMemTop(),sysPhysMemTop()-sysMemTop()) +EXTENDED_MEMORY=0 +#EXTENDED_MEMORY=sysPhysMemTop()-sysMemTop() + +# load EPICS system core (different names for 3.13 and 3.14) +sprintf STRINGBUFFER, "%s/iocCore%s", LIB, strncmp(EPICS,"R3.13",5) ? "Library.munch" : "" +ld 0, 0, STRINGBUFFER + +# TIMEZONE must be set after loading iocCoreLibrary.munch and before iocInit +# 2016: +putenv "TIMEZONE=MET::-60:032702:103003" +putenv "EPICS_TS_MIN_WEST=-60" + +# load "require" +sprintf STRINGBUFFER, "require_VERSION=%s", getenv("require_VERSION") ? getenv("require_VERSION") : REQUIRE_VERSION +putenv STRINGBUFFER +sprintf STRINGBUFFER, "require_DIR=%s/require/%s/%s/", EPICS_MODULES, getenv("require_VERSION"), EPICS +putenv STRINGBUFFER +sprintf STRINGBUFFER, "%s/lib/%s/requireLib.munch", getenv("require_DIR"), EPICS_HOST_ARCH +ld 0, 0, STRINGBUFFER + +#load standard drivers (allow user to specify version in environment variable) +require "base", getenv("base_VERSION") +registerModule "require", getenv("require_VERSION"), getenv("require_DIR") +require "utilities", getenv("utilities_VERSION") +require "misc", getenv("misc_VERSION") +require "iocmon", getenv("iocmon_VERSION") +#require "genTime", getenv("genTime_VERSION") + +# run EPICS only on 1st network port +putenv "EPICS_CA_AUTO_ADDR_LIST=NO" +putenv bootInfo("EPICS_CA_ADDR_LIST=%B") +putenv bootInfo("EPICS_CAS_INTF_ADDR_LIST=%e") +putenv "EPICS_CAS_AUTO_BEACON_ADDR_LIST=NO" +putenv bootInfo("EPICS_CAS_BEACON_ADDR_LIST=%B") + +# insert boot infos into database +bootNotify INSTBASE, "sls/bin/iocBootNotify.sh" + +# end of startup.script_common diff --git a/App/startup/startup.script_iocmon b/App/startup/startup.script_iocmon new file mode 100644 index 0000000..20a3f7c --- /dev/null +++ b/App/startup/startup.script_iocmon @@ -0,0 +1 @@ +# startup.script_iocmon is blank interntionally and only needed for backward compatibility with swit. diff --git a/App/startup/startup.script_linux b/App/startup/startup.script_linux new file mode 100644 index 0000000..9a230ae --- /dev/null +++ b/App/startup/startup.script_linux @@ -0,0 +1,13 @@ +# $Source: /cvs/A/CS/startup/startup.script_linux,v $ + +# set EPICS according to BASE (set by iocsh wrapper) +epicsEnvSet EPICS, R$(BASE) + +#epicsEnvSet EPICS_DRIVER_PATH, bin:snl:$(INSTBASE)/iocBoot/$(EPICS)/$(EPICS_HOST_ARCH) +epicsEnvSet TEMPLATES, $(INSTBASE)/iocBoot/templates +epicsEnvSet CFG, $(PWD)/cfg +epicsEnvSet STREAM_PROTOCOL_PATH, .:$(PWD)/cfg + +require sysmon + +! iocBootNotify.sh $(IOC) - \${SHELLBOX#*:} - $(_) $(PWD)/startup.script - $(EPICS) - diff --git a/App/startup/startup.script_part2 b/App/startup/startup.script_part2 new file mode 100644 index 0000000..cb5cbc0 --- /dev/null +++ b/App/startup/startup.script_part2 @@ -0,0 +1,9 @@ +# $Source: /cvs/A/CS/startup/startup.script_part2,v $ +# 2nd part of common startup + +#Enable memory >32MB on IOC that have it. (Is a NOOP on all others) +memAddToPool sysMemTop(), EXTENDED_MEMORY + +iocInit + +# end of startup.script_part2 diff --git a/App/startup/startup.script_part3 b/App/startup/startup.script_part3 new file mode 100644 index 0000000..fb4c535 --- /dev/null +++ b/App/startup/startup.script_part3 @@ -0,0 +1,16 @@ +# $Source: /cvs/A/CS/startup/startup.script_part3,v $ + +# insert record list into database +sprintf STRINGBUFFER, "/home/ioc/%s.dbl", IOC +listRecords STRINGBUFFER, "RTYP DESC" +sprintf STRINGBUFFER, "%s/sls/bin/dbl2odb.sh", INSTBASE +rsh BOOTPC, "dbl2odb.sh", IOC, bootInfo("%B"), getenv("EPICS_CA_SERVER_PORT") + +# insert library list into database +sprintf STRINGBUFFER, "/home/ioc/%s.libs", IOC +libversionShow 1, STRINGBUFFER +rsh BOOTPC, "upload_libinfo.sh", "-r -i", IOC, "-l", STRINGBUFFER + +# set the prompt +sprintf STRINGBUFFER, "%s > ", IOC +shellPromptSet STRINGBUFFER diff --git a/App/startup/startup.script_win32 b/App/startup/startup.script_win32 new file mode 100644 index 0000000..3a55fa9 --- /dev/null +++ b/App/startup/startup.script_win32 @@ -0,0 +1,11 @@ +# $Source: /cvs/A/CS/startup/startup.script_win32,v $ +epicsEnvSet EPICS, R3.14.8 +epicsEnvSet STREAM_PROTOCOL_PATH, %CD%/cfg +epicsEnvSet EPICS_DRIVER_PATH, C:/epics/SOFTIOCWIN32/bin/win32-x86 +epicsEnvSet TEMPLATES, $(INSTBASE)/iocBoot/templates +epicsEnvSet CFG, %CD%/cfg + +dbLoadDatabase "../../dbd/ioc.dbd" +ioc_registerRecordDeviceDriver pdbbase + + diff --git a/App/startup/startup.script_win64 b/App/startup/startup.script_win64 new file mode 100644 index 0000000..fee7e6f --- /dev/null +++ b/App/startup/startup.script_win64 @@ -0,0 +1,14 @@ +# $Source: /cvs/A/CS/startup/startup.script_win64,v $ +dlload misc +dbLoadDatabase "../../../dbd/misc.dbd" +misc_registerRecordDeviceDriver pdbbase + +winunixconv EPICSBASE +winunixconv SOFTIOC + +epicsEnvSet STREAM_PROTOCOL_PATH, $(SOFTIOC)/iocBoot/ioc/$(IOC)/cfg +epicsEnvSet EPICS_DRIVER_PATH, $(SOFTIOC)/bin/$(T_A) +epicsEnvSet TEMPLATES, $(SOFTIOC)db +epicsEnvSet CFG, $(SOFTIOC)/iocBoot/ioc/$(IOC)/cfg +pwd + diff --git a/App/startup/sw-require.script b/App/startup/sw-require.script new file mode 100644 index 0000000..d299110 --- /dev/null +++ b/App/startup/sw-require.script @@ -0,0 +1,22 @@ +# all hw-independent require statments +# common to all iocs +# +require "SynApps" +require "array" +require "ipac" +require "hytec" +require "Hytec8003" +require "statusString" +require "cnvrLvl3" +require "BitMapIn" +require "setclr" +require "ArrOfStr" + +# +# Special require configured at IOC level +# +#require "HarpByDoelling" +#require "StepFunc" +#require "faccel1" +#require "BeamNoise" +#require "gpmm"