Skip to content

Conversation

@anchao
Copy link
Contributor

@anchao anchao commented Feb 17, 2024

Summary

arch/tricore: add Infineon AURIX TriCore support
Add support for tricore TC397

  1. Porting based on AURIX TC397 KIT_A2G_TC397_5V_TFT evaluation board

    https://www.infineon.com/cms/en/product/evaluation-boards/kit_a2g_tc397_5v_tft/

  2. In order to avoid license and coding style issues, The chip-level code still uses the implementation of AURIX Development Studio SDK. The SDK package will be downloaded as a third-party package during compilation:

    https://github.com/anchao/tc397_sdk

  3. Single core only, SMP implementation will be provided in the future.

  4. Implemented the basic System Timer, ASCLIN UART driver.

  5. Only the Tasking tool chain is supported (ctc/ltc, license maybe required)

  6. 'ostest' can be completed on the TC397 development board.

How to run?

  1. Setup the tasking toolchain and license
$ export TSK_LICENSE_KEY_SW160800=d22f-7473-ff5d-1b70
$ export TSK_LICENSE_SERVER=192.168.36.12:9090
  1. Build nuttx ELF
$ ./tools/configure.sh tc397/nsh
$ make -j
...
artc I800: creating archive libc_fpu.a
LD: nuttx
  1. Switch to windows PC, setup AURIX-studio to Debugger Launcher

20240217-211326

  1. Replace running ELF to nuttx, and re-download ELF

20240217-211330

  1. Config terminal on IDE

20240217-211712

  1. Run nuttx

20240217-211335
20240217-211542

Impact

N/A

Testing

Tricore KIT_A2G_TC397_5V_TFT

@anchao anchao marked this pull request as draft February 17, 2024 13:21
@anchao anchao marked this pull request as ready for review February 18, 2024 07:58
@acassis
Copy link
Contributor

acassis commented Feb 18, 2024

@anchao Did you consider verifying with Infineon if they can allow to use their code under Apache license. Many companies are starting to use to shortcut to just download the vendor SDK/HAL, but I think this approach could be risk. Also a proper port based on datasheet will avoid license issues. Although it is slower, this is how Greg did all the ports!

@anchao
Copy link
Contributor Author

anchao commented Feb 18, 2024

@acassis

  1. All files in this pull request are re-implemented based on nuttx RTOS and do not use any code from Infineon SDK/HAL.
  2. The Infineon low-level driver (iLLD) referenced in the nuttx kernel is released for free in AURIX™ Development Studio. Anyone can obtain the relevant SDK on the infineon official website:

https://www.infineon.com/cms/en/product/promopages/aurix-development-studio/

20240219-074608

and Infineon also open sourced the relevant code on github:

https://github.com/Infineon/AURIX_code_examples/tree/master

e.g:
https://github.com/Infineon/AURIX_code_examples/tree/master/code_examples/GPT12_Timer_Concatenation_1_KIT_TC397_TFT

  1. nuttx only provides a free platform licensed by Apache to demo the Infineon development board. If developers or companies want to use it commercially, then they should consider licensing issues.

@acassis
Copy link
Contributor

acassis commented Feb 19, 2024

@anchao thank you for explanation, these details are really strange. Could you please include the platform Documentation? Also comment about the license issues. I will contact some friends at Infineon and try to help with this licensing issues.

@anchao
Copy link
Contributor Author

anchao commented Feb 20, 2024

@acassis I have added TriCore architecture to documentation, which mentioned the reference of core chip implement reused Infineon low-level driver (iLLD) SDK/HAL, please review

add infineon prefix into ignore list to avoid nxstyle warning

Signed-off-by: chao an <anchao@lixiang.com>
…ecture

This commit add documentation for the Infineon’s AURIX TriCore architecture.

Signed-off-by: chao an <anchao@lixiang.com>
@anchao anchao force-pushed the tricore_upstream branch 2 times, most recently from cf2166f to 1c608a0 Compare February 22, 2024 00:43
Add support for tricore TC397

1. Porting based on AURIX TC397 KIT_A2G_TC397_5V_TFT evaluation board

   https://www.infineon.com/cms/en/product/evaluation-boards/kit_a2g_tc397_5v_tft/

2. In order to avoid license and coding style issues, The chip-level code
   still uses the implementation of AURIX Development Studio SDK.
   The SDK package will be downloaded as a third-party package during compilation:

   https://github.com/anchao/tc397_sdk

3. Single core only, SMP implementation will be provided in the future.
4. Implemented the basic System Timer, ASCLIN UART driver.
5. Only the Tasking tool chain is supported (ctc/ltc, license maybe required)
6. 'ostest' can be completed on the TC397 development board.

How to run?

1. Setup the tasking toolchain and license

$ export TSK_LICENSE_KEY_SW160800=d22f-7473-ff5d-1b70
$ export TSK_LICENSE_SERVER=192.168.36.12:9090

2. Build nuttx ELF

$ ./tools/configure.sh tc397/nsh
$ make -j
...
artc I800: creating archive libc_fpu.a
LD: nuttx

3. Switch to windows PC, setup AURIX-studio to Debugger Launcher

4. Replace runing ELF to nuttx, and re-download ELF

Signed-off-by: chao an <anchao@lixiang.com>
@xiaoxiang781216
Copy link
Contributor

Let's ignore the ci temp break which is fixed by #11740.

@xiaoxiang781216 xiaoxiang781216 merged commit 996b937 into apache:master Feb 22, 2024
@anchao anchao deleted the tricore_upstream branch August 20, 2024 00:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants