Enable Intel® TCC Baseline Support#
The baseline support for Intel® TCC consists of a real-time Linux* kernel and the Intel® TCC Mode in the BIOS. These features may be sufficient to satisfy many use cases, with initial cycle times possible in the hundreds of microseconds.
Requirements#
Processor with support for Intel® TCC, such as Intel® i7-1185GRE, i5-1145GRE, and i3-1115GRE processors (The complete list of compatible devices is on the TCC Tools webpage.)
BIOS with support for Intel® TCC, such as Intel’s reference BIOS
Enable the Intel® TCC Mode in the BIOS#
Note
The reference BIOS may differ from BIOS versions offered by BIOS vendors. If you cannot find Intel® TCC Mode in the BIOS, contact your BIOS vendor for more information.
Go to the BIOS menu.
In the BIOS, navigate to Intel Advanced Menu > Intel® Time Coordinated Computing.
Set Intel® TCC Mode to <Enabled>.
For more details, go to Enable Intel® TCC Mode in BIOS.
For additional configuration, go to Configure Intel® TCC Tools in BIOS.
Configure, Build, and Install Intel’s Linux* kernel with Real-Time Support#
Install required dependencies:
sudo apt -y install build-essential gcc bc bison flex libssl-dev libncurses5-dev libelf-dev dwarves zstd
Clone Intel’s Linux* kernel git repository:
git clone https://github.com/intel/linux-intel-lts.git
Enter the newly created directory:
cd linux-intel-lts
Reset to the latest 5.15 RT tag:
git reset --hard lts-v5.15.49-rt47-preempt-rt-220718T080310Z
Create a .config file:
make olddefconfig
Configure the kernel EI for AMR options:
scripts/config --module CONFIG_VIDEO_INTEL_IPU scripts/config --enable CONFIG_VIDEO_INTEL_IPU_SOC scripts/config --disable CONFIG_VIDEO_INTEL_IPU_FW_LIB scripts/config --enable CONFIG_VIDEO_INTEL_IPU_USE_PLATFORMDATA scripts/config --enable CONFIG_V4L_PLATFORM_DRIVERS scripts/config --module CONFIG_VIDEO_LT6911UXC scripts/config --disable CONFIG_VIDEO_CRLMODULE scripts/config --disable CONFIG_VIDEO_INTEL_IPU_PDATA_DYNAMIC_LOADING scripts/config --module CONFIG_VIDEO_TI960 scripts/config --module CONFIG_VIDEO_INTEL_IPU6 scripts/config --module CONFIG_VIDEO_AR0234 scripts/config --module CONFIG_PINCTRL_TIGERLAKE scripts/config --enable CONFIG_INTEL_IPU6_TGLRVP_PDATA scripts/config --set-str SYSTEM_TRUSTED_KEYS "" scripts/config --set-str CONFIG_SYSTEM_REVOCATION_KEYS ""
Configure the Intel® TCC-related options:
scripts/config --module CONFIG_X86_TCC_PTCM
Build the kernel:
make deb-pkg -j8
Install the kernel:
cd ../ && sudo dpkg -i linux-*.deb
Modify the kernel command line for the selected kernel by adding these options to /etc/default/grub:
apparmor=1 security=apparmor art=virtallow udmabuf.list_limit=8192 processor.max_cstate=0 intel.max_cstate=0 processor_idle.max_cstate=0 intel_idle.max_cstate=0 clocksource=tsc tsc=reliable nowatchdog intel_pstate=disable idle=poll rcupdate.rcu_cpu_stall_suppress=1 irqaffinity=0 mce=off hpet=disable numa_balancing=disable igb.blacklist=no efi=runtime hugepages=1024 nmi_watchdog=0 i915.force_probe=* i915.enable_rc6=0 i915.enable_dc=0 i915.disable_power_well=0 isolcpus rcu_nocbs noht nosoftlockup rcu_nocb_poll vt.handoff=7 i915.enable_guc=2
Make the new kernel the default by modifying /etc/default/grub:
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux v5.15.49-rt47"
Update grub:
sudo update-grub
Reboot the board:
sudo reboot -fn