Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Overview

There are two types of configuration files discussed in this document.  One defines the register architecture, and the other defines the register values.  In both cases YAML formatted text files are used.

...

For background information on the CPSW BSA driver, see the README file in the bsaDriver EPICS module. A copy of the README file is also available here.

How to update the

...

YAML architecture configuration in the IOC

 The YAML Architecture Configuration (YAC) is a set of text files that defines the registers supported by the hardware. It is typically delivered by the hardware engineer as a gzipped tar file containing one subdirectory.

...

  1. Remove the existing YAC subdirectory from ${TOP}/yaml, or arrange to use new subdirectory name.
  2. Untar the YAC file under ${TOP}/yaml.
  3. In the IOC startup script st.cmd, update the 1st parameter of cpswLoadYamlFile() to point to the 000TopLevel.yaml file within the YAC.
    For example, "yaml/AmcCarrierBcm_project.yaml/000TopLevel.yaml".
    Note: When YCPSWASYNConfig() is called after cpswLoadYamlFile(), the 2nd argument of YCPSWASYNConfig() – the YAML path – is ignored.

How to update the

...

YAML defaults configuration in the IOC

The YAML Defaults Configuration (YDC) file is a single text file that defines a register initialization sequence.  An example YDC file name is defaultsPyro6-15-17a.yaml.

Before installing a YDC file a couple of few fixups are typically required.

  1. Insert a new top-level hierarchy, "mmio", above "AmcCarrierCore".
  2. Change the value of mmio:AmcCarrierCore:AxiVersion:ScratchPad from 0x0 to 0xfc067333.
    The value 0xfc06733 (decimal -66686157) is used to monitor FPGA reboot.
  3. Change the value of mmio:AmcCarrierCore:AxiSy56040:OutputConfig[1] from 0x1 to 0x2.
    The value 0x1 selects local timing, and the value 0x2 selects backplane timing.

Excerpt from an example YDC file with fixups applied:

Code Block
languagetext
# Config File Generated: 2017-03-07.13:29:59
- mmio:
  - AmcCarrierCore:
      - AxiVersion:
          - MasterReset: !<value> 0x0
          - FpgaReloadAddress: !<value> 0x00000000
          - FpgaReload: !<value> 0x0
          - FpgaReloadHalt: !<value> 0x0
          - ScratchPad: !<value> 0xfc067333
  . . .
      - AxiSy56040:
          - OutputConfig: !<value>
              - 0x0
              - 0x2
              - 0x0
              - 0x0

 

To install a new YDC file:

  1. Copy the YDC file to the ${TOP}/yaml directory.
  2. In in the IOC startup script st.cmd, update the LOAD_FILE macro of the dbLoadRecords(dvdb/saveLoadConfig.db) command to point to the YDC file. For example, "LOAD_FILE=yaml/defaults_bcm.yaml".

...

Instructions for updating the YAC appear earlier in this document.

For more details regarding dictionary and substitution files see: Manual Generation of EPICS PVs from YAML Config Files

The dictionary file is installed in the ${TOP}/yaml directory. In in IOC startup script st.cmd, the 8th argument of YCPSWASYNConfig() specifies the dictionary path.
For example, "yaml/bcm_01_20170313140632.dict".

...

Finally, bcm.db and carrier.db are loaded by dbLoadRecords() in the IOC startup script st.cmd:

Code Block
languagetext
dbLoadRecords("db/bcm.db", "P=${AMC0_PREFIX}, PORT=${CPSW_PORT}, AMC=0")
dbLoadRecords("db/carrier.db", "P=${AMC_CARRIER_PREFIX}, PORT=${CPSW_PORT}")

...