diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d54c7453..f41ecba8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,6 +40,8 @@ on: - riscv64-zephyr-elf - sparc-zephyr-elf - x86_64-zephyr-elf + - xtensa-espressif_esp32_zephyr-elf + - xtensa-espressif_esp32s2_zephyr-elf - xtensa-intel_apl_adsp_zephyr-elf - xtensa-intel_bdw_adsp_zephyr-elf - xtensa-intel_byt_adsp_zephyr-elf @@ -121,6 +123,8 @@ jobs: riscv64-zephyr-elf) build_target_riscv64_zephyr_elf="y";; sparc-zephyr-elf) build_target_sparc_zephyr_elf="y";; x86_64-zephyr-elf) build_target_x86_64_zephyr_elf="y";; + xtensa-espressif_esp32_zephyr-elf) build_target_xtensa_espressif_esp32_zephyr_elf="y";; + xtensa-espressif_esp32s2_zephyr-elf) build_target_xtensa_espressif_esp32s2_zephyr_elf="y";; xtensa-intel_apl_adsp_zephyr-elf) build_target_xtensa_intel_apl_adsp_zephyr_elf="y";; xtensa-intel_bdw_adsp_zephyr-elf) build_target_xtensa_intel_bdw_adsp_zephyr_elf="y";; xtensa-intel_byt_adsp_zephyr-elf) build_target_xtensa_intel_byt_adsp_zephyr_elf="y";; @@ -153,6 +157,8 @@ jobs: build_target_riscv64_zephyr_elf="y" build_target_sparc_zephyr_elf="y" build_target_x86_64_zephyr_elf="y" + build_target_xtensa_espressif_esp32_zephyr_elf="y" + build_target_xtensa_espressif_esp32s2_zephyr_elf="y" build_target_xtensa_intel_apl_adsp_zephyr_elf="y" build_target_xtensa_intel_bdw_adsp_zephyr_elf="y" build_target_xtensa_intel_byt_adsp_zephyr_elf="y" @@ -227,6 +233,8 @@ jobs: [ "${build_target_riscv64_zephyr_elf}" == "y" ] && MATRIX_TARGETS+='"riscv64-zephyr-elf",' [ "${build_target_sparc_zephyr_elf}" == "y" ] && MATRIX_TARGETS+='"sparc-zephyr-elf",' [ "${build_target_x86_64_zephyr_elf}" == "y" ] && MATRIX_TARGETS+='"x86_64-zephyr-elf",' + [ "${build_target_xtensa_espressif_esp32_zephyr_elf}" == "y" ] && MATRIX_TARGETS+='"xtensa-espressif_esp32_zephyr-elf",' + [ "${build_target_xtensa_espressif_esp32s2_zephyr_elf}" == "y" ] && MATRIX_TARGETS+='"xtensa-espressif_esp32s2_zephyr-elf",' [ "${build_target_xtensa_intel_apl_adsp_zephyr_elf}" == "y" ] && MATRIX_TARGETS+='"xtensa-intel_apl_adsp_zephyr-elf",' [ "${build_target_xtensa_intel_bdw_adsp_zephyr_elf}" == "y" ] && MATRIX_TARGETS+='"xtensa-intel_bdw_adsp_zephyr-elf",' [ "${build_target_xtensa_intel_byt_adsp_zephyr_elf}" == "y" ] && MATRIX_TARGETS+='"xtensa-intel_byt_adsp_zephyr-elf",' @@ -1266,6 +1274,12 @@ jobs: PLATFORM_ARGS+="-p qemu_x86 " PLATFORM_ARGS+="-p qemu_x86_64 " ;; + xtensa-espressif_esp32_zephyr-elf) + PLATFORM_ARGS+="-p esp32 " + ;; + xtensa-espressif_esp32s2_zephyr-elf) + PLATFORM_ARGS+="-p esp32s2_saola " + ;; xtensa-intel_apl_adsp_zephyr-elf) PLATFORM_ARGS+="-p intel_adsp_cavs15 " ;; diff --git a/README.md b/README.md index 58035fad..ebfcf58f 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ The toolchains for the following target architectures are supported: - RISC-V (32-bit and 64-bit; RV32I, RV32E, RV64I) - x86 (32-bit and 64-bit) - Xtensa (sample_controller, intel_apl_adsp, intel_bdw_adsp, intel_byt_adsp, - intel_s1000, nxp_imx_adsp, nxp_imx8m_adsp) + intel_s1000, nxp_imx_adsp, nxp_imx8m_adsp, espressif_esp32, espressif_esp32s2) The following host tools are available as part of the Zephyr SDK: diff --git a/configs/xtensa-espressif_esp32_zephyr-elf.config b/configs/xtensa-espressif_esp32_zephyr-elf.config new file mode 100644 index 00000000..5f3ea498 --- /dev/null +++ b/configs/xtensa-espressif_esp32_zephyr-elf.config @@ -0,0 +1,63 @@ +CT_CONFIG_VERSION="3" +CT_EXPERIMENTAL=y +# CT_PREFIX_DIR_RO is not set +# CT_LOG_PROGRESS_BAR is not set +CT_TARGET_CFLAGS="-mlongcalls" +CT_ARCH_XTENSA=y +CT_XTENSA_CUSTOM=y +CT_OVERLAY_NAME="espressif_esp32" +CT_OVERLAY_LOCATION="./overlays" +CT_TARGET_VENDOR="espressif_esp32_zephyr" +CT_BINUTILS_SRC_CUSTOM=y +CT_BINUTILS_CUSTOM_LOCATION="${GITHUB_WORKSPACE}/binutils" +CT_NEWLIB_SRC_CUSTOM=y +CT_NEWLIB_CUSTOM_LOCATION="${GITHUB_WORKSPACE}/newlib" +CT_LIBC_NEWLIB_TARGET_CFLAGS="-O2" +# CT_LIBC_NEWLIB_ENABLE_TARGET_OPTSPACE is not set +CT_LIBC_NEWLIB_IO_C99FMT=y +CT_LIBC_NEWLIB_IO_LL=y +CT_LIBC_NEWLIB_IO_FLOAT=y +# CT_LIBC_NEWLIB_FSEEK_OPTIMIZATION is not set +CT_LIBC_NEWLIB_DISABLE_SUPPLIED_SYSCALLS=y +CT_LIBC_NEWLIB_GLOBAL_ATEXIT=y +CT_LIBC_NEWLIB_LITE_EXIT=y +CT_LIBC_NEWLIB_MULTITHREAD=y +CT_LIBC_NEWLIB_RETARGETABLE_LOCKING=y +# CT_LIBC_NEWLIB_WIDE_ORIENT is not set +# CT_LIBC_NEWLIB_NANO_MALLOC is not set +# CT_LIBC_NEWLIB_NANO_FORMATTED_IO is not set +CT_LIBC_NEWLIB_EXTRA_SECTIONS=y +CT_GCC_SRC_CUSTOM=y +CT_GCC_CUSTOM_LOCATION="${GITHUB_WORKSPACE}/gcc" +CT_CC_GCC_EXTRA_CONFIG_ARRAY="--with-gnu-ld --with-gnu-as --enable-initfini-array" +CT_CC_LANG_CXX=y +CT_DEBUG_GDB=y +CT_GDB_SRC_CUSTOM=y +CT_GDB_CUSTOM_LOCATION="${GITHUB_WORKSPACE}/gdb" +CT_COMP_LIBS_NEWLIB_NANO=y +CT_NEWLIB_NANO_SRC_CUSTOM=y +CT_NEWLIB_NANO_CUSTOM_LOCATION="${GITHUB_WORKSPACE}/newlib" +CT_NEWLIB_NANO_GCC_LIBSTDCXX=y +CT_NEWLIB_NANO_INSTALL_IN_TARGET=y +# CT_LIBC_NEWLIB_NANO_IO_C99FMT is not set +# CT_LIBC_NEWLIB_NANO_IO_LL is not set +CT_LIBC_NEWLIB_NANO_IO_FLOAT=y +# CT_LIBC_NEWLIB_NANO_IO_LDBL is not set +# CT_LIBC_NEWLIB_NANO_IO_POS_ARGS is not set +CT_LIBC_NEWLIB_NANO_FVWRITE_IN_STREAMIO=y +# CT_LIBC_NEWLIB_NANO_UNBUF_STREAM_OPT is not set +# CT_LIBC_NEWLIB_NANO_FSEEK_OPTIMIZATION is not set +CT_LIBC_NEWLIB_NANO_DISABLE_SUPPLIED_SYSCALLS=y +# CT_LIBC_NEWLIB_NANO_REGISTER_FINI is not set +CT_LIBC_NEWLIB_NANO_ATEXIT_DYNAMIC_ALLOC=y +CT_LIBC_NEWLIB_NANO_GLOBAL_ATEXIT=y +CT_LIBC_NEWLIB_NANO_LITE_EXIT=y +CT_LIBC_NEWLIB_NANO_REENT_SMALL=y +CT_LIBC_NEWLIB_NANO_MULTITHREAD=y +CT_LIBC_NEWLIB_NANO_RETARGETABLE_LOCKING=y +CT_LIBC_NEWLIB_NANO_EXTRA_SECTIONS=y +# CT_LIBC_NEWLIB_NANO_WIDE_ORIENT is not set +CT_LIBC_NEWLIB_NANO_ENABLE_TARGET_OPTSPACE=y +# CT_LIBC_NEWLIB_NANO_LTO is not set +CT_LIBC_NEWLIB_NANO_NANO_MALLOC=y +CT_LIBC_NEWLIB_NANO_NANO_FORMATTED_IO=y diff --git a/configs/xtensa-espressif_esp32s2_zephyr-elf.config b/configs/xtensa-espressif_esp32s2_zephyr-elf.config new file mode 100644 index 00000000..97e82562 --- /dev/null +++ b/configs/xtensa-espressif_esp32s2_zephyr-elf.config @@ -0,0 +1,63 @@ +CT_CONFIG_VERSION="3" +CT_EXPERIMENTAL=y +# CT_PREFIX_DIR_RO is not set +# CT_LOG_PROGRESS_BAR is not set +CT_TARGET_CFLAGS="-mlongcalls" +CT_ARCH_XTENSA=y +CT_XTENSA_CUSTOM=y +CT_OVERLAY_NAME="espressif_esp32s2" +CT_OVERLAY_LOCATION="./overlays" +CT_TARGET_VENDOR="espressif_esp32s2_zephyr" +CT_BINUTILS_SRC_CUSTOM=y +CT_BINUTILS_CUSTOM_LOCATION="${GITHUB_WORKSPACE}/binutils" +CT_NEWLIB_SRC_CUSTOM=y +CT_NEWLIB_CUSTOM_LOCATION="${GITHUB_WORKSPACE}/newlib" +CT_LIBC_NEWLIB_TARGET_CFLAGS="-O2" +# CT_LIBC_NEWLIB_ENABLE_TARGET_OPTSPACE is not set +CT_LIBC_NEWLIB_IO_C99FMT=y +CT_LIBC_NEWLIB_IO_LL=y +CT_LIBC_NEWLIB_IO_FLOAT=y +# CT_LIBC_NEWLIB_FSEEK_OPTIMIZATION is not set +CT_LIBC_NEWLIB_DISABLE_SUPPLIED_SYSCALLS=y +CT_LIBC_NEWLIB_GLOBAL_ATEXIT=y +CT_LIBC_NEWLIB_LITE_EXIT=y +CT_LIBC_NEWLIB_MULTITHREAD=y +CT_LIBC_NEWLIB_RETARGETABLE_LOCKING=y +# CT_LIBC_NEWLIB_WIDE_ORIENT is not set +# CT_LIBC_NEWLIB_NANO_MALLOC is not set +# CT_LIBC_NEWLIB_NANO_FORMATTED_IO is not set +CT_LIBC_NEWLIB_EXTRA_SECTIONS=y +CT_GCC_SRC_CUSTOM=y +CT_GCC_CUSTOM_LOCATION="${GITHUB_WORKSPACE}/gcc" +CT_CC_GCC_EXTRA_CONFIG_ARRAY="--with-gnu-ld --with-gnu-as --enable-initfini-array" +CT_CC_LANG_CXX=y +CT_DEBUG_GDB=y +CT_GDB_SRC_CUSTOM=y +CT_GDB_CUSTOM_LOCATION="${GITHUB_WORKSPACE}/gdb" +CT_COMP_LIBS_NEWLIB_NANO=y +CT_NEWLIB_NANO_SRC_CUSTOM=y +CT_NEWLIB_NANO_CUSTOM_LOCATION="${GITHUB_WORKSPACE}/newlib" +CT_NEWLIB_NANO_GCC_LIBSTDCXX=y +CT_NEWLIB_NANO_INSTALL_IN_TARGET=y +# CT_LIBC_NEWLIB_NANO_IO_C99FMT is not set +# CT_LIBC_NEWLIB_NANO_IO_LL is not set +CT_LIBC_NEWLIB_NANO_IO_FLOAT=y +# CT_LIBC_NEWLIB_NANO_IO_LDBL is not set +# CT_LIBC_NEWLIB_NANO_IO_POS_ARGS is not set +CT_LIBC_NEWLIB_NANO_FVWRITE_IN_STREAMIO=y +# CT_LIBC_NEWLIB_NANO_UNBUF_STREAM_OPT is not set +# CT_LIBC_NEWLIB_NANO_FSEEK_OPTIMIZATION is not set +CT_LIBC_NEWLIB_NANO_DISABLE_SUPPLIED_SYSCALLS=y +# CT_LIBC_NEWLIB_NANO_REGISTER_FINI is not set +CT_LIBC_NEWLIB_NANO_ATEXIT_DYNAMIC_ALLOC=y +CT_LIBC_NEWLIB_NANO_GLOBAL_ATEXIT=y +CT_LIBC_NEWLIB_NANO_LITE_EXIT=y +CT_LIBC_NEWLIB_NANO_REENT_SMALL=y +CT_LIBC_NEWLIB_NANO_MULTITHREAD=y +CT_LIBC_NEWLIB_NANO_RETARGETABLE_LOCKING=y +CT_LIBC_NEWLIB_NANO_EXTRA_SECTIONS=y +# CT_LIBC_NEWLIB_NANO_WIDE_ORIENT is not set +CT_LIBC_NEWLIB_NANO_ENABLE_TARGET_OPTSPACE=y +# CT_LIBC_NEWLIB_NANO_LTO is not set +CT_LIBC_NEWLIB_NANO_NANO_MALLOC=y +CT_LIBC_NEWLIB_NANO_NANO_FORMATTED_IO=y diff --git a/overlays/xtensa_espressif_esp32.tar.gz b/overlays/xtensa_espressif_esp32.tar.gz new file mode 100644 index 00000000..740f09ff Binary files /dev/null and b/overlays/xtensa_espressif_esp32.tar.gz differ diff --git a/overlays/xtensa_espressif_esp32s2.tar.gz b/overlays/xtensa_espressif_esp32s2.tar.gz new file mode 100644 index 00000000..57592706 Binary files /dev/null and b/overlays/xtensa_espressif_esp32s2.tar.gz differ