[PATCH 00/10] target/tricore: MPU, peripherals, tc39x SoC

Parthiban Nallathambi posted 10 patches 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260531-dev-ifx-tricore-upstream-rebase-minimal-v1-0-1c39053e5e95@linumiz.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Parthiban Nallathambi <parthiban@linumiz.com>
MAINTAINERS                      |   9 +-
hw/char/Kconfig                  |   3 +
hw/char/meson.build              |   1 +
hw/char/tricore_asclin.c         | 457 +++++++++++++++++++++++++++++++++++++++
hw/intc/Kconfig                  |   3 +
hw/intc/meson.build              |   1 +
hw/intc/tricore_ir.c             | 264 ++++++++++++++++++++++
hw/timer/Kconfig                 |   4 +
hw/timer/meson.build             |   2 +
hw/timer/tricore_stm.c           | 328 ++++++++++++++++++++++++++++
hw/tricore/Kconfig               |  15 ++
hw/tricore/meson.build           |   2 +
hw/tricore/tc27x_soc.c           |  62 ++++++
hw/tricore/tc39xb_soc.c          | 366 +++++++++++++++++++++++++++++++
hw/tricore/triboard.c            |  32 ++-
hw/tricore/tricore_scu.c         | 240 ++++++++++++++++++++
include/hw/char/tricore_asclin.h |  89 ++++++++
include/hw/intc/tricore_ir.h     |  62 ++++++
include/hw/timer/tricore_stm.h   |  76 +++++++
include/hw/tricore/tc27x_soc.h   |  13 ++
include/hw/tricore/tc39xb_soc.h  | 115 ++++++++++
include/hw/tricore/triboard.h    |   2 +
include/hw/tricore/tricore_scu.h | 103 +++++++++
target/tricore/cpu.c             |   8 +
target/tricore/csfr.h.inc        |  20 +-
target/tricore/helper.c          | 242 ++++++++++++++++++++-
26 files changed, 2504 insertions(+), 15 deletions(-)
[PATCH 00/10] target/tricore: MPU, peripherals, tc39x SoC
Posted by Parthiban Nallathambi 1 week ago
Fix the MPU (was a no-op stub), add peripheral devices, wire them
into the tc27x SoC, and add the tc39xb SoC with TC397B machine.

The peripheral device models originate from the EFS-OpenSource
QEMU fork [1], targeting QEMU 9.x.  This series ports them to
the current QEMU 11.x baseline with API fixes and adds TC3x
register support needed for Zephyr RTOS boot.

[1] https://github.com/EFS-OpenSource/qemu-tricore-patches

Changes from the EFS baseline:
- Ported to QEMU 11 APIs (resettable phases, const class_init,
  CharFrontend, hw/core/sysbus.h, DEVICE_LITTLE_ENDIAN, etc.)
- STM: fixed address from 0xF0000000 to 0xF0001000
- IR: fixed address from 0xF0038000 to 0xF0037000
- SCU: added PLL locked status for Zephyr clock driver
- STM: switched to monotonic counter for deterministic timing

Patches 1-3: Fix memory protection registers, implement MPU,
add tc39x CPU model.

Patches 4-7: Add IR, ASCLIN UART, STM timer, SCU devices.

Patch 8: Wire peripherals into tc27x SoC.

Patch 9: Update MAINTAINERS (Orphan -> Maintained).

Patch 10: Add tc39xb SoC and KIT_AURIX_TC397_TRB machine.

Interrupt delivery and TC1.8 ISA will follow in separate series.

Single-core emulation only (CPU0).  Tested with bare-metal
firmware on TC277 and TC397B boards.  Existing TCG tests pass.

The downstream release with TC4x and interrupt support is
maintained at [2].

[2] https://gitlab.com/linumiz/infineon/release/qemu-aurix

Signed-off-by: Parthiban Nallathambi <parthiban@linumiz.com>
---
Parthiban Nallathambi (10):
      target/tricore: replace legacy DPM/CPM CSFRs with CPXE/DPRE/DPWE
      target/tricore: implement memory protection in get_physical_address
      target/tricore: add tc39x CPU model
      hw/intc: add TriCore interrupt router
      hw/char: add TriCore ASCLIN UART controller
      hw/timer: add TriCore System Timer Module (STM)
      hw/tricore: add System Control Unit (SCU) device
      hw/tricore: wire peripherals into tc27x SoC
      MAINTAINERS: take over TriCore and add peripheral file paths
      hw/tricore: add tc39xb SoC and KIT_AURIX_TC397_TRB machine

 MAINTAINERS                      |   9 +-
 hw/char/Kconfig                  |   3 +
 hw/char/meson.build              |   1 +
 hw/char/tricore_asclin.c         | 457 +++++++++++++++++++++++++++++++++++++++
 hw/intc/Kconfig                  |   3 +
 hw/intc/meson.build              |   1 +
 hw/intc/tricore_ir.c             | 264 ++++++++++++++++++++++
 hw/timer/Kconfig                 |   4 +
 hw/timer/meson.build             |   2 +
 hw/timer/tricore_stm.c           | 328 ++++++++++++++++++++++++++++
 hw/tricore/Kconfig               |  15 ++
 hw/tricore/meson.build           |   2 +
 hw/tricore/tc27x_soc.c           |  62 ++++++
 hw/tricore/tc39xb_soc.c          | 366 +++++++++++++++++++++++++++++++
 hw/tricore/triboard.c            |  32 ++-
 hw/tricore/tricore_scu.c         | 240 ++++++++++++++++++++
 include/hw/char/tricore_asclin.h |  89 ++++++++
 include/hw/intc/tricore_ir.h     |  62 ++++++
 include/hw/timer/tricore_stm.h   |  76 +++++++
 include/hw/tricore/tc27x_soc.h   |  13 ++
 include/hw/tricore/tc39xb_soc.h  | 115 ++++++++++
 include/hw/tricore/triboard.h    |   2 +
 include/hw/tricore/tricore_scu.h | 103 +++++++++
 target/tricore/cpu.c             |   8 +
 target/tricore/csfr.h.inc        |  20 +-
 target/tricore/helper.c          | 242 ++++++++++++++++++++-
 26 files changed, 2504 insertions(+), 15 deletions(-)
---
base-commit: 81cc5f39aa3042e9c0b2ea772b42a2c8b1488e76
change-id: 20260531-dev-ifx-tricore-upstream-rebase-minimal-e18f56d421a6

Thanks,
--  
Parthiban Nallathambi <parthiban@linumiz.com>