Attention

You are viewing an older version of the documentation. The latest version is v3.3.

Appendix

Note

These lists are not comprehensive. They are provided for reference only.

ECI Components

The following components are included in various targets and builds of ECI.

Component

Version

Description

ACRN Hypervisor

2.5

Open-source ACRN Type 1 hypervisor

CANopen

4.0

Open-source CAN Bus software

CODESYS Control for Linux

3.5.17.2 (V3.5 SP17 Patch 2 + [64-bit])

Commercially available IEC 61131-3-compliant SoftPLC for PC-based industrial controllers running on Linux with soft real-time properties.

Edge Control Procotol Bridge

2.5

Intel-created software which can be used to bridge various industrial protocols together, effectively providing translation from one protocol to another.

IgH EtherCAT Master Stack

1.5.2

Open-source EtherCAT Master software

Intel® Edge Insights for Industrial

2.5

Open-source framework for enabling smart manufacturing with visual and point defect inspections.

Intel® Elkhart Lake Functional Safety (FuSa) Software Package

1.0

Intel-created software which takes advantage of hardware FuSa capabilities.

Intel® In-band Manageability

2.16.2

Intel-created software which enables an administrator to perform critical Device Management operations over-the-air remotely from the cloud.

Intel® Time Coordinated Computing Tools

2021.2.0

Intel-created software which augments the compute performance of Intel processors with the ability to address the stringent temporal requirements of real-time applications.

Intel® Ethernet TSN IoTG Reference Sample Applications

0.8.9

Intel-created performance testing framework utilizing synthetic and IEC-62541 UADP packets to compare Linux Intel® Industrial Ethernet driver hw-offload capabilities.

open62541 OPC UA Library

1.2.2

An open source C (C99) implementation of OPC UA.

PLCopen Motion Control

2.5

The PLCopen motion standard provides a way to have standard application libraries that are reusable for multiple hardware platforms.

Robot Operating System Software

Foxy

Open-source software intended for writing robot software. ROS is comprised of a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behavior across a wide variety of robotic platforms.

Real Time Data Agent

2.5

The Real Time Data Agent provides an unified and real-time way to write/read data to/from shared memory, and also a demo program to parse/pack/send data to container stack for storage and visualization.

Real-Time Systems Hypervisor

5.4.01.27752

Commercially available Type 1 hypervisor designed to provide real-time performance and workload consolidation.

Time-series processing

2.5

Template files for launching a time-series data processing stack consisting of the MQTT broker mosquitto, telegraf as data colletion service, InfluxDB as time-series database and grafana for visualization.

Trusted VM for IoT Platforms

2.2

Trusted VM is designed to isolate a virtual machine at HW level using Intel silicon technologies and hypervisor protections to create a higher privileged VM.

ECI Services

The following services are included in targets ECI-B, ECI-X, and ECI-R.

Service

Description

Status Command

copytime

Synchronize HW Clocks

$ systemctl status copytime

Codemeter

License manager for CODESYS

$ systemctl status codemeter

CODESYS Linux Runtime

Software PLC Runtime

$ systemctl status codesyscontrol

DHCP client

Dynamic Host Configuration Protocol

$ systemctl status dhclient

Docker Daemon

Container engine

$ systemctl status docker

ntpd

Network Time Protocol Daemon

$ systemctl status ntpd

ethtool

Ethernet TSN interface init/teardown systemd Service

$ systemctl status ethtool@<interface>

ptp4l

Precision Time Protocol systemd Service

$ systemctl status ptp4l@<interface>

phc2sys

Platform Hardware Clock Synchronization systemd Service

$ systemctl status phc2sys@<interface>

tsn_scheduler

Schedule Queue Discipline systemd Service

$ systemctl status tsn_runconf@<interface>

ECI Benchmarks

The following benchmarks are included in targets ECI-B, ECI-X, and ECI-R.

Benchmark

Location

Cyclictest Workload

/opt/benchmarking/rt-tests/cyclictest

Caterpillar

/opt/benchmarking/caterpillar

RT-app

/opt/benchmarking/rt-app

Jitter

/opt/benchmarking/jitter

CODESYS Benchmark Application

/opt/benchmarking/codesys

Rhealstone

/opt/benchmarking/rhealstone

MMIO Latency

/opt/benchmarking/mmio-latency

MSI Jitter

/opt/benchmarking/msi-jitter

MSI Latency

/opt/benchmarking/msi-latency

LMbench

/opt/bin/lmbench

coremark

/usr/bin/coremark

netperf

/usr/bin/netperf

stress-ng

/usr/bin/stress-ng

rt-tests

/opt/benchmarking/rt-tests

ECI Examples

Example

Reference Documentation

Location

CODESYS Application

Application #2: CODESYS OPC UA Publish/Subscribe

/opt/ec-protocol-bridge/plg-opcua-rt/examples/codesys

Codesys Benchmark Application

CODESYS Benchmark Application

/opt/benchmarking/codesys

EC Protocol Bridge

Application #1: Single-Host Roundtrip TSN Transport

opt/ec-protocol-bridge/plg-opcua-rt/examples/singlehost

EC Protocol Bridge

Application #2: CODESYS OPC UA Publish/Subscribe

/opt/ec-protocol-bridge/plg-opcua-rt/examples/codesys

EC Protocol Bridge

Application #3: OPC UA Secure Communication

/opt/ec-protocol-bridge/plg-opcua-rt/examples/sign_and_encrypt

EtherCAT Enablekit

EtherCAT Enablekit Sanity-Check testing

/opt/ecat-enablekit/ecatmotor

Edge Control Protocol Bridge Example Applications

EC Protocol Bridge Example Applications

/opt/ec-protocol-bridge/plg-opcua-rt/singlehost-examples

Edge Control Protocol Bridge Example Configurations

EC Protocol Bridge Example Configurations

/opt/ec-protocol-bridge/config

IgH EtherCAT Master Stack

EtherCAT Sanity-Check testing

/opt/ighethercat/examples/

open62541 Examples

open62541 OPC-UA Pubsub performance testing framework

/opt/open62541/shared/

PLCopen Motion Control Examples

PLCopen Motion Recurring Testing

/opt/plcopen

TSN Examples

Intel® Ethernet TSN IoTG Reference Sample Applications

/opt/intel/iotg_tsn_ref_sw

ECI Kernel Configuration Optimizations

This list provides the additional kernel configurations used during compilation to optimize the system for real-time performance.

When Configuring x86_64 PPREEMPT_RT kernels, there are no default configuration file for each of the IPC models around, and the only kernel configuration file you may want to start from is shipped with ECI distributions. Below non exhaustive list of the most critical for a control Linux-rt OS runtime :

kernel config fragment overrides (.cfg) | Comments

CONFIG_HZ_100=y
CONFIG_NO_HZ=n
CONFIG_NO_HZ_FULL=y
CONFIG_NO_HZ_IDLE=n
CONFIG_ACPI_PROCESSOR=n
CONFIG_CPU_FREQ_GOV_ONDEMAND=n
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=n
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ=n
CONFIG_CPU_IDLE=n

Reduce task scheduling-clock overhead and disable CPU governor Linux features

ARCH_SUSPEND_POSSIBLE=n
CONFIG_SUSPEND=n
CONFIG_PM=n

Disable Linux pm runtime features

CONFIG_VIRT_CPU_ACCOUNTING=y
CONFIG_VIRT_CPU_ACCOUNTING_GEN=y

Enable more accurate task and CPU time accounting.

CONFIG_CPU_ISOLATION=y
CONFIG_RCU_NOCB_CPU=y
CONFIG_PREEMPT_RCU=y
CONFIG_HAVE_PREEMPT_LAZY=y
CONFIG_PREEMPT_LAZY=y
CONFIG_PREEMPT_RT=y

Enable more preemptive task scheduling policies and cpu temporal-isolation

ECI Kernel Boot Optimizations

This list provides the additional boot parameters used to optimize the system for real-time performance.

When Configuring x86_64 PPREEMPT_RT kernels, there are no default configuration file for each of the IPC models around, and the only kernel configuration file you may want to start from is shipped with ECI distributions. Below non exhaustive list of the most critical for a control Linux-rt OS runtime :

kernel command-line append

Comments

clocksource=tsc \
tsc=reliable \
pstate_driver=no_hwp \
intel_idle.max_cstate=1 \
intel.max_cstate=0 \
processor.max_cstate=0 \
processor_idle.max_cstate=0 \

use intel_pstate driver but disable HWP (Hardware P-States)

nmi_watchdog=0 \
nosoftlockup \
nosmt \
noefi \

disable Hyper-Threading disable efi runtime may trigger SMI.

audit=0 \
irqaffinity=0 \
isolcpus=1,3 \
rcu_nocbs=1,3 \
nohz_full=1,3 \

Additional Boot Parameters for Intel® TCC Tools

The following list of boot parameters are used to enable TCC capability.

Kernel Command line append

Comments

rdt=!l2cat,l3cat \
art=virtallow \

disable cat, required for TCC

Required BIOS configuration for Intel® TCC Tools

The following list provides additional BIOS settings for Intel® Time Coordinated Computing Tools (Intel® TCC Tools).

Note

Use an approved Intel BIOS checker tool before configuring for production use cases.

Intel Advanced Menu

Intel(R) Time Coordinated Computing

Intel(R) TCC Mode

Enabled

Intel(R) TCC Authentication

Disabled