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

Parthiban Nallathambi posted 10 patches 1 month, 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 month, 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>
Re: [PATCH 00/10] target/tricore: MPU, peripherals, tc39x SoC
Posted by Parthiban 3 weeks, 6 days ago
On 5/31/26 11:30 AM, Parthiban Nallathambi wrote:
> 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

Good evening, Ping for review. I know TriCore lags active maintainers.
Looking forward to know how to handle it. I have few follow-up patch series
which handles additional models and also newer cores.

Thanks,
Parthiban
Re: [PATCH 00/10] target/tricore: MPU, peripherals, tc39x SoC
Posted by Parthiban 5 days, 9 hours ago
On 6/15/26 3:13 PM, Parthiban wrote:
> On 5/31/26 11:30 AM, Parthiban Nallathambi wrote:
>> 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
> 
> Good evening, Ping for review. I know TriCore lags active maintainers.
> Looking forward to know how to handle it. I have few follow-up patch series
> which handles additional models and also newer cores.

Ping and looking forward for initial reviews for TriCore. 

Thanks,
Parthiban
> 
> Thanks,
> Parthiban
Re: [PATCH 00/10] target/tricore: MPU, peripherals, tc39x SoC
Posted by Philippe Mathieu-Daudé 5 days, 7 hours ago
Hi Parthiban,

On 7/7/26 20:16, Parthiban wrote:
> On 6/15/26 3:13 PM, Parthiban wrote:
>> On 5/31/26 11:30 AM, Parthiban Nallathambi wrote:
>>> 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
>>
>> Good evening, Ping for review. I know TriCore lags active maintainers.
>> Looking forward to know how to handle it. I have few follow-up patch series
>> which handles additional models and also newer cores.
> 
> Ping and looking forward for initial reviews for TriCore.

I have this series tagged for review, but I couldn't dedicate enough
time / focus / energy to start reviewing it... :S Unfortunately it
missed the next release, but it will likely be in the following one!

Regards,

Phil.