parthitce opened a new pull request, #19041:
URL: https://github.com/apache/nuttx/pull/19041

   ## Summary
   
   This PR adds support for the TriCore architecture used in the Infineon AURIX 
TC3X (TC1.6P core) and TC4X (TC1.8P core) SoC families. It also adds support 
for two evaluation boards, the AURIX Lite Kit TC375 and the AURIX Lite Kit 
TC4D7.
   
   The TriCore code that was in apache/nuttx before this change depends on the 
iLLD vendor SDK that has to be downloaded at build time. That arrangement does 
not fit an upstream tree and breaks any offline build. The chip-per-name 
directory layout under arch/tricore/src and boards/tricore was built around 
that iLLD path and only ever held two boards that do not build on current 
master and are not in CI.
   
   This PR removes the iLLD path along with those legacy directories and 
replaces them with a family-first layout under arch/tricore/src: common, aurix 
(shared peripherals), tc3x and tc4x. The new port uses direct SFR access and 
works with both GNU GCC (tricore-elf-gcc) and the HighTec LLVM compiler.
   
   ## Impact
   
   - Users: a new architecture port. Two boards are available: a2g-tc375-lite 
and a3g-tc4d7-lite. Each board has an nsh defconfig for GCC and an nsh-llvm 
defconfig for HighTec LLVM.
   - Build: adds Make and CMake support for tricore-elf-gcc and for the HighTec 
clang toolchain. No other architecture is touched.
   - Hardware: only UART is wired in this initial port. GPIO pinmuxing is 
available for follow-up drivers. Other peripherals (SPI, MCAN, QSPI, and so on) 
will follow in upcoming series.
   - Documentation: Documentation/platforms/tricore is refreshed to match the 
new layout, toolchains and drivers.
   - Security: no security-relevant changes outside the new arch.
   - Compatibility: the iLLD-based TriCore configurations are removed. The two 
boards that lived under the old layout (KIT_A2G_TC397_5V_TFT and 
TRIBOARD_TC4X9_COM) do not build on current master and have no test list entry, 
so no working user is affected.
   
   ## Testing
   
   Host machine: Linux x86_64.
   
   Toolchains:
   
   - GNU GCC: tricore-elf-gcc 11.3.1
   - HighTec LLVM: clang 10.2.0 (uses a HighTec license through $RLM_LICENSE)
   - OpenOCD: tricore-openocd with the Infineon AURIX patches, used for 
flashing real hardware
   
   Boards used on real hardware:
   
   - AURIX Lite Kit TC375 (a2g-tc375-lite)
   - AURIX Lite Kit TC4D7 (a3g-tc4d7-lite)
   
   Hardware boot and NSH:
   
   - Both boards flashed through OpenOCD one-shot.
   - NSH banner reached on the on-board USB serial console (ASCLIN0 at 115200, 
8N1).
   - uname -a returns the correct build identifier and board name on both 
boards.
   
   ostest with CONFIG_TESTING_OSTEST=y and CONFIG_TESTING_OSTEST_LOOPS=2:
   
   - TC375 Lite Kit: PASSED 6, FAILED 0, no panic or assert, clean user_main 
exit.
   - TC4D7 Lite Kit: PASSED 6, FAILED 0, no panic or assert, clean user_main 
exit.
   
   Subtests exercised by ostest include mutex_test, sched_lock, cond_test, 
cancel_test (pthread_join against a cancelled thread), robust_test (robust 
mutexes), the round-robin scheduler test with two get_primes threads, and 
task_restart. The thread-heavy workload exercises the CSA allocator on every 
task and thread creation.
   
   Style and compliance:
   
   - tools/checkpatch.sh -g <range> -m on the 12-commit range: All checks pass.
   
   Full boot and ostest logs from both boards are kept in the local test output 
directory.
   
   
   Signed-off-by: Saravanan Sekar <[email protected]>
   Signed-off-by: Parthiban Nallathambi <[email protected]>


-- 
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]

Reply via email to