System Configuration File — ekfsm documentation

# System Configuration File

The system configuration is defined in a YAML configuration file.

The configuration file defines the modular components of the system, i.e. you define which board types are expected in which slots of the chassis.

Let’s break down the configuration file:

    system_config:
      name: "Simple System"
      slots:

        - name: SYSTEM_SLOT
          slot_type: CPCI_S0_SYS
          desired_hwmodule_type: EKF SC9-TOCCATA
          desired_hwmodule_name: CPU
          attributes:
              is_master: true

        - name: SLOT1
          slot_type: CPCI_S0_PER
          desired_hwmodule_type: EKF SUR-UART
          desired_hwmodule_name: FAN
          attributes:
              slot_coding: 0x1

system_config.name is the name of the system configuration. It can be any string, currently not used, but you can access it via the System object’s name attribute.

system_config.slots is a list of slots in the chassis.

- There must be one Master slot (designated by is_master: true) in the system. The master slot can be anywhere in the list

- You don’t need to describe all physical slots in the chassis. You can leave out slots that are empty.

- The slot name is a string that can be any name you choose. It is used to identify the slot in the system. If the physical slots are labelled, it is a good idea to use the same label in the configuration file.

- slot_type is the type of the slot. It must be one of CPCI_S0_SYS, CPCI_S0_PER, CPCI_S0_UTILITY, CPCI_S0_PSU

- desired_hwmodule_type is the type of the hardware module that is expected in the slot. It must be one of the supported hardware module types. To see the supported hardware module types, refer to the Supported Boards section.

- desired_hwmodule_name is name that will be assigned to the hardware module object. It can be any string. It is used to identify the hardware module in the system. You use this name later to access the hardware module object.

- attributes is a dictionary of attributes.

  > - For CompactPCI slots, slot_coding defines the geographical address of the slot, i.e. the setting of the GA[3:0] pins on the backplane.

  > - The is_master attribute is used to designate the master slot.

## Making board objects accessible from the system object

Some hardware modules provide functions that belong to the whole system, such as the EKF CCU, which provides a chassis_inventory function that returns the serial number etc. of the complete system. You can make this function accessible from the system object like so:

    system_config:
      name: "Simple System"
      aggregates:
        chassis_inventory: inventory

Then, you can access the function like this:

    import ekfsm

    system = ekfsm.System("system.yaml")
    serial = system.inventory.serial()