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.

  1. Go to the BIOS menu.

  2. In the BIOS, navigate to Intel Advanced Menu > Intel® Time Coordinated Computing.

  3. Set Intel® TCC Mode to <Enabled>.

Configure, Build, and Install Intel’s Linux* kernel with Real-Time Support#

  1. Install required dependencies:

    sudo apt -y install build-essential gcc bc bison flex libssl-dev libncurses5-dev libelf-dev dwarves zstd
    
  2. Clone Intel’s Linux* kernel git repository:

    git clone https://github.com/intel/linux-intel-lts.git
    
  3. Enter the newly created directory:

    cd linux-intel-lts
    
  4. Reset to the latest 5.15 RT tag:

    git reset --hard lts-v5.15.49-rt47-preempt-rt-220718T080310Z
    
  5. Create a .config file:

    make olddefconfig
    
  6. 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 ""
    
  7. Configure the Intel® TCC-related options:

    scripts/config --module CONFIG_X86_TCC_PTCM
    
  8. Build the kernel:

    make deb-pkg -j8
    
  9. Install the kernel:

    cd ../ && sudo dpkg -i linux-*.deb
    
  10. 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
    
  11. Make the new kernel the default by modifying /etc/default/grub:

    GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux v5.15.49-rt47"
    
  12. Update grub:

    sudo update-grub
    
  13. Reboot the board:

    sudo reboot -fn