ssekar15 opened a new pull request, #21519:
URL: https://github.com/apache/nuttx/pull/21519
## Summary
TriCore disables the watchdogs and sets up the clocks through the Infineon
iLLD. core0_main disables the CPU and the safety (TC3xx) or system (TC4xx)
watchdog with IfxScuWdt or IfxWtu, and the startup code sets up the
oscillator, the PLLs and the clock dividers with IfxScuCcu_init (TC3xx)
or IfxClock_init (TC4xx) and their default configurations.
This series adds tricore_wdt_disable for each chip family, which drives
the SCU WDT or WTU registers directly, and tricore_clockconfig, which the
startup code now calls instead of the iLLD clock init. It runs the same
sequence with the clock, SMU and DMU registers and the same settings: on
TC3xx a 20 MHz crystal and the system PLL at 300 MHz, on TC4xx the flash
wait states, a 25 MHz crystal, the ramp oscillator and the system PLL at
500 MHz. All watchdog and clock registers end up with the same values as
before.
NuttX itself no longer calls the iLLD clock and watchdog drivers after
this series, but IfxScuCcu.c, IfxClock.c, IfxScuWdt.c and IfxWtu.c stay
in the build. Other iLLD drivers that are still built use them: IfxAsclin
takes the ASCLIN clock frequency from them for the baud rate, and IfxCpu,
IfxPort, IfxPmsPm, IfxPmsEvr, IfxScuRcu, IfxScuEru and IfxSmu use their
frequency and ENDINIT helpers. The clock hook also stays in the iLLD
startup configuration (Ifx_Cfg_Ssw), as the startup code is still the
iLLD one. These go with the native UART and startup steps that follow.
## Dependency
Depends on #21518.
## Impact
TriCore only (arch/tricore).
- New chip files tc3xx_wdt.c, tc3xx_clockconfig.c, tc4xx_wdt.c and
tc4xx_clockconfig.c.
- The iLLD startup configuration (Ifx_Cfg_Ssw.h for TC3xx, Ifx_Cfg_Ssw.c
for TC4xx) calls tricore_clockconfig for the PLL init.
- IfxScuCcu_init and IfxClock_init are no longer linked. IfxScuCcu.c,
IfxClock.c, IfxScuWdt.c and IfxWtu.c are still built for the iLLD UART
driver and startup code, until those are replaced.
- No functional change intended.
No Kconfig, board defconfig or documentation changes.
## Testing
I confirm that changes are verified on local setup and works as intended:
* Build Host(s): Linux x86_64, Debian GNU/Linux 12 (bookworm)
* Toolchains: AURIX GCC 11.3.1 (tricore-elf-gcc), TASKING VX-toolset v6.4r1
(TC3x), TASKING SmartCode v10.4r1 (TC4x)
* Build systems: make, cmake (Ninja)
* Target(s): a2g-tc397-5v-tft:nsh, triboard_tc4x9_com:nsh
* Hardware: TriBoard TC397 V2.0; TriBoard TC4x7 COM V3.0 for the
triboard_tc4x9_com image
* Each commit passes tools/checkpatch.sh.
Build results (tip):
| Board | GCC make | GCC cmake | TASKING make | TASKING cmake |
|---|---|---|---|---|
| a2g-tc397-5v-tft:nsh | pass | pass | pass | - |
| triboard_tc4x9_com:nsh | pass | - | pass | pass |
Runtime, ostest (on 3db1dd17fbf, the same code before the last rebase):
| Board | GCC | TASKING |
|---|---|---|
| TriBoard TC397 (a2g-tc397-5v-tft:nsh) | pass | pass |
| TriBoard TC4x7 (triboard_tc4x9_com:nsh) | pass | wqueue assert, also on
master |
```
nsh> uname -a
NuttX 10.4.0 3db1dd17fbf Nov 6 2026 16:58:29 tricore a2g-tc397-5v-tft
nsh> ostest
...
user_main: Exiting
ostest_main: Exiting with status 0
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]