Skip to content

arch/tricore: add support for tc4xx series chips and boards#18391

Open
zhangyu-duck wants to merge 7 commits intoapache:masterfrom
zhangyu-duck:tricore_tc4_board
Open

arch/tricore: add support for tc4xx series chips and boards#18391
zhangyu-duck wants to merge 7 commits intoapache:masterfrom
zhangyu-duck:tricore_tc4_board

Conversation

@zhangyu-duck
Copy link

Note: Please adhere to Contributing Guidelines.

Summary

Two main updates:

  1. Uses the official Infineon ILLD repository instead of a private repository.
  2. Adds support for tc4xx series chips and boards

Impact

support tc4xx chip

Testing

  1. Both cmake and makefile methods can compile tc3xx/tc4xx.
  2. pass ostest, basic functions are normal

nsh> hello
Hello, World!! tc4 ostest
nsh>

i give tc4 ostest.log in attach files
tc4_ostest.log

@github-actions github-actions bot added Arch: tricore Issues related to the TriCore architecture from Infineon Board: tricore Size: XL The size of the change in this PR is very large. Consider breaking down the PR into smaller pieces. labels Feb 13, 2026
/**********************************************************************************************************************
* \file Ifx_Cfg_Ssw.c
* \brief Configuration file for the Startup Software
* \copyright Copyright (C) Infineon Technologies AG 2019
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can Ifx_*.c use the iLLD implementation?I'm not sure if introducing Infineon's license is feasible, or could we submit the differences as a patch file?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i will check it

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We feel that these files may still be changed in the future, and it's not convenient to upload them as a patch list.
i have rewrite them and only keep something we need. and replace with SPDX license.

@zhangyu-duck zhangyu-duck force-pushed the tricore_tc4_board branch 2 times, most recently from 745ed4d to 4edecbe Compare February 13, 2026 08:49
@jerpelea jerpelea changed the title Tricore tc4 board arch/tricore: add support for tc4xx series chips and boards Feb 13, 2026
Copy link
Contributor

@jerpelea jerpelea left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please document all non Apache license file to
https://github.com/apache/nuttx/blob/master/LICENSE

Copy link
Contributor

@jerpelea jerpelea left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add SPDX license identifiers to all files not only Apache licensed ones

@zhangyu-duck
Copy link
Author

please add SPDX license identifiers to all files not only Apache licensed ones

ok,thanks, i have updata code

@zhangyu-duck
Copy link
Author

please add SPDX license identifiers to all files not only Apache licensed ones

get it, thanks

Copy link
Contributor

@acassis acassis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zhangyu-duck please update the Documentation https://nuttx.apache.org/docs/latest/platforms/tricore/index.html to include these new chips.

Unfortunately our Documentation is very non-standardized, some Documentation arch are very good, others are very primitive (let say not helpful). So, I suggest you to use https://nuttx.apache.org/docs/latest/platforms/arm/imxrt/index.html as a good reference.

Copy link
Contributor

@linguini1 linguini1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess since this modifies the TC3xx logic as well, could you please include an OSTest log from a tc3 board? The tc4 log looks good.

select UART0_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS

config CPU_COREID
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TC4XX_CPU_COREID

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's may better to use the same name, so that the common upper-level code of TC3/TC4 doesn't need to be modified.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest moving the config option to a higher level tricore Kconfig then, one that's common to both.

@linguini1
Copy link
Contributor

Also I won't block the PR about this since I have pretty much no familiarity with the tricore architecture, but is it necessary to use the SDK? It seems like this PR needs to include a lot of workarounds for quirks with the SDK (like the libc stubs and patch files). Is it at all possible to avoid using the SDK directly? I know a few other archs in NuttX use this approach (hence why I don't think it's a dealbreaker or anything), but I also know the preferred method is to avoid using vendor SDKs/HALs entirely if possible.

zyfeier and others added 6 commits February 14, 2026 11:13
perform type conversion to eliminate warnings

Signed-off-by: zhangyuan29 <zhangyuan29@xiaomi.com>
add arch.h in irq.h

Signed-off-by: zhangyuan29 <zhangyuan29@xiaomi.com>
tc3 and tc4 use common irq.h

Signed-off-by: zhangyu117 <zhangyu117@xiaomi.com>
support tc4evb board, so need adjust some Kconfig

Signed-off-by: zhangyu117 <zhangyu117@xiaomi.com>
rename tc3xx.cmake to chip.cmake

Signed-off-by: zhangyuan29 <zhangyuan29@xiaomi.com>
Let the linker script decide the location of the heap.

Signed-off-by: zhangyuan29 <zhangyuan29@xiaomi.com>
@zhangyu-duck
Copy link
Author

Also I won't block the PR about this since I have pretty much no familiarity with the tricore architecture, but is it necessary to use the SDK? It seems like this PR needs to include a lot of workarounds for quirks with the SDK (like the libc stubs and patch files). Is it at all possible to avoid using the SDK directly? I know a few other archs in NuttX use this approach (hence why I don't think it's a dealbreaker or anything), but I also know the preferred method is to avoid using vendor SDKs/HALs entirely if possible.

Sorry, Infineon's Tricore chip heavily relies on ILLD's library functions, making it difficult to render effectively. The original TC3 series chips also did this before.

@zhangyu-duck zhangyu-duck requested a review from acassis February 14, 2026 03:32
@zhangyu-duck
Copy link
Author

@zhangyu-duck please update the Documentation https://nuttx.apache.org/docs/latest/platforms/tricore/index.html to include these new chips.

Unfortunately our Documentation is very non-standardized, some Documentation arch are very good, others are very primitive (let say not helpful). So, I suggest you to use https://nuttx.apache.org/docs/latest/platforms/arm/imxrt/index.html as a good reference.

ok, get it

@zhangyu-duck
Copy link
Author

@zhangyu-duck please update the Documentation https://nuttx.apache.org/docs/latest/platforms/tricore/index.html to include these new chips.

Unfortunately our Documentation is very non-standardized, some Documentation arch are very good, others are very primitive (let say not helpful). So, I suggest you to use https://nuttx.apache.org/docs/latest/platforms/arm/imxrt/index.html as a good reference.

@zhangyu-duck zhangyu-duck reopened this Feb 14, 2026
@github-actions github-actions bot added the Area: Documentation Improvements or additions to documentation label Feb 14, 2026
add new chip named tc4xx and board tc4evb

Signed-off-by: zhangyu117 <zhangyu117@xiaomi.com>
@acassis
Copy link
Contributor

acassis commented Feb 14, 2026

@simbit18 do you know if LVGL v9.2 files were removed from their site?

====================================================================================
Configuration/Tool: raspberrypi-4b/lvgl
2026-02-14 04:31:13
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Building NuttX...
[v9.2.1.zip]
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of v9.2.1.zip or
        v9.2.1.zip.zip, and cannot find v9.2.1.zip.ZIP, period.
make[3]: *** [Makefile:77: lvgl] Error 9
make[3]: Target 'context' not remade because of errors.
make[2]: *** [Makefile:57: /github/workspace/sources/apps/graphics/lvgl_context] Error 2
make[2]: Target 'context_all' not remade because of errors.
make[1]: *** [Makefile:187: context] Error 2
make: *** [tools/Unix.mk:458: /github/workspace/sources/apps/.context] Error 2
make: Target 'all' not remade because of errors.
/github/workspace/sources/nuttx/tools/testbuild.sh: line 385: /github/workspace/sources/nuttx/../nuttx/nuttx.manifest: No such file or directory
  [1/1] Normalize raspberrypi-4b/lvgl

We need to create our own mirror at github.com/nuttx/

@parthitce
Copy link

Also I won't block the PR about this since I have pretty much no familiarity with the tricore architecture, but is it necessary to use the SDK? It seems like this PR needs to include a lot of workarounds for quirks with the SDK (like the libc stubs and patch files). Is it at all possible to avoid using the SDK directly? I know a few other archs in NuttX use this approach (hence why I don't think it's a dealbreaker or anything), but I also know the preferred method is to avoid using vendor SDKs/HALs entirely if possible.

On this note, we are already in the phase of developing iLLD independent Tricore support. Although this isn't mature yet, plans are tracked here 1. Also you can find development tree with various branches 2 named dev/infineon/tricore-xxyy, for example working variant of UART 3. Our main goal is get to upstream NuttX during the course of this year.

@linguini1
Copy link
Contributor

On this note, we are already in the phase of developing iLLD independent Tricore support. Although this isn't mature yet, plans are tracked here 1. Also you can find development tree with various branches 2 named dev/infineon/tricore-xxyy, for example working variant of UART 3. Our main goal is get to upstream NuttX during the course of this year.

Woah awesome news! Thanks!

@simbit18
Copy link
Contributor

@simbit18 do you know if LVGL v9.2 files were removed from their site?

Hi @acassis There were temporary issues downloading the package.

@acassis
Copy link
Contributor

acassis commented Feb 15, 2026

@simbit18 do you know if LVGL v9.2 files were removed from their site?

Hi @acassis There were temporary issues downloading the package.

Thank you @simbit18

@parthitce
Copy link

@zhangyu-duck are these changes tested with Tasking only or OSS GCC can also be used?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Arch: tricore Issues related to the TriCore architecture from Infineon Area: Documentation Improvements or additions to documentation Area: Tooling Board: tricore Size: XL The size of the change in this PR is very large. Consider breaking down the PR into smaller pieces.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants