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 |
---|---|---|
2.5 |
Open-source ACRN Type 1 hypervisor
|
|
4.0 |
Open-source CAN Bus software
|
|
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.
|
|
2.5 |
Intel-created software which can be used to bridge various industrial protocols together, effectively providing translation from one protocol to another.
|
|
1.5.2 |
Open-source EtherCAT Master software
|
|
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.
|
2.16.2 |
Intel-created software which enables an administrator to perform critical Device Management operations over-the-air remotely from the cloud.
|
|
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.
|
|
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.
|
|
1.2.2 |
An open source C (C99) implementation of OPC UA.
|
|
2.5 |
The PLCopen motion standard provides a way to have standard application libraries that are reusable for multiple hardware platforms.
|
|
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.
|
|
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.
|
|
5.4.01.27752 |
Commercially available Type 1 hypervisor designed to provide real-time performance and workload consolidation.
|
|
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.
|
|
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 |
---|---|---|
|
Synchronize HW Clocks |
|
|
License manager for CODESYS |
|
Software PLC Runtime |
|
|
DHCP client |
Dynamic Host Configuration Protocol |
|
Docker Daemon |
Container engine |
|
|
Network Time Protocol Daemon |
|
|
Ethernet TSN interface init/teardown systemd Service |
|
|
Precision Time Protocol systemd Service |
|
|
Platform Hardware Clock Synchronization systemd Service |
|
|
Schedule Queue Discipline systemd Service |
|
ECI Benchmarks¶
The following benchmarks are included in targets ECI-B, ECI-X, and ECI-R.
Benchmark |
Location |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
coremark |
|
netperf |
|
stress-ng |
|
rt-tests |
|
ECI Examples¶
Example |
Reference Documentation |
Location |
---|---|---|
CODESYS Application |
|
|
Codesys Benchmark Application |
|
|
EC Protocol Bridge |
|
|
EC Protocol Bridge |
|
|
EC Protocol Bridge |
|
|
EtherCAT Enablekit |
|
|
Edge Control Protocol Bridge Example Applications |
|
|
Edge Control Protocol Bridge Example Configurations |
|
|
IgH EtherCAT Master Stack |
|
|
open62541 Examples |
|
|
PLCopen Motion Control Examples |
|
|
TSN Examples |
|
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 |
Configuring x86_64 IPIPE/XENOMAI co-kernels is a bit different, there is 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.
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
|
Enable cpu temporal-isolation |
CONFIG_IPIPE=y
CONFIG_XENOMAI=y
CONFIG_XENO_ARCH_FPU=y
CONFIG_XENO_ARCH_SYS3264=y
CONFIG_XENO_OPT_SCHED_CLASSES=n
CONFIG_XENO_OPT_SHIRQ=n
CONFIG_XENO_OPT_RR_QUANTUM=1000
CONFIG_XENO_OPT_AUTOTUNE=y
CONFIG_XENO_OPT_SCALABLE_SCHED=n
CONFIG_XENO_OPT_TIMER_LIST=n
CONFIG_XENO_OPT_TIMER_RBTREE=y
CONFIG_XENO_OPT_PIPE=y
CONFIG_XENO_OPT_MAP=y
CONFIG_XENO_OPT_VFILE=y
CONFIG_XENO_OPT_PIPE_NRDEV=32
CONFIG_XENO_OPT_REGISTRY_NRSLOTS=4096
CONFIG_XENO_OPT_SYS_HEAPSZ=4096
CONFIG_XENO_OPT_PRIVATE_HEAPSZ=256
CONFIG_XENO_OPT_SHARED_HEAPSZ=256
CONFIG_XENO_OPT_NRTIMERS=512
CONFIG_XENO_OPT_TIMING_SCHEDLAT=0
CONFIG_XENO_OPT_TIMING_KSCHEDLAT=0
CONFIG_XENO_OPT_TIMING_IRQLAT=0
CONFIG_XENO_OPT_DEBUG=y
CONFIG_XENO_OPT_RTDM_COMPAT_DEVNODE=y
CONFIG_XENO_DRIVERS_AUTOTUNE=y
CONFIG_XENO_DRIVERS_16550A=n
CONFIG_XENO_DRIVERS_TIMERBENCH=y
CONFIG_XENO_DRIVERS_SWITCHTEST=y
CONFIG_XENO_DRIVERS_RTDMTEST=m
CONFIG_XENO_DRIVERS_CAN=n
CONFIG_XENO_DRIVERS_RTIPC=m
CONFIG_XENO_DRIVERS_RTIPC_XDDP=y
CONFIG_XENO_DRIVERS_RTIPC_IDDP=y
CONFIG_XENO_OPT_IDDP_NRPORT=32
CONFIG_XENO_DRIVERS_RTIPC_BUFP=y
CONFIG_XENO_OPT_BUFP_NRPORT=32
|
Enable more xenomai 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 \
|
Configuring x86_64 IPIPE/XENOMAI co-kernels is a bit different, there is 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.
kernel command-line append |
Comments |
---|---|
clocksource=tsc \
tsc=reliable \
|
|
intel_pstate=disable \
intel.max_cstate=0 \
intel_idle.max_cstate=0 \
processor.max_cstate=0 \
processor_idle.max_cstate=0 \
|
|
nmi_watchdog=0 \
nosoftlockup \
|
|
nosmt \
noefi \
nosmap \
|
disable Hyper-Threading disable efi runtime may trigger SMI. |
audit=0 \
irqaffinity=0 \
isolcpus=1,3 \
rcu_nocbs=1,3 \
nohz_full=1,3 \
|
|
xenomai.allowed_group=1234 \
xenomai.sysheap_size=256 \
xenomai.state=enabled \
xenomai.smi=detect \
xenomai.smi_mask=1 \
|
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 |
Recommended ECI-B/X BIOS Optimizations¶
Note
Use an approved Intel BIOS checker tool before configuring for production use cases.
Setting Name |
Option |
Setting Menu |
---|---|---|
Hyper-Threading |
Disabled |
Intel Advanced Menu ⟶ CPU Configuration |
Intel (VMX) Virtualization |
Disabled |
Intel Advanced Menu ⟶ CPU Configuration |
Intel(R) SpeedStep |
Disabled |
Intel Advanced Menu ⟶ Power & Performance ⟶ CPU - Power Management Control |
Turbo Mode |
Disabled |
Intel Advanced Menu ⟶ Power & Performance ⟶ CPU - Power Management Control |
C States |
Disabled |
Intel Advanced Menu ⟶ Power & Performance ⟶ CPU - Power Management Control |
RC6 (Render Standby) |
Disabled |
Intel Advanced Menu ⟶ Power & Performance ⟶ GT - Power Management Control |
Maximum GT freq |
Lowest (usually 100MHz) |
Intel Advanced Menu ⟶ Power & Performance ⟶ GT - Power Management Control |
SA GV |
Fixed High |
Intel Advanced Menu ⟶ Memory Configuration |
VT-d |
Disabled |
Intel Advanced Menu ⟶ System Agent (SA) Configuration |
PCI Express Clock Gating |
Disabled |
Intel Advanced Menu ⟶ System Agent (SA) Configuration ⟶ PCI Express Configuration |
Gfx Low Power Mode |
Disabled |
Intel Advanced Menu ⟶ System Agent (SA) Configuration ⟶ Graphics Configuration |
ACPI S3 Support |
Disabled |
Intel Advanced Menu ⟶ ACPI Settings |
Native ASPM |
Disabled |
Intel Advanced Menu ⟶ ACPI Settings |
Legacy IO Low Latency |
Enabled |
Intel Advanced Menu ⟶ PCH-IO Configuration |
PCH Cross Throttling |
Disabled |
Intel Advanced Menu ⟶ PCH-IO Configuration |
Delay Enable DMI ASPM |
Disabled |
Intel Advanced Menu ⟶ PCH-IO Configuration ⟶ PCI Express Configuration |
DMI Link ASPM |
Disabled |
Intel Advanced Menu ⟶ PCH-IO Configuration ⟶ PCI Express Configuration |
Delay Enable DMI ASPM |
Disabled |
Intel Advanced Menu ⟶ PCH-IO Configuration ⟶ PCI Express Configuration |
Aggressive LPM Support |
Disabled |
Intel Advanced Menu ⟶ PCH-IO Configuration ⟶ SATA And RST Configuration |
USB Periodic SMI |
Disabled |
Intel Advanced Menu ⟶ LEGACY USB Configuration |
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 |