When booting an ioc for the first time follow steps 1-8. To boot an existing ioc proceed to step 11.

Step 1:
Get ip address for your EPICS IOC by filling out the Accelerator Facility IP Request Form  Controls Group IP Request Form and submitting it to Ken Brobeck. Specify the subnet for your ioc, which woudl be LCLSDEV for a development ioc or LCLSCA for a production ioc. Please note that the ioc nodename submitted MUST follow the LCLS Naming Conventions.

Step 2:
Once you have an ip address for your node, send email to SCCS to request that your node be added to the NIS group lcls-rtems. This will provide write permission on the NFS disk to your ioc. Click here for more details.

*Step 3:*If your processor has a serial port, request a terminal server port assignment from Charlie Granieri if you do not already have one. Otherwise, proceed to step 5. You can obtain a DIGI to MVME6100 serial cable from Charlie, as well. Click here for terminal server and cable information. Note, that if your terminal server is a DIGI the serial cable from a DIGI port to a MVME6100/MVME5100/MVME3100 is color coded green.

Step 4:
If your processor has a serial port connected to a server, iocConsole will be used to remotly connect to your ioc from a linux host. To use iocConsole, you will need to modify the cvs file

FacilityCVS Path
Developmentepics/iocCommon/All/Dev/screeniocs
LCLSepics/iocCommon/All/lcls/screeniocs
FACET-IIepics/iocCommon/All/facet/screeniocs

Test-Facility 

epcis/iocCommon/All/acctest


Step 5:
Setup your processor NVRAM Make sure that your processor has a SLAC ID sticker. If not, please contact Kristi Luchini.

Step 6:
Create a directory for any files that will be written, for example, save and restore files written for your ioc by ChannelWatcher, and the screenlog:For development:

ssh laci@lcls-dev2

cd $IOC_DATA
mkdir <ioc nodename>
cd <ioc nodename>
mkdir restore iocInfo autosave

For production contact Ken Brobeck and request that the controls infrastructure for a new IOC.  You will need the following:

$EPICS_IOCS/<ioc,cpu> 

$IOC_DATA/<ioc,cpu> 

For Soft IOCs: Autostartup scripts in on <faclity>-daemon1

For RTEMS IOCs and LinuxRT CPUs send Ken Brobeck or Arjun Shetty information to boot your CPU via DHCP. 

Step 7:
Create a ChannelWatcher configuration file for your ioc in $TOOLS/ChannelWatcher/config. The filename format is <ioc nodename in uppercase>.sav. All subsystems have their own ChannelWatcher monitoring process. So either create a new file, Master.XX, where XX is your 2-char subsystem alias defined in the LCLS Naming Conventions or add your new ioc configuration file to the appropriate Master file.

Step 8:

Follow the cram instructions for releasing an EPICS IOC Application from development to production.

Step 9:

Create the boot links  and startup scripts for your IOC and CPU for LinuxRT in $EPICS_IOCS/<ioc,cpu>.  Template starutp scripts are located in $EPICS_IOCS/template

for LinuxRT IOCs and CPUs

for RTEMS IOCs

for Linux IOCs                              

Step 10:

Add your  IOC to the screeniocs file and commit your changes to CVS. The screeniocs file is used by iocConsole to connect to the serial port of your IOC. The information that  you will need is the nodename, which is referred to as the "alias", then terminal server node name and the terminal sever port connected to your device. Table 3 below provides an example of a screeniocs entry for an RTEMS ioc.

                                                                    Table 3

AliasTerminal ServerPort No.host screen is runComment 
ioc-b15-mg01ts-b15-mg012002lcls-dev1 # b15-123-0427-S0 (botttom slot)

               

Table 4 below lists the CVS path to the screeniocs file for each facility.

       Table 4

FacilityCVS path to screeniocs
Devepics/iocCommon/All/Dev
LCLSepics/iocCommon/All/lcls
LCLS-IIepics/iocCommon/All/lcls
 FACET-II epics/iocCommon/All/facet
 TestFac epics/iocCommon/All/acctest


Step 11:

a)  Additional IOC Applications will need to be modified to include your IOC, Crate and any addition devices such as EVR or ACSW's .  In IOCManager add your ioc, crate and acsw if needed, to the appropriate facility database area file. In addition update the srcArchive file for that facility.  Commit changes to the code management system, tag and release to production, rebooting the necessary IOCs and alarm handlers.

  •  IOCManager
  •  AlarmsConfigs-ntwk
  •  AlarmConfigs-<subsystem> 
  • AlarmConfigs-evnt, if your IOC includes timing

b) The network and possibly timing display will need to be update to add your device.

                                                                  Table 5

FacilityCVS path to Network DisplayCVS path EDM Event Display  
Development

tools/edm/display/lcls/ntwk_dev_main.edl

-- OR ---

tools/edm/display/misc/lab_dev_main.edl

 tools/edm/display/misc_<area>_main.edl
LCLS

tools/edm/display/lcls/ntwk_<area>_main.edl

 tools/edm/display/misc_<area>_main.edl
 LCLS-IItools/edm/display/lcls2/ntwk_area>_main.edl  tools/edm/display/misc_<area>_main.edl
 FACET-IItools/edm/display/facet/ntwk_<area>_main.edl  tools/edm/display/misc_<area>_main.edl
 TestFac - ASTA

tools/edm/display/asta/asta/ntwk_asta_main.edl 

tools/edm/display/misc_<area>_main.edl 
 TestFac - XTAtools/edm/display/xta/ntwk_xt01_main.edl tools/edm/display/misc_<area>_main.edl


Step 12:
For production systems you will need to archive the required PVs for the IOCManager  and your subsystem application.  The IOCManager archived files will be found in the IOCManager/<tag_name>/IOCManager/archive/<nodename>.archive. This file is generated during the build from the substitutions file in IOCManagerApp/srcArchive/<nodename>.arsubstitutions

                                                                                                Table 6

FacilityArchive PV List
FACET-II

generate the archive file for your IOC application and copy the file to $IOC_DATA/<nodename>/archive/<nodename>.archive

Format:  PVNAME INTERAVAL  [ monitor/scan ]. The interval is in seconds. For monitor the interval is set to 1.

 LCLS,LCLS-II, TestFac,Dev send generated archive list to Patrick Pascual using the format above

Booting and existing ioc:

Step 13:

Connect to the serial port on your IOC via iocConsole as follows:

iocConsole <nodename>

Boot your ioc or bring up the  appropriate facility home display (i.e. LCLSHOME, FACETHOME, LCLS2HOME, ASTAHOME or XTAHOME) and navigate to the Network Area display for your IOC.  Select the button listing the nodename of your IOC, and select the IOC Reboot button or cycle the crate power, from the Power Off and Power On button.

  • No labels