From 56697d62725ad90df226e1326dc23eaf28cd7eb8 Mon Sep 17 00:00:00 2001 From: Yuriy Vynnychek Date: Wed, 8 Oct 2025 12:20:18 +0300 Subject: [PATCH 1/4] dts: infineon: xmc7200: fix wrong Flash and SRAM namings Fix wrong case when Flash was called "data" and SRAM was called "code". Rename Flash to "code" and SRAM to "data". Signed-off-by: Yuriy Vynnychek --- .../kit_xmc72_evk_xmc7200d_e272k8384_m0p.dts | 4 ++-- .../kit_xmc72_evk_xmc7200d_e272k8384_m7_0.dts | 4 ++-- .../kit_xmc72_evk_xmc7200d_e272k8384_m7_1.dts | 4 ++-- .../cat1c/xmc7200/memory_partition.dtsi | 18 ++++++++++++------ 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/boards/infineon/kit_xmc72_evk/kit_xmc72_evk_xmc7200d_e272k8384_m0p.dts b/boards/infineon/kit_xmc72_evk/kit_xmc72_evk_xmc7200d_e272k8384_m0p.dts index 0820c7d669379..8c5a65b19e9b1 100644 --- a/boards/infineon/kit_xmc72_evk/kit_xmc72_evk_xmc7200d_e272k8384_m0p.dts +++ b/boards/infineon/kit_xmc72_evk/kit_xmc72_evk_xmc7200d_e272k8384_m0p.dts @@ -16,8 +16,8 @@ compatible = "infineon,kit_xmc72_evk", "infineon,XMC7200"; chosen { - zephyr,sram = &m0p_code; - zephyr,flash = &m0p_data; + zephyr,sram = &sram_m0p; + zephyr,flash = &flash_m0p; zephyr,console = &uart3; zephyr,shell-uart = &uart3; }; diff --git a/boards/infineon/kit_xmc72_evk/kit_xmc72_evk_xmc7200d_e272k8384_m7_0.dts b/boards/infineon/kit_xmc72_evk/kit_xmc72_evk_xmc7200d_e272k8384_m7_0.dts index 1e14555daedf0..fe4a2ffe56554 100644 --- a/boards/infineon/kit_xmc72_evk/kit_xmc72_evk_xmc7200d_e272k8384_m7_0.dts +++ b/boards/infineon/kit_xmc72_evk/kit_xmc72_evk_xmc7200d_e272k8384_m7_0.dts @@ -20,8 +20,8 @@ }; chosen { - zephyr,sram = &cm7_0_code; - zephyr,flash = &cm7_0_data; + zephyr,sram = &sram_m7_0; + zephyr,flash = &flash_m7_0; zephyr,dtcm = &dtcm; zephyr,itcm = &itcm; zephyr,console = &uart3; diff --git a/boards/infineon/kit_xmc72_evk/kit_xmc72_evk_xmc7200d_e272k8384_m7_1.dts b/boards/infineon/kit_xmc72_evk/kit_xmc72_evk_xmc7200d_e272k8384_m7_1.dts index ccfb909208a18..138ffa114b23c 100644 --- a/boards/infineon/kit_xmc72_evk/kit_xmc72_evk_xmc7200d_e272k8384_m7_1.dts +++ b/boards/infineon/kit_xmc72_evk/kit_xmc72_evk_xmc7200d_e272k8384_m7_1.dts @@ -20,8 +20,8 @@ }; chosen { - zephyr,sram = &cm7_1_code; - zephyr,flash = &cm7_1_data; + zephyr,sram = &sram_m7_1; + zephyr,flash = &flash_m7_1; zephyr,dtcm = &dtcm; zephyr,itcm = &itcm; zephyr,console = &uart3; diff --git a/dts/arm/infineon/cat1c/xmc7200/memory_partition.dtsi b/dts/arm/infineon/cat1c/xmc7200/memory_partition.dtsi index e9fe7fa7ce7f5..0d69b200f3715 100644 --- a/dts/arm/infineon/cat1c/xmc7200/memory_partition.dtsi +++ b/dts/arm/infineon/cat1c/xmc7200/memory_partition.dtsi @@ -1,34 +1,40 @@ +/* + * Copyright (c) 2025 Infineon Technologies AG, + * or an affiliate of Infineon Technologies AG. + * + * SPDX-License-Identifier: Apache-2.0 + */ / { - m0p_code: m0p_code@28000800 { + sram_m0p: sram@28000800 { compatible = "mmio-sram"; reg = <0x28000800 DT_SIZE_K(16)>; }; - m0p_data: m0p_data@10000000 { + flash_m0p: flash@10000000 { compatible = "soc-nv-flash"; reg = <0x10000000 DT_SIZE_K(512)>; write-block-size = <512>; erase-block-size = <512>; }; - cm7_0_code: cm7_0_code@28004000 { + sram_m7_0: sram@28004000 { compatible = "mmio-sram"; reg = <0x28004000 DT_SIZE_K(816)>; }; - cm7_0_data: cm7_0_data@10080000 { + flash_m7_0: flash@10080000 { compatible = "soc-nv-flash"; reg = <0x10080000 DT_SIZE_K(2048)>; write-block-size = <512>; erase-block-size = <512>; }; - cm7_1_code: cm7_1_code@280d0000 { + sram_m7_1: sram@280d0000 { compatible = "mmio-sram"; reg = <0x280d0000 DT_SIZE_K(64)>; }; - cm7_1_data: cm7_1_data@10280000 { + flash_m7_1: flash@10280000 { compatible = "soc-nv-flash"; reg = <0x10280000 DT_SIZE_K(5824)>; write-block-size = <512>; From 54b2a09474a8574ba1378fc47ac32cf3d2ffaf93 Mon Sep 17 00:00:00 2001 From: Yuriy Vynnychek Date: Wed, 8 Oct 2025 12:56:08 +0300 Subject: [PATCH 2/4] soc: infineon: xmc7200: extend CYT4BFxx MPNs support - Add Cortex M0+, M7(0) and M7(1) selection. - Add TEQFP_176 and BGA_320 package support. Signed-off-by: Yuriy Vynnychek --- modules/hal_infineon/CMakeLists.txt | 5 + .../hal_infineon/mtb-hal-cat1/CMakeLists.txt | 4 + soc/infineon/cat1c/soc.yml | 48 +++++ soc/infineon/cat1c/xmc7200/CMakeLists.txt | 3 - soc/infineon/cat1c/xmc7200/Kconfig | 154 ++++++++++++++++ soc/infineon/cat1c/xmc7200/Kconfig.soc | 168 ++++++++++++++++++ soc/infineon/cat1c/xmc7200/soc_m7.c | 12 +- 7 files changed, 385 insertions(+), 9 deletions(-) diff --git a/modules/hal_infineon/CMakeLists.txt b/modules/hal_infineon/CMakeLists.txt index ac5eb53d7fc00..a25da7df3369b 100644 --- a/modules/hal_infineon/CMakeLists.txt +++ b/modules/hal_infineon/CMakeLists.txt @@ -70,6 +70,11 @@ if(CONFIG_SOC_FAMILY_INFINEON_EDGE) add_subdirectory(mtb-dsl-pse8xxgp) endif() +if(CONFIG_SOC_FAMILY_INFINEON_CAT1C) + zephyr_library_compile_definitions_ifdef(CONFIG_SOC_XMC7200_CORE_NAME_M7_0 CORE_NAME_CM7_0) + zephyr_library_compile_definitions_ifdef(CONFIG_SOC_XMC7200_CORE_NAME_M7_1 CORE_NAME_CM7_1) +endif() + if(CONFIG_SOC_SERIES_PSC3) add_subdirectory(zephyr-ifx-cycfg) endif() diff --git a/modules/hal_infineon/mtb-hal-cat1/CMakeLists.txt b/modules/hal_infineon/mtb-hal-cat1/CMakeLists.txt index 6a5de56184cc2..ffa26edb2498d 100644 --- a/modules/hal_infineon/mtb-hal-cat1/CMakeLists.txt +++ b/modules/hal_infineon/mtb-hal-cat1/CMakeLists.txt @@ -63,8 +63,12 @@ zephyr_library_sources_ifdef(CONFIG_SOC_PACKAGE_PSOC6_04_80_TQFP zephyr_library_sources_ifdef(CONFIG_SOC_PACKAGE_CYW20829_56_QFN ${hal_cat1b_dir}/source/pin_packages/cyhal_cyw20829_56_qfn.c) +zephyr_library_sources_ifdef(CONFIG_SOC_PACKAGE_XMC7200_176_TEQFP + ${hal_cat1c_dir}/source/pin_packages/cyhal_xmc7200_176_teqfp.c) zephyr_library_sources_ifdef(CONFIG_SOC_PACKAGE_XMC7200_272_BGA ${hal_cat1c_dir}/source/pin_packages/cyhal_xmc7200_272_bga.c) +zephyr_library_sources_ifdef(CONFIG_SOC_PACKAGE_XMC7200_320_BGA + ${hal_cat1c_dir}/source/pin_packages/cyhal_xmc7200_320_bga.c.c) zephyr_library_sources_ifdef(CONFIG_SOC_DIE_CYW20829 ${hal_cat1b_dir}/source/triggers/cyhal_triggers_cyw20829.c) diff --git a/soc/infineon/cat1c/soc.yml b/soc/infineon/cat1c/soc.yml index 38f1fe272ed19..8fd0aebeb611c 100644 --- a/soc/infineon/cat1c/soc.yml +++ b/soc/infineon/cat1c/soc.yml @@ -14,14 +14,62 @@ family: - name: cyt4bf socs: - name: cyt4bf8ces + cpuclusters: + - name: m0p + - name: m7_0 + - name: m7_1 - name: cyt4bf8cee + cpuclusters: + - name: m0p + - name: m7_0 + - name: m7_1 - name: cyt4bf8cds + cpuclusters: + - name: m0p + - name: m7_0 + - name: m7_1 - name: cyt4bf8cde + cpuclusters: + - name: m0p + - name: m7_0 + - name: m7_1 - name: cyt4bfbcjs + cpuclusters: + - name: m0p + - name: m7_0 + - name: m7_1 - name: cyt4bfbcje + cpuclusters: + - name: m0p + - name: m7_0 + - name: m7_1 - name: cyt4bfbchs + cpuclusters: + - name: m0p + - name: m7_0 + - name: m7_1 - name: cyt4bfbche + cpuclusters: + - name: m0p + - name: m7_0 + - name: m7_1 - name: cyt4bfccjs + cpuclusters: + - name: m0p + - name: m7_0 + - name: m7_1 - name: cyt4bfccje + cpuclusters: + - name: m0p + - name: m7_0 + - name: m7_1 - name: cyt4bfcchs + cpuclusters: + - name: m0p + - name: m7_0 + - name: m7_1 - name: cyt4bfcche + cpuclusters: + - name: m0p + - name: m7_0 + - name: m7_1 diff --git a/soc/infineon/cat1c/xmc7200/CMakeLists.txt b/soc/infineon/cat1c/xmc7200/CMakeLists.txt index 431df0971babc..5dd825da64717 100644 --- a/soc/infineon/cat1c/xmc7200/CMakeLists.txt +++ b/soc/infineon/cat1c/xmc7200/CMakeLists.txt @@ -1,9 +1,6 @@ # Copyright (c) 2025 Cypress Semiconductor Corporation. # SPDX-License-Identifier: Apache-2.0 -zephyr_compile_definitions_ifdef(CONFIG_SOC_XMC7200D_E272K8384_M7_0 CORE_NAME_CM7_0) -zephyr_compile_definitions_ifdef(CONFIG_SOC_XMC7200D_E272K8384_M7_1 CORE_NAME_CM7_1) - zephyr_sources_ifdef(CONFIG_CPU_CORTEX_M0PLUS soc_m0p.c) zephyr_sources_ifdef(CONFIG_CPU_CORTEX_M7 soc_m7.c) zephyr_include_directories(.) diff --git a/soc/infineon/cat1c/xmc7200/Kconfig b/soc/infineon/cat1c/xmc7200/Kconfig index b04d8f88f82e3..fff3571d0be03 100644 --- a/soc/infineon/cat1c/xmc7200/Kconfig +++ b/soc/infineon/cat1c/xmc7200/Kconfig @@ -15,11 +15,165 @@ config SOC_SERIES_XMC7200 select CPU_HAS_FPU if CPU_CORTEX_M7 select SOC_PREP_HOOK +# SOC Cortex M7 Cores +config SOC_XMC7200_CORE_NAME_M7_0 + bool + +config SOC_XMC7200_CORE_NAME_M7_1 + bool + +# xmc7200d_e272k8384 config SOC_XMC7200D_E272K8384_M0PLUS select CPU_CORTEX_M0PLUS config SOC_XMC7200D_E272K8384_M7_0 select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_0 config SOC_XMC7200D_E272K8384_M7_1 select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_1 + +# cyt4bf8ces +config SOC_CYT4BF8CES_M0PLUS + select CPU_CORTEX_M0PLUS + +config SOC_CYT4BF8CES_M7_0 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_0 + +config SOC_CYT4BF8CES_M7_1 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_1 + +# cyt4bf8cee +config SOC_CYT4BF8CEE_M0PLUS + select CPU_CORTEX_M0PLUS + +config SOC_CYT4BF8CEE_M7_0 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_0 + +config SOC_CYT4BF8CEE_M7_1 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_1 + +# cyt4bf8cds +config SOC_CYT4BF8CDS_M0PLUS + select CPU_CORTEX_M0PLUS + +config SOC_CYT4BF8CDS_M7_0 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_0 + +config SOC_CYT4BF8CDS_M7_1 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_1 + +# cyt4bf8cde +config SOC_CYT4BF8CDE_M0PLUS + select CPU_CORTEX_M0PLUS + +config SOC_CYT4BF8CDE_M7_0 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_0 + +config SOC_CYT4BF8CDE_M7_1 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_1 + +# cyt4bfbcjs +config SOC_CYT4BFBCJS_M0PLUS + select CPU_CORTEX_M0PLUS + +config SOC_CYT4BFBCJS_M7_0 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_0 + +config SOC_CYT4BFBCJS_M7_1 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_1 + +# cyt4bfbcje +config SOC_CYT4BFBCJE_M0PLUS + select CPU_CORTEX_M0PLUS + +config SOC_CYT4BFBCJE_M7_0 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_0 + +config SOC_CYT4BFBCJE_M7_1 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_1 + +# cyt4bfbchs +config SOC_CYT4BFBCHS_M0PLUS + select CPU_CORTEX_M0PLUS + +config SOC_CYT4BFBCHS_M7_0 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_0 + +config SOC_CYT4BFBCHS_M7_1 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_1 + +# cyt4bfbche +config SOC_CYT4BFBCHE_M0PLUS + select CPU_CORTEX_M0PLUS + +config SOC_CYT4BFBCHE_M7_0 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_0 + +config SOC_CYT4BFBCHE_M7_1 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_1 + +# cyt4bfccjs +config SOC_CYT4BFCCJS_M0PLUS + select CPU_CORTEX_M0PLUS + +config SOC_CYT4BFCCJS_M7_0 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_0 + +config SOC_CYT4BFCCJS_M7_1 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_1 + +# cyt4bfccje +config SOC_CYT4BFCCJE_M0PLUS + select CPU_CORTEX_M0PLUS + +config SOC_CYT4BFCCJE_M7_0 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_0 + +config SOC_CYT4BFCCJE_M7_1 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_1 + +# cyt4bfcchs +config SOC_CYT4BFCCHS_M0PLUS + select CPU_CORTEX_M0PLUS + +config SOC_CYT4BFCCHS_M7_0 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_0 + +config SOC_CYT4BFCCHS_M7_1 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_1 + +# cyt4bfcche +config SOC_CYT4BFCCHE_M0PLUS + select CPU_CORTEX_M0PLUS + +config SOC_CYT4BFCCHE_M7_0 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_0 + +config SOC_CYT4BFCCHE_M7_1 + select CPU_CORTEX_M7 + select SOC_XMC7200_CORE_NAME_M7_1 diff --git a/soc/infineon/cat1c/xmc7200/Kconfig.soc b/soc/infineon/cat1c/xmc7200/Kconfig.soc index 0e9110aa72141..7847e8e30c464 100644 --- a/soc/infineon/cat1c/xmc7200/Kconfig.soc +++ b/soc/infineon/cat1c/xmc7200/Kconfig.soc @@ -60,64 +60,232 @@ config SOC_XMC7200D_E272K8384_M7_1 select SOC_PACKAGE_XMC7200_272_BGA select SOC_SERIES_XMC7200 +# Infineon T2G Body High series MCUs: CYT4BF8CES +config SOC_CYT4BF8CES_M0PLUS + bool + select SOC_CYT4BF8CES + +config SOC_CYT4BF8CES_M7_0 + bool + select SOC_CYT4BF8CES + +config SOC_CYT4BF8CES_M7_1 + bool + select SOC_CYT4BF8CES + config SOC_CYT4BF8CES bool select SOC_DIE_XMC7200 + select SOC_SERIES_XMC7200 select SOC_PACKAGE_XMC7200_176_TEQFP +# Infineon T2G Body High series MCUs: CYT4BF8CEE +config SOC_CYT4BF8CEE_M0PLUS + bool + select SOC_CYT4BF8CEE + +config SOC_CYT4BF8CEE_M7_0 + bool + select SOC_CYT4BF8CEE + +config SOC_CYT4BF8CEE_M7_1 + bool + select SOC_CYT4BF8CEE + config SOC_CYT4BF8CEE bool select SOC_DIE_XMC7200 + select SOC_SERIES_XMC7200 select SOC_PACKAGE_XMC7200_176_TEQFP +# Infineon T2G Body High series MCUs: CYT4BF8CDS +config SOC_CYT4BF8CDS_M0PLUS + bool + select SOC_CYT4BF8CDS + +config SOC_CYT4BF8CDS_M7_0 + bool + select SOC_CYT4BF8CDS + +config SOC_CYT4BF8CDS_M7_1 + bool + select SOC_CYT4BF8CDS + config SOC_CYT4BF8CDS bool select SOC_DIE_XMC7200 + select SOC_SERIES_XMC7200 select SOC_PACKAGE_XMC7200_176_TEQFP +# Infineon T2G Body High series MCUs: CYT4BF8CDE +config SOC_CYT4BF8CDE_M0PLUS + bool + select SOC_CYT4BF8CDE + +config SOC_CYT4BF8CDE_M7_0 + bool + select SOC_CYT4BF8CDE + +config SOC_CYT4BF8CDE_M7_1 + bool + select SOC_CYT4BF8CDE + config SOC_CYT4BF8CDE bool select SOC_DIE_XMC7200 + select SOC_SERIES_XMC7200 select SOC_PACKAGE_XMC7200_176_TEQFP +# Infineon T2G Body High series MCUs: CYT4BFBCJS +config SOC_CYT4BFBCJS_M0PLUS + bool + select SOC_CYT4BFBCJS + +config SOC_CYT4BFBCJS_M7_0 + bool + select SOC_CYT4BFBCJS + +config SOC_CYT4BFBCJS_M7_1 + bool + select SOC_CYT4BFBCJS + config SOC_CYT4BFBCJS bool select SOC_DIE_XMC7200 + select SOC_SERIES_XMC7200 select SOC_PACKAGE_XMC7200_272_BGA +# Infineon T2G Body High series MCUs: CYT4BFBCJE +config SOC_CYT4BFBCJE_M0PLUS + bool + select SOC_CYT4BFBCJE + +config SOC_CYT4BFBCJE_M7_0 + bool + select SOC_CYT4BFBCJE + +config SOC_CYT4BFBCJE_M7_1 + bool + select SOC_CYT4BFBCJE + config SOC_CYT4BFBCJE bool select SOC_DIE_XMC7200 + select SOC_SERIES_XMC7200 select SOC_PACKAGE_XMC7200_272_BGA +# Infineon T2G Body High series MCUs: CYT4BFBCHS +config SOC_CYT4BFBCHS_M0PLUS + bool + select SOC_CYT4BFBCHS + +config SOC_CYT4BFBCHS_M7_0 + bool + select SOC_CYT4BFBCHS + +config SOC_CYT4BFBCHS_M7_1 + bool + select SOC_CYT4BFBCHS + config SOC_CYT4BFBCHS bool select SOC_DIE_XMC7200 + select SOC_SERIES_XMC7200 select SOC_PACKAGE_XMC7200_272_BGA +# Infineon T2G Body High series MCUs: CYT4BFBCHE +config SOC_CYT4BFBCHE_M0PLUS + bool + select SOC_CYT4BFBCHE + +config SOC_CYT4BFBCHE_M7_0 + bool + select SOC_CYT4BFBCHE + +config SOC_CYT4BFBCHE_M7_1 + bool + select SOC_CYT4BFBCHE + config SOC_CYT4BFBCHE bool select SOC_DIE_XMC7200 + select SOC_SERIES_XMC7200 select SOC_PACKAGE_XMC7200_272_BGA +# Infineon T2G Body High series MCUs: CYT4BFCCJS +config SOC_CYT4BFCCJS_M0PLUS + bool + select SOC_CYT4BFCCJS + +config SOC_CYT4BFCCJS_M7_0 + bool + select SOC_CYT4BFCCJS + +config SOC_CYT4BFCCJS_M7_1 + bool + select SOC_CYT4BFCCJS + config SOC_CYT4BFCCJS bool select SOC_DIE_XMC7200 + select SOC_SERIES_XMC7200 select SOC_PACKAGE_XMC7200_320_BGA +# Infineon T2G Body High series MCUs: CYT4BFCCJE +config SOC_CYT4BFCCJE_M0PLUS + bool + select SOC_CYT4BFCCJE + +config SOC_CYT4BFCCJE_M7_0 + bool + select SOC_CYT4BFCCJE + +config SOC_CYT4BFCCJE_M7_1 + bool + select SOC_CYT4BFCCJE + config SOC_CYT4BFCCJE bool select SOC_DIE_XMC7200 + select SOC_SERIES_XMC7200 select SOC_PACKAGE_XMC7200_320_BGA +# Infineon T2G Body High series MCUs: CYT4BFCCHS +config SOC_CYT4BFCCHS_M0PLUS + bool + select SOC_CYT4BFCCHS + +config SOC_CYT4BFCCHS_M7_0 + bool + select SOC_CYT4BFCCHS + +config SOC_CYT4BFCCHS_M7_1 + bool + select SOC_CYT4BFCCHS + config SOC_CYT4BFCCHS bool select SOC_DIE_XMC7200 + select SOC_SERIES_XMC7200 select SOC_PACKAGE_XMC7200_320_BGA +# Infineon T2G Body High series MCUs: CYT4BFCCHE +config SOC_CYT4BFCCHE_M0PLUS + bool + select SOC_CYT4BFCCHE + +config SOC_CYT4BFCCHE_M7_0 + bool + select SOC_CYT4BFCCHE + +config SOC_CYT4BFCCHE_M7_1 + bool + select SOC_CYT4BFCCHE + config SOC_CYT4BFCCHE bool select SOC_DIE_XMC7200 + select SOC_SERIES_XMC7200 select SOC_PACKAGE_XMC7200_320_BGA config SOC diff --git a/soc/infineon/cat1c/xmc7200/soc_m7.c b/soc/infineon/cat1c/xmc7200/soc_m7.c index 1fdaedfb63971..774ab35011434 100644 --- a/soc/infineon/cat1c/xmc7200/soc_m7.c +++ b/soc/infineon/cat1c/xmc7200/soc_m7.c @@ -38,7 +38,7 @@ __attribute__((section(".itcm"))) void sys_int_handler(uint32_t intrNum) { uint32_t system_int_idx; -#ifdef CORE_NAME_CM7_0 +#ifdef CONFIG_SOC_XMC7200_CORE_NAME_M7_0 if ((_FLD2VAL(CPUSS_CM7_0_INT_STATUS_SYSTEM_INT_VALID, CPUSS_CM7_0_INT_STATUS[intrNum]))) { system_int_idx = _FLD2VAL(CPUSS_CM7_0_INT_STATUS_SYSTEM_INT_IDX, CPUSS_CM7_0_INT_STATUS[intrNum]); @@ -46,7 +46,7 @@ __attribute__((section(".itcm"))) void sys_int_handler(uint32_t intrNum) (entry->isr)(entry->arg); } #endif -#ifdef CORE_NAME_CM7_1 +#ifdef CONFIG_SOC_XMC7200_CORE_NAME_M7_1 if ((_FLD2VAL(CPUSS_CM7_1_INT_STATUS_SYSTEM_INT_VALID, CPUSS_CM7_1_INT_STATUS[intrNum]))) { system_int_idx = _FLD2VAL(CPUSS_CM7_1_INT_STATUS_SYSTEM_INT_IDX, CPUSS_CM7_1_INT_STATUS[intrNum]); @@ -103,9 +103,9 @@ void soc_prep_hook(void) /* Allow write access to Vector Table Offset Register and ITCM/DTCM configuration register * (CPUSS_CM7_X_CTL.PPB_LOCK[3] and CPUSS_CM7_X_CTL.PPB_LOCK[1:0]) */ -#ifdef CORE_NAME_CM7_1 +#ifdef CONFIG_SOC_XMC7200_CORE_NAME_M7_1 CPUSS->CM7_1_CTL &= ~(0xB); -#elif CORE_NAME_CM7_0 +#elif CONFIG_SOC_XMC7200_CORE_NAME_M7_0 CPUSS->CM7_0_CTL &= ~(0xB); #else #error "Not valid" @@ -118,12 +118,12 @@ void soc_prep_hook(void) SCB->ITCMCR = SCB->ITCMCR | 0x7; /* Set ITCMCR.EN, .RMW and .RETEN fields */ SCB->DTCMCR = SCB->DTCMCR | 0x7; /* Set DTCMCR.EN, .RMW and .RETEN fields */ -#ifdef CORE_NAME_CM7_0 +#ifdef CONFIG_SOC_XMC7200_CORE_NAME_M7_0 CPUSS_CM7_0_CTL |= (0x1 << CPUSS_CM7_0_CTL_INIT_TCM_EN_Pos); CPUSS_CM7_0_CTL |= (0x2 << CPUSS_CM7_0_CTL_INIT_TCM_EN_Pos); CPUSS_CM7_0_CTL |= (0x1 << CPUSS_CM7_0_CTL_INIT_RMW_EN_Pos); CPUSS_CM7_0_CTL |= (0x2 << CPUSS_CM7_0_CTL_INIT_RMW_EN_Pos); -#elif CORE_NAME_CM7_1 +#elif CONFIG_SOC_XMC7200_CORE_NAME_M7_1 CPUSS_CM7_1_CTL |= (0x1 << CPUSS_CM7_1_CTL_INIT_TCM_EN_Pos); CPUSS_CM7_1_CTL |= (0x2 << CPUSS_CM7_1_CTL_INIT_TCM_EN_Pos); CPUSS_CM7_1_CTL |= (0x1 << CPUSS_CM7_1_CTL_INIT_RMW_EN_Pos); From 9afe1c4d68216a13ce00f6435de717ef716523bf Mon Sep 17 00:00:00 2001 From: Yuriy Vynnychek Date: Wed, 8 Oct 2025 13:27:01 +0300 Subject: [PATCH 3/4] board: infineon: kit_t2g_b_h_lite: new board basic support Add new board basic support: dts, kconfig, defconfig, openocd and doc. Signed-off-by: Yuriy Vynnychek --- .../kit_t2g_b_h_lite/Kconfig.kit_t2g_b_h_lite | 9 ++ boards/infineon/kit_t2g_b_h_lite/board.cmake | 9 ++ boards/infineon/kit_t2g_b_h_lite/board.yml | 11 ++ .../doc/img/kit_t2g_b_h_lite.webp | Bin 0 -> 91094 bytes .../infineon/kit_t2g_b_h_lite/doc/index.rst | 148 ++++++++++++++++++ .../kit_t2g_b_h_lite_common.dtsi | 102 ++++++++++++ ...t_t2g_b_h_lite_cyt4bf8cds_m0p-pinctrl.dtsi | 23 +++ .../kit_t2g_b_h_lite_cyt4bf8cds_m0p.dts | 26 +++ .../kit_t2g_b_h_lite_cyt4bf8cds_m0p.yaml | 15 ++ .../kit_t2g_b_h_lite_cyt4bf8cds_m0p_defconfig | 21 +++ .../kit_t2g_b_h_lite_cyt4bf8cds_m7_0.dts | 28 ++++ .../kit_t2g_b_h_lite_cyt4bf8cds_m7_0.yaml | 18 +++ ...kit_t2g_b_h_lite_cyt4bf8cds_m7_0_defconfig | 22 +++ .../kit_t2g_b_h_lite_cyt4bf8cds_m7_1.dts | 28 ++++ .../kit_t2g_b_h_lite_cyt4bf8cds_m7_1.yaml | 18 +++ ...kit_t2g_b_h_lite_cyt4bf8cds_m7_1_defconfig | 22 +++ .../kit_t2g_b_h_lite/support/openocd.cfg | 17 ++ .../arm_irq_advanced_features/testcase.yaml | 2 + .../arm_irq_zero_latency_levels/testcase.yaml | 2 + 19 files changed, 521 insertions(+) create mode 100644 boards/infineon/kit_t2g_b_h_lite/Kconfig.kit_t2g_b_h_lite create mode 100644 boards/infineon/kit_t2g_b_h_lite/board.cmake create mode 100644 boards/infineon/kit_t2g_b_h_lite/board.yml create mode 100644 boards/infineon/kit_t2g_b_h_lite/doc/img/kit_t2g_b_h_lite.webp create mode 100644 boards/infineon/kit_t2g_b_h_lite/doc/index.rst create mode 100644 boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_common.dtsi create mode 100644 boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p-pinctrl.dtsi create mode 100644 boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p.dts create mode 100644 boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p.yaml create mode 100644 boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p_defconfig create mode 100644 boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_0.dts create mode 100644 boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_0.yaml create mode 100644 boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_0_defconfig create mode 100644 boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_1.dts create mode 100644 boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_1.yaml create mode 100644 boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_1_defconfig create mode 100644 boards/infineon/kit_t2g_b_h_lite/support/openocd.cfg diff --git a/boards/infineon/kit_t2g_b_h_lite/Kconfig.kit_t2g_b_h_lite b/boards/infineon/kit_t2g_b_h_lite/Kconfig.kit_t2g_b_h_lite new file mode 100644 index 0000000000000..33e0f2ab9d533 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_lite/Kconfig.kit_t2g_b_h_lite @@ -0,0 +1,9 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_KIT_T2G_B_H_LITE + select SOC_CYT4BF8CDS_M0PLUS if BOARD_KIT_T2G_B_H_LITE_CYT4BF8CDS_M0P + select SOC_CYT4BF8CDS_M7_0 if BOARD_KIT_T2G_B_H_LITE_CYT4BF8CDS_M7_0 + select SOC_CYT4BF8CDS_M7_1 if BOARD_KIT_T2G_B_H_LITE_CYT4BF8CDS_M7_1 diff --git a/boards/infineon/kit_t2g_b_h_lite/board.cmake b/boards/infineon/kit_t2g_b_h_lite/board.cmake new file mode 100644 index 0000000000000..e67b978332bcd --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_lite/board.cmake @@ -0,0 +1,9 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +# Connect to CM0P core. +board_runner_args(openocd "--target-handle=cat1c.cpu.cm0") + +include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) diff --git a/boards/infineon/kit_t2g_b_h_lite/board.yml b/boards/infineon/kit_t2g_b_h_lite/board.yml new file mode 100644 index 0000000000000..030c178d877b1 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_lite/board.yml @@ -0,0 +1,11 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +board: + name: kit_t2g_b_h_lite + full_name: T2G Body High Lite Evaluation Kit + vendor: infineon + socs: + - name: cyt4bf8cds diff --git a/boards/infineon/kit_t2g_b_h_lite/doc/img/kit_t2g_b_h_lite.webp b/boards/infineon/kit_t2g_b_h_lite/doc/img/kit_t2g_b_h_lite.webp new file mode 100644 index 0000000000000000000000000000000000000000..0bb2d008ae810fb42922924df3435b17f952cb17 GIT binary patch literal 91094 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 z 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

HmTjMbxd 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 +#include +#include + +/ { + aliases { + led0 = &user_led0; + led1 = &user_led1; + led2 = &user_led2; + sw0 = &user_bt0; + sw1 = &user_bt1; + }; + + leds { + compatible = "gpio-leds"; + + user_led0: led_0 { + label = "LED_0"; + gpios = <&gpio_prt5 0 GPIO_ACTIVE_LOW>; + }; + + user_led1: led_1 { + label = "LED_1"; + gpios = <&gpio_prt5 1 GPIO_ACTIVE_LOW>; + }; + + user_led2: led_2 { + label = "LED_2"; + gpios = <&gpio_prt5 2 GPIO_ACTIVE_LOW>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + + user_bt0: user_btn0 { + label = "SW_1"; + gpios = <&gpio_prt5 3 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + zephyr,code = ; + }; + + user_bt1: user_btn1 { + label = "SW_2"; + gpios = <&gpio_prt17 0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + zephyr,code = ; + }; + }; +}; + +uart0: &scb0 { + compatible = "infineon,cat1-uart"; + status = "okay"; + current-speed = <115200>; + + /* UART pins */ + pinctrl-0 = <&p0_1_scb0_uart_tx &p0_0_scb0_uart_rx + &p0_2_scb0_uart_rts &p0_3_scb0_uart_cts>; + pinctrl-names = "default"; +}; + +&gpio_prt5 { + status = "okay"; +}; + +&gpio_prt17 { + status = "okay"; +}; + +&path_mux0 { + status = "okay"; +}; + +&path_mux1 { + status = "okay"; +}; + +&path_mux2 { + status = "okay"; +}; + +&path_mux3 { + status = "okay"; +}; + +&clk_mem { + status = "okay"; +}; + +&clk_peri { + status = "okay"; +}; + +&clk_slow { + status = "okay"; +}; diff --git a/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p-pinctrl.dtsi b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p-pinctrl.dtsi new file mode 100644 index 0000000000000..a23a877fdd3ed --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p-pinctrl.dtsi @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2025 Infineon Technologies AG, + * or an affiliate of Infineon Technologies AG. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/* Configure pin control bias mode for uart pins */ +&p0_1_scb0_uart_tx { + drive-push-pull; +}; + +&p0_0_scb0_uart_rx { + input-enable; +}; + +&p0_2_scb0_uart_rts { + drive-push-pull; +}; + +&p0_3_scb0_uart_cts { + input-enable; +}; diff --git a/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p.dts b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p.dts new file mode 100644 index 0000000000000..0610d269bc488 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p.dts @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2025 Infineon Technologies AG, + * or an affiliate of Infineon Technologies AG. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include +#include +#include +#include +#include "kit_t2g_b_h_lite_cyt4bf8cds_m0p-pinctrl.dtsi" +#include "kit_t2g_b_h_lite_common.dtsi" + +/ { + model = "Infineon Evaluation Lite board for CYT4BF8CDS M0"; + compatible = "infineon,kit_t2g_b_h_lite", "infineon,TVIIBH8M"; + + chosen { + zephyr,sram = &sram_m0p; + zephyr,flash = &flash_m0p; + zephyr,console = &uart0; + zephyr,shell-uart = &uart0; + }; +}; diff --git a/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p.yaml b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p.yaml new file mode 100644 index 0000000000000..0a4b6054aa7c4 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p.yaml @@ -0,0 +1,15 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +identifier: kit_t2g_b_h_lite/cyt4bf8cds/m0p +name: T2G Body High Lite Evaluation Kit (M0P) +type: mcu +arch: arm +ram: 1024 +flash: 8192 +toolchain: + - zephyr + - gnuarmemb +vendor: infineon diff --git a/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p_defconfig b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p_defconfig new file mode 100644 index 0000000000000..8bb4abc1696a6 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m0p_defconfig @@ -0,0 +1,21 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +# General configuration +CONFIG_ARM_MPU=y +CONFIG_HW_STACK_PROTECTION=y + +# Enable console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# Enable UART driver +CONFIG_SERIAL=y + +# Enable GPIO driver +CONFIG_GPIO=y + +# Enable clock controller +CONFIG_CLOCK_CONTROL=y diff --git a/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_0.dts b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_0.dts new file mode 100644 index 0000000000000..8f5c58880c44a --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_0.dts @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2025 Infineon Technologies AG, + * or an affiliate of Infineon Technologies AG. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include +#include +#include +#include +#include "kit_t2g_b_h_lite_cyt4bf8cds_m0p-pinctrl.dtsi" +#include "kit_t2g_b_h_lite_common.dtsi" + +/ { + model = "Infineon Evaluation Lite board for CYT4BF8CDS M7_0"; + compatible = "infineon,kit_t2g_b_h_lite", "infineon,TVIIBH8M"; + + chosen { + zephyr,sram = &sram_m7_0; + zephyr,flash = &flash_m7_0; + zephyr,dtcm = &dtcm; + zephyr,itcm = &itcm; + zephyr,console = &uart0; + zephyr,shell-uart = &uart0; + }; +}; diff --git a/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_0.yaml b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_0.yaml new file mode 100644 index 0000000000000..add01e19d49ba --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_0.yaml @@ -0,0 +1,18 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +identifier: kit_t2g_b_h_lite/cyt4bf8cds/m7_0 +name: T2G Body High Lite Evaluation Kit (M7_0) +type: mcu +arch: arm +ram: 1024 +flash: 8192 +toolchain: + - zephyr + - gnuarmemb +supported: + - gpio + - uart +vendor: infineon diff --git a/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_0_defconfig b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_0_defconfig new file mode 100644 index 0000000000000..d9577b283e1fc --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_0_defconfig @@ -0,0 +1,22 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +# General configuration +CONFIG_ARM_MPU=y +CONFIG_HW_STACK_PROTECTION=y +CONFIG_CACHE_MANAGEMENT=y + +# Enable console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# Enable UART driver +CONFIG_SERIAL=y + +# Enable GPIO driver +CONFIG_GPIO=y + +# Enable clock controller +CONFIG_CLOCK_CONTROL=y diff --git a/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_1.dts b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_1.dts new file mode 100644 index 0000000000000..a6513801898f1 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_1.dts @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2025 Infineon Technologies AG, + * or an affiliate of Infineon Technologies AG. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include +#include +#include +#include +#include "kit_t2g_b_h_lite_cyt4bf8cds_m0p-pinctrl.dtsi" +#include "kit_t2g_b_h_lite_common.dtsi" + +/ { + model = "Infineon Evaluation Lite board for CYT4BF8CDS M7_1"; + compatible = "infineon,kit_t2g_b_h_lite", "infineon,TVIIBH8M"; + + chosen { + zephyr,sram = &sram_m7_1; + zephyr,flash = &flash_m7_1; + zephyr,dtcm = &dtcm; + zephyr,itcm = &itcm; + zephyr,console = &uart0; + zephyr,shell-uart = &uart0; + }; +}; diff --git a/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_1.yaml b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_1.yaml new file mode 100644 index 0000000000000..3f944d2edd046 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_1.yaml @@ -0,0 +1,18 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +identifier: kit_t2g_b_h_lite/cyt4bf8cds/m7_1 +name: T2G Body High Lite Evaluation Kit (M7_1) +type: mcu +arch: arm +ram: 1024 +flash: 8192 +toolchain: + - zephyr + - gnuarmemb +supported: + - gpio + - uart +vendor: infineon diff --git a/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_1_defconfig b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_1_defconfig new file mode 100644 index 0000000000000..d9577b283e1fc --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_lite/kit_t2g_b_h_lite_cyt4bf8cds_m7_1_defconfig @@ -0,0 +1,22 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +# General configuration +CONFIG_ARM_MPU=y +CONFIG_HW_STACK_PROTECTION=y +CONFIG_CACHE_MANAGEMENT=y + +# Enable console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# Enable UART driver +CONFIG_SERIAL=y + +# Enable GPIO driver +CONFIG_GPIO=y + +# Enable clock controller +CONFIG_CLOCK_CONTROL=y diff --git a/boards/infineon/kit_t2g_b_h_lite/support/openocd.cfg b/boards/infineon/kit_t2g_b_h_lite/support/openocd.cfg new file mode 100644 index 0000000000000..330e17aadc656 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_lite/support/openocd.cfg @@ -0,0 +1,17 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +if {[info exists env(OPENOCD_INTERFACE)]} { + set INTERFACE $env(OPENOCD_INTERFACE) +} else { + #default connect over Debug USB port + set INTERFACE "cmsis-dap" +} + +source [find interface/$INTERFACE.cfg] + +transport select swd + +source [find target/cat1c.cfg] \ No newline at end of file diff --git a/tests/arch/arm/arm_irq_advanced_features/testcase.yaml b/tests/arch/arm/arm_irq_advanced_features/testcase.yaml index bfe23667e0dca..bb23dfe64a34e 100644 --- a/tests/arch/arm/arm_irq_advanced_features/testcase.yaml +++ b/tests/arch/arm/arm_irq_advanced_features/testcase.yaml @@ -10,5 +10,7 @@ tests: platform_exclude: - kit_xmc72_evk/xmc7200d_e272k8384/m7_0 - kit_xmc72_evk/xmc7200d_e272k8384/m7_1 + - kit_t2g_b_h_lite/cyt4bf8cds/m7_0 + - kit_t2g_b_h_lite/cyt4bf8cds/m7_1 arch.arm.irq_advanced_features.secure_fw: filter: CONFIG_TRUSTED_EXECUTION_SECURE diff --git a/tests/arch/arm/arm_irq_zero_latency_levels/testcase.yaml b/tests/arch/arm/arm_irq_zero_latency_levels/testcase.yaml index 6a012fbb09277..5e037d6cb11aa 100644 --- a/tests/arch/arm/arm_irq_zero_latency_levels/testcase.yaml +++ b/tests/arch/arm/arm_irq_zero_latency_levels/testcase.yaml @@ -13,6 +13,8 @@ tests: platform_exclude: - kit_xmc72_evk/xmc7200d_e272k8384/m7_0 - kit_xmc72_evk/xmc7200d_e272k8384/m7_1 + - kit_t2g_b_h_lite/cyt4bf8cds/m7_0 + - kit_t2g_b_h_lite/cyt4bf8cds/m7_1 arch.arm.irq_zero_latency_levels.secure_fw: filter: CONFIG_TRUSTED_EXECUTION_SECURE integration_platforms: From a646b19f1f1b5e6eae4056266e1f293e9c38a535 Mon Sep 17 00:00:00 2001 From: Yuriy Vynnychek Date: Fri, 10 Oct 2025 15:58:16 +0300 Subject: [PATCH 4/4] board: infineon: kit_t2g_b_h_evk: new board basic support Add new board basic support: dts, kconfig, defconfig, openocd and doc. Signed-off-by: Yuriy Vynnychek --- .../kit_t2g_b_h_evk/Kconfig.kit_t2g_b_h_evk | 9 + boards/infineon/kit_t2g_b_h_evk/board.cmake | 9 + boards/infineon/kit_t2g_b_h_evk/board.yml | 11 ++ .../doc/img/kit_t2g_b_h_evk.webp | Bin 0 -> 74914 bytes boards/infineon/kit_t2g_b_h_evk/doc/index.rst | 160 ++++++++++++++++++ .../kit_t2g_b_h_evk_common.dtsi | 106 ++++++++++++ ...it_t2g_b_h_evk_cyt4bfbche_m0p-pinctrl.dtsi | 23 +++ .../kit_t2g_b_h_evk_cyt4bfbche_m0p.dts | 26 +++ .../kit_t2g_b_h_evk_cyt4bfbche_m0p.yaml | 15 ++ .../kit_t2g_b_h_evk_cyt4bfbche_m0p_defconfig | 21 +++ .../kit_t2g_b_h_evk_cyt4bfbche_m7_0.dts | 28 +++ .../kit_t2g_b_h_evk_cyt4bfbche_m7_0.yaml | 18 ++ .../kit_t2g_b_h_evk_cyt4bfbche_m7_0_defconfig | 22 +++ .../kit_t2g_b_h_evk_cyt4bfbche_m7_1.dts | 28 +++ .../kit_t2g_b_h_evk_cyt4bfbche_m7_1.yaml | 18 ++ .../kit_t2g_b_h_evk_cyt4bfbche_m7_1_defconfig | 22 +++ .../kit_t2g_b_h_evk/support/openocd.cfg | 17 ++ .../arm_irq_advanced_features/testcase.yaml | 2 + .../arm_irq_zero_latency_levels/testcase.yaml | 2 + 19 files changed, 537 insertions(+) create mode 100644 boards/infineon/kit_t2g_b_h_evk/Kconfig.kit_t2g_b_h_evk create mode 100644 boards/infineon/kit_t2g_b_h_evk/board.cmake create mode 100644 boards/infineon/kit_t2g_b_h_evk/board.yml create mode 100644 boards/infineon/kit_t2g_b_h_evk/doc/img/kit_t2g_b_h_evk.webp create mode 100644 boards/infineon/kit_t2g_b_h_evk/doc/index.rst create mode 100644 boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_common.dtsi create mode 100644 boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p-pinctrl.dtsi create mode 100644 boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p.dts create mode 100644 boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p.yaml create mode 100644 boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p_defconfig create mode 100644 boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_0.dts create mode 100644 boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_0.yaml create mode 100644 boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_0_defconfig create mode 100644 boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_1.dts create mode 100644 boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_1.yaml create mode 100644 boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_1_defconfig create mode 100644 boards/infineon/kit_t2g_b_h_evk/support/openocd.cfg diff --git a/boards/infineon/kit_t2g_b_h_evk/Kconfig.kit_t2g_b_h_evk b/boards/infineon/kit_t2g_b_h_evk/Kconfig.kit_t2g_b_h_evk new file mode 100644 index 0000000000000..08c8a121f7f8a --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/Kconfig.kit_t2g_b_h_evk @@ -0,0 +1,9 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_KIT_T2G_B_H_EVK + select SOC_CYT4BFBCHE_M0PLUS if BOARD_KIT_T2G_B_H_EVK_CYT4BFBCHE_M0P + select SOC_CYT4BFBCHE_M7_0 if BOARD_KIT_T2G_B_H_EVK_CYT4BFBCHE_M7_0 + select SOC_CYT4BFBCHE_M7_1 if BOARD_KIT_T2G_B_H_EVK_CYT4BFBCHE_M7_1 diff --git a/boards/infineon/kit_t2g_b_h_evk/board.cmake b/boards/infineon/kit_t2g_b_h_evk/board.cmake new file mode 100644 index 0000000000000..e67b978332bcd --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/board.cmake @@ -0,0 +1,9 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +# Connect to CM0P core. +board_runner_args(openocd "--target-handle=cat1c.cpu.cm0") + +include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) diff --git a/boards/infineon/kit_t2g_b_h_evk/board.yml b/boards/infineon/kit_t2g_b_h_evk/board.yml new file mode 100644 index 0000000000000..4efea315225ea --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/board.yml @@ -0,0 +1,11 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +board: + name: kit_t2g_b_h_evk + full_name: T2G Body High Evaluation Kit + vendor: infineon + socs: + - name: cyt4bfbche diff --git a/boards/infineon/kit_t2g_b_h_evk/doc/img/kit_t2g_b_h_evk.webp b/boards/infineon/kit_t2g_b_h_evk/doc/img/kit_t2g_b_h_evk.webp new file mode 100644 index 0000000000000000000000000000000000000000..06a582b587ee49f7f38508e6a7799b9654f56cdc GIT binary patch literal 74914 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 literal 0 HcmV?d00001 diff --git a/boards/infineon/kit_t2g_b_h_evk/doc/index.rst b/boards/infineon/kit_t2g_b_h_evk/doc/index.rst new file mode 100644 index 0000000000000..b46747a7da33d --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/doc/index.rst @@ -0,0 +1,160 @@ +.. zephyr:board:: kit_t2g_b_h_evk + +Overview +******** + +The KIT_T2G-B-H_EVK kit enables you to evaluate and develop applications using the TRAVEO™ T2G Body +High family CYT4BF device. The TRAVEO™ T2G B-H MCU is specifically designed for automotive +applications and it is a true programmable embedded system-on-chip, integrating two 350-MHz Arm® +Cortex®-M7 as the primary application processor, a 100-MHz Arm® Cortex®-M0+ that supports the +following: + +- Low-power operations +- Up to 8 MB flash and 1 MB SRAM +- Secure Digital Host Controller (SDHC) supporting SD/SDIO/eMMC interfaces +- Programmable analog and digital peripherals that allow faster time-to-market + +The evaluation board carries a TRAVEO™ T2G-B-H MCU, an M.2 interface connector for interfacing radio +modules based on AIROC™ Wi-Fi & Bluetooth® combos (currently not supported), a Dual-PMOD SMIF +connector for interfacing HYPERBUS™ memories, and Arduino headers for interfacing Arduino Shields. +In addition, the board features an on-board programmer/debugger (KitProg3), a 512-Mb QSPI NOR flash, +a micro-B connector for the USB device interface, three user LEDs, one potentiometer, a Gigabit +ethernet port for ethernet applications and two push buttons. The board supports operating voltages +from 1.8 V to 5.0 V for TRAVEO™ T2G-B-H MCU. + +Hardware +******** + +For more information about KIT_T2G-B-H_EVK: + +- `kit_t2g_b_h_evk Board Website`_ +- `T2G_B_H SoC Website`_ + +Kit Features +============= + +- Evaluation board for CYT4BF MCU4 in BGA package with 272 pins, dual-core Arm®Cortex® M7 CPUs running at 350-MHz and an Arm® Cortex® M0+ CPU running at 100-MHz +- Full-system approach on the board, featuring Gigabit Ethernet PHY and connector, CAN FD transceiver, user LEDs, buttons, and potentiometer +- M.2 interface connector for interfacing radio modules based on AIROC™ Wi-Fi & Bluetooth®combos (currently not - supported) +- Headers compatible with Arduino for interfacing Arduino shields +- Fully compatible with ModusToolbox™ v3.0 +- KitProg3 on-board SWD programmer/debugger, USB-UART, and USB-I2C bridge functionality through USB connector +- Digilent dual PMOD SMIF header for interfacing HYPERBUS™ memories (currently not supported) +- A 512-Mbit external QSPI NOR flash +- Evaluation board supports operating voltages from 3.3 V to 5.0 V for CYT4BF + +Kit Contents +============= + +- TRAVEO™ T2G-B-H evaluation board +- USB Type-A to Micro-B cable +- 12V/3A DC power adapter with additional blades +- Quick start guide + +Supported Features +================== + +.. zephyr:board-supported-hw:: + +Programming and Debugging +************************* + +.. zephyr:board-supported-runners:: + +Building +======== + +Here is an example for building the :zephyr:code-sample:`blinky` sample application for Cortex®-M0+. + +.. zephyr-app-commands:: + :zephyr-app: samples/basic/blinky + :board: kit_t2g_b_h_evk/cyt4bfbche/m0p + :goals: build + +The same for the first Cortex®-M7 core: + +.. zephyr-app-commands:: + :zephyr-app: samples/basic/blinky + :board: kit_t2g_b_h_evk/cyt4bfbche/m7_0 + :goals: build + +And the second Cortex®-M7 core: + +.. zephyr-app-commands:: + :zephyr-app: samples/basic/blinky + :board: kit_t2g_b_h_evk/cyt4bfbche/m7_1 + :goals: build + +.. note:: Only Cortex®-M0+ core is enabled at startup. To enable the first Cortex®-M7 core, add the next code to Cortex®-M0+ application: ``Cy_SysEnableCM7(CORE_CM7_0, CY_CORTEX_M7_0_APPL_ADDR);``, and the next code to enable the second Cortex®-M7 core: ``Cy_SysEnableCM7(CORE_CM7_1, CY_CORTEX_M7_1_APPL_ADDR);``. + +Flashing +======== + +The KIT_T2G_B_H_EVK includes an onboard programmer/debugger (`KitProg3`_) to provide debugging, flash programming, and serial communication over USB. Flash and debug commands use OpenOCD and require a custom Infineon OpenOCD version, that supports KitProg3, to be installed. + +Infineon OpenOCD Installation +============================= + +Both the full `ModusToolbox`_ and the `ModusToolbox Programming Tools`_ packages include Infineon OpenOCD. +Installing either of these packages will also install Infineon OpenOCD. + +If neither package is installed, a minimal installation can be done by downloading the `Infineon OpenOCD`_ release for your system and manually extract the files to a location of your choice. + +.. note:: Linux requires device access rights to be set up for KitProg3. This is handled automatically by the ModusToolbox and ModusToolbox Programming Tools installations. When doing a minimal installation, this can be done manually by executing the script ``openocd/udev_rules/install_rules.sh``. + +West Commands +============= + +The path to the installed Infineon OpenOCD executable must be available to the ``west`` tool commands. There are multiple ways of doing this. The example below uses a permanent CMake argument to set the CMake variable ``OPENOCD``. + + .. tabs:: + .. group-tab:: Windows + + .. code-block:: shell + + # Run west config once to set permanent CMake argument + west config build.cmake-args -- -DOPENOCD=path/to/infineon/openocd/bin/openocd.exe + + # Do a pristine build once after setting CMake argument + west build -b kit_t2g_b_h_evk/cyt4bfbche/m0p -p always samples/basic/blinky + + west flash + west debug + + .. group-tab:: Linux + + .. code-block:: shell + + # Run west config once to set permanent CMake argument + west config build.cmake-args -- -DOPENOCD=path/to/infineon/openocd/bin/openocd + + # Do a pristine build once after setting CMake argument + west build -b kit_t2g_b_h_evk/cyt4bfbche/m0p -p always samples/basic/blinky + + west flash + west debug + +Once the gdb console starts after executing the west debug command, you may now set breakpoints and perform other standard GDB debugging. + +References +********** + +.. target-notes:: + +.. _T2G_B_H SoC Website: + https://www.infineon.com/products/microcontroller/32-bit-traveo-t2g-arm-cortex/for-body/t2g-cyt4bf + +.. _kit_t2g_b_h_evk Board Website: + https://www.infineon.com/evaluation-board/KIT-T2G-B-H-EVK + +.. _ModusToolbox: + https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolbox + +.. _ModusToolbox Programming Tools: + https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolboxprogtools + +.. _Infineon OpenOCD: + https://github.com/Infineon/openocd/releases/latest + +.. _KitProg3: + https://github.com/Infineon/KitProg3 diff --git a/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_common.dtsi b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_common.dtsi new file mode 100644 index 0000000000000..45b5df0cfd0b9 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_common.dtsi @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2025 Infineon Technologies AG, + * or an affiliate of Infineon Technologies AG. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include + +/ { + aliases { + led0 = &user_led0; + led1 = &user_led1; + led2 = &user_led2; + sw0 = &user_bt0; + sw1 = &user_bt1; + }; + + leds { + compatible = "gpio-leds"; + + user_led0: led_0 { + label = "LED_0"; + gpios = <&gpio_prt16 1 GPIO_ACTIVE_LOW>; + }; + + user_led1: led_1 { + label = "LED_1"; + gpios = <&gpio_prt16 2 GPIO_ACTIVE_LOW>; + }; + + user_led2: led_2 { + label = "LED_2"; + gpios = <&gpio_prt16 3 GPIO_ACTIVE_LOW>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + + user_bt0: user_btn0 { + label = "SW_1"; + gpios = <&gpio_prt21 4 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + zephyr,code = ; + }; + + user_bt1: user_btn1 { + label = "SW_2"; + gpios = <&gpio_prt17 3 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + zephyr,code = ; + }; + }; +}; + +uart3: &scb3 { + compatible = "infineon,cat1-uart"; + status = "okay"; + current-speed = <115200>; + + /* UART pins */ + pinctrl-0 = <&p13_1_scb3_uart_tx &p13_0_scb3_uart_rx + &p13_2_scb3_uart_rts &p13_3_scb3_uart_cts>; + pinctrl-names = "default"; +}; + +&gpio_prt16 { + status = "okay"; +}; + +&gpio_prt17 { + status = "okay"; +}; + +&gpio_prt21 { + status = "okay"; +}; + +&path_mux0 { + status = "okay"; +}; + +&path_mux1 { + status = "okay"; +}; + +&path_mux2 { + status = "okay"; +}; + +&path_mux3 { + status = "okay"; +}; + +&clk_mem { + status = "okay"; +}; + +&clk_peri { + status = "okay"; +}; + +&clk_slow { + status = "okay"; +}; diff --git a/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p-pinctrl.dtsi b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p-pinctrl.dtsi new file mode 100644 index 0000000000000..2a670436b07c3 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p-pinctrl.dtsi @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2025 Infineon Technologies AG, + * or an affiliate of Infineon Technologies AG. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/* Configure pin control bias mode for uart pins */ +&p13_1_scb3_uart_tx { + drive-push-pull; +}; + +&p13_0_scb3_uart_rx { + input-enable; +}; + +&p13_2_scb3_uart_rts { + drive-push-pull; +}; + +&p13_3_scb3_uart_cts { + input-enable; +}; diff --git a/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p.dts b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p.dts new file mode 100644 index 0000000000000..fca69bb86a101 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p.dts @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2025 Infineon Technologies AG, + * or an affiliate of Infineon Technologies AG. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include +#include +#include +#include +#include "kit_t2g_b_h_evk_cyt4bfbche_m0p-pinctrl.dtsi" +#include "kit_t2g_b_h_evk_common.dtsi" + +/ { + model = "Infineon Evaluation board for CYT4BFBCHE M0"; + compatible = "infineon,kit_t2g_b_h_evk", "infineon,TVIIBH8M"; + + chosen { + zephyr,sram = &sram_m0p; + zephyr,flash = &flash_m0p; + zephyr,console = &uart3; + zephyr,shell-uart = &uart3; + }; +}; diff --git a/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p.yaml b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p.yaml new file mode 100644 index 0000000000000..e84df502a14ae --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p.yaml @@ -0,0 +1,15 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +identifier: kit_t2g_b_h_evk/cyt4bfbche/m0p +name: T2G Body High Evaluation Kit (M0P) +type: mcu +arch: arm +ram: 1024 +flash: 8192 +toolchain: + - zephyr + - gnuarmemb +vendor: infineon diff --git a/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p_defconfig b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p_defconfig new file mode 100644 index 0000000000000..8bb4abc1696a6 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m0p_defconfig @@ -0,0 +1,21 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +# General configuration +CONFIG_ARM_MPU=y +CONFIG_HW_STACK_PROTECTION=y + +# Enable console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# Enable UART driver +CONFIG_SERIAL=y + +# Enable GPIO driver +CONFIG_GPIO=y + +# Enable clock controller +CONFIG_CLOCK_CONTROL=y diff --git a/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_0.dts b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_0.dts new file mode 100644 index 0000000000000..c737ba683bb64 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_0.dts @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2025 Infineon Technologies AG, + * or an affiliate of Infineon Technologies AG. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include +#include +#include +#include +#include "kit_t2g_b_h_evk_cyt4bfbche_m0p-pinctrl.dtsi" +#include "kit_t2g_b_h_evk_common.dtsi" + +/ { + model = "Infineon Evaluation Evk board for CYT4BFBCHE M7_0"; + compatible = "infineon,kit_t2g_b_h_evk", "infineon,TVIIBH8M"; + + chosen { + zephyr,sram = &sram_m7_0; + zephyr,flash = &flash_m7_0; + zephyr,dtcm = &dtcm; + zephyr,itcm = &itcm; + zephyr,console = &uart3; + zephyr,shell-uart = &uart3; + }; +}; diff --git a/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_0.yaml b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_0.yaml new file mode 100644 index 0000000000000..17efd89360902 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_0.yaml @@ -0,0 +1,18 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +identifier: kit_t2g_b_h_evk/cyt4bfbche/m7_0 +name: T2G Body High Evaluation Kit (M7_0) +type: mcu +arch: arm +ram: 1024 +flash: 8192 +toolchain: + - zephyr + - gnuarmemb +supported: + - gpio + - uart +vendor: infineon diff --git a/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_0_defconfig b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_0_defconfig new file mode 100644 index 0000000000000..d9577b283e1fc --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_0_defconfig @@ -0,0 +1,22 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +# General configuration +CONFIG_ARM_MPU=y +CONFIG_HW_STACK_PROTECTION=y +CONFIG_CACHE_MANAGEMENT=y + +# Enable console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# Enable UART driver +CONFIG_SERIAL=y + +# Enable GPIO driver +CONFIG_GPIO=y + +# Enable clock controller +CONFIG_CLOCK_CONTROL=y diff --git a/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_1.dts b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_1.dts new file mode 100644 index 0000000000000..b71630a87c5f6 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_1.dts @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2025 Infineon Technologies AG, + * or an affiliate of Infineon Technologies AG. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include +#include +#include +#include +#include "kit_t2g_b_h_evk_cyt4bfbche_m0p-pinctrl.dtsi" +#include "kit_t2g_b_h_evk_common.dtsi" + +/ { + model = "Infineon Evaluation board for CYT4BFBCHE M7_1"; + compatible = "infineon,kit_t2g_b_h_evk", "infineon,TVIIBH8M"; + + chosen { + zephyr,sram = &sram_m7_1; + zephyr,flash = &flash_m7_1; + zephyr,dtcm = &dtcm; + zephyr,itcm = &itcm; + zephyr,console = &uart3; + zephyr,shell-uart = &uart3; + }; +}; diff --git a/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_1.yaml b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_1.yaml new file mode 100644 index 0000000000000..bc0420c8db98d --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_1.yaml @@ -0,0 +1,18 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +identifier: kit_t2g_b_h_evk/cyt4bfbche/m7_1 +name: T2G Body High Evaluation Kit (M7_1) +type: mcu +arch: arm +ram: 1024 +flash: 8192 +toolchain: + - zephyr + - gnuarmemb +supported: + - gpio + - uart +vendor: infineon diff --git a/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_1_defconfig b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_1_defconfig new file mode 100644 index 0000000000000..cdde406d467c5 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/kit_t2g_b_h_evk_cyt4bfbche_m7_1_defconfig @@ -0,0 +1,22 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +# General configurations +CONFIG_ARM_MPU=y +CONFIG_HW_STACK_PROTECTION=y +CONFIG_CACHE_MANAGEMENT=y + +# Enable console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# Enable UART driver +CONFIG_SERIAL=y + +# Enable GPIO driver +CONFIG_GPIO=y + +# Enable clock controller +CONFIG_CLOCK_CONTROL=y diff --git a/boards/infineon/kit_t2g_b_h_evk/support/openocd.cfg b/boards/infineon/kit_t2g_b_h_evk/support/openocd.cfg new file mode 100644 index 0000000000000..330e17aadc656 --- /dev/null +++ b/boards/infineon/kit_t2g_b_h_evk/support/openocd.cfg @@ -0,0 +1,17 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +if {[info exists env(OPENOCD_INTERFACE)]} { + set INTERFACE $env(OPENOCD_INTERFACE) +} else { + #default connect over Debug USB port + set INTERFACE "cmsis-dap" +} + +source [find interface/$INTERFACE.cfg] + +transport select swd + +source [find target/cat1c.cfg] \ No newline at end of file diff --git a/tests/arch/arm/arm_irq_advanced_features/testcase.yaml b/tests/arch/arm/arm_irq_advanced_features/testcase.yaml index bb23dfe64a34e..61b2314fa4104 100644 --- a/tests/arch/arm/arm_irq_advanced_features/testcase.yaml +++ b/tests/arch/arm/arm_irq_advanced_features/testcase.yaml @@ -12,5 +12,7 @@ tests: - kit_xmc72_evk/xmc7200d_e272k8384/m7_1 - kit_t2g_b_h_lite/cyt4bf8cds/m7_0 - kit_t2g_b_h_lite/cyt4bf8cds/m7_1 + - kit_t2g_b_h_evk/cyt4bfbche/m7_0 + - kit_t2g_b_h_evk/cyt4bfbche/m7_1 arch.arm.irq_advanced_features.secure_fw: filter: CONFIG_TRUSTED_EXECUTION_SECURE diff --git a/tests/arch/arm/arm_irq_zero_latency_levels/testcase.yaml b/tests/arch/arm/arm_irq_zero_latency_levels/testcase.yaml index 5e037d6cb11aa..5e3a49de0a93e 100644 --- a/tests/arch/arm/arm_irq_zero_latency_levels/testcase.yaml +++ b/tests/arch/arm/arm_irq_zero_latency_levels/testcase.yaml @@ -15,6 +15,8 @@ tests: - kit_xmc72_evk/xmc7200d_e272k8384/m7_1 - kit_t2g_b_h_lite/cyt4bf8cds/m7_0 - kit_t2g_b_h_lite/cyt4bf8cds/m7_1 + - kit_t2g_b_h_evk/cyt4bfbche/m7_0 + - kit_t2g_b_h_evk/cyt4bfbche/m7_1 arch.arm.irq_zero_latency_levels.secure_fw: filter: CONFIG_TRUSTED_EXECUTION_SECURE integration_platforms: