QEMU Emulation for Infineon AURIX TC39x

QEMU Emulation for Infineon AURIX TC4Dx

Overview

Emulate the Infineon AURIX TriCore architecture under QEMU. Two boards are supported:

  • qemu_tc3x - TC39x SoC (TriCore TC1.6.2P ISA)

  • qemu_tc4x - TC4Dx SoC (TriCore TC1.8P ISA)

Both provide the STM system timer, a polling-mode ASCLIN UART console and the interrupt router.

Hardware

Supported Features

The qemu_tc3x board supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.

Known Problems or Limitations

  • No SMP, AMP or MPU emulation

Programming and Debugging

QEMU Setup

TriCore QEMU is not part of the Zephyr SDK. Use a prebuilt binary from https://gitlab.com/linumiz/infineon/release/qemu-aurix/-/releases, or build it from source:

git clone https://gitlab.com/linumiz/infineon/release/qemu-aurix.git
cd qemu-aurix
./configure --target-list=tricore-softmmu
make -j$(nproc) && make install

Ensure qemu-system-tricore is on your $PATH.

The qemu_tc3x board supports the runners and associated west commands listed below.

flash debug

Running

Build and run the Hello World sample (use qemu_tc4x for the TC4Dx target):

# From the root of the zephyr repository
west build -b qemu_tc3x samples/hello_world
west build -t run

The console shows:

*** Booting Zephyr OS build ... ***
Hello World! qemu_tc3x/qemu_tc3x

Exit QEMU by pressing CTRL+A x.

Debugging

Refer to the detailed overview about Application Debugging.