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 additional background on defining CPSW Hierarchies with YAML, see: http://www.slac.stanford.edu/grp/lcls/controls/docs/cpsw/framework/with-at-support/README.yamlDefinition.html
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.
To install a new YAC:
- Remove the existing YAC subdirectory from ${TOP}/yaml, or arrange to use new subdirectory name.
- Untar the YAC file under ${TOP}/yaml.
- In the IOC startup script st.cmd, update the 2nd parameter of YCPSWASYNConfig() to point to the 000TopLevel.yaml file within the YAC.
For example, "yaml/AmcCarrierBcm_project.yaml/000TopLevel.yaml".
How to update the yaml defaults configuration in the IOC
The YAML Defaults Configuration (TDC) file is a single text file that defines a register initialization sequence.
Before installing a YDC file a couple of fixups are typically required.
- Insert a new top-level hierarchy, "mmio", above "AmcCarrierCore".
- Change the value of mmio:AmcCarrierCore:AxiVersion:ScratchPad to 0xfc067333.
Excerpt from an example YDC file with fixups applied:
# 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
To install a new YDC file:
- Copy the YDC file to the ${TOP}/yaml directory.
- In in IOC startup script st.cmd, update the LOAD_FILE macro of the dbLoadRecords(dv/saveLoadConfig.db) command to point to the YDC file. For example, "LOAD_FILE=yaml/defaults_bcm.yaml".