From 68a113005ad506841cdcb1d40eabd7e5495bcade Mon Sep 17 00:00:00 2001 From: Alp Sayin Date: Thu, 6 Oct 2022 15:14:17 +0100 Subject: [PATCH 1/4] toolchain: add AMD/Xilinx microblaze config --- configs/microblazeel-zephyr-elf.config | 62 ++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 configs/microblazeel-zephyr-elf.config diff --git a/configs/microblazeel-zephyr-elf.config b/configs/microblazeel-zephyr-elf.config new file mode 100644 index 00000000..dee32814 --- /dev/null +++ b/configs/microblazeel-zephyr-elf.config @@ -0,0 +1,62 @@ +CT_CONFIG_VERSION="3" +CT_EXPERIMENTAL=y +# CT_PREFIX_DIR_RO is not set +# CT_LOG_PROGRESS_BAR is not set +CT_ARCH_MICROBLAZE=y +CT_ARCH_LE=y +CT_MULTILIB=y +CT_TARGET_CFLAGS="-G0 -fno-pic" +CT_TARGET_VENDOR="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 From 78b22ca2c0879aee3e17ac94b2f2e94de93e7466 Mon Sep 17 00:00:00 2001 From: Alp Sayin Date: Thu, 6 Oct 2022 15:14:35 +0100 Subject: [PATCH 2/4] cmake: new cross-compile target microblaze --- cmake/zephyr/target.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/zephyr/target.cmake b/cmake/zephyr/target.cmake index dbcb9f55..f3256132 100644 --- a/cmake/zephyr/target.cmake +++ b/cmake/zephyr/target.cmake @@ -10,6 +10,7 @@ set(CROSS_COMPILE_TARGET_arm64 aarch64-zephyr-elf) set(CROSS_COMPILE_TARGET_nios2 nios2-zephyr-elf) set(CROSS_COMPILE_TARGET_riscv riscv64-zephyr-elf) set(CROSS_COMPILE_TARGET_mips mips-zephyr-elf) +set(CROSS_COMPILE_TARGET_microblaze microblazeel-zephyr-elf) set(CROSS_COMPILE_TARGET_xtensa xtensa-${SOC_TOOLCHAIN_NAME}_zephyr-elf) # ARC uses the same source tree for both ARCv2 & ARCv3 architectures, From 8bd2133a52299769bf417b4540eb6146d96cf5ea Mon Sep 17 00:00:00 2001 From: Alp Sayin Date: Thu, 6 Oct 2022 15:14:43 +0100 Subject: [PATCH 3/4] doc: readme: add microblaze to toolchains list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2c2489ed..3d1ec29f 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ The toolchains for the following target architectures are supported: - ARC (32-bit and 64-bit; ARCv1, ARCv2, ARCv3) - ARM (32-bit and 64-bit; ARMv6, ARMv7, ARMv8; A/R/M Profiles) +- Microblaze (32-bit) - MIPS (32-bit and 64-bit) - Nios II - RISC-V (32-bit and 64-bit; RV32I, RV32E, RV64I) From a5b86bb5ab36358c9ee592cbd416fba2cc88dbb4 Mon Sep 17 00:00:00 2001 From: Alp Sayin Date: Thu, 6 Oct 2022 15:15:01 +0100 Subject: [PATCH 4/4] ci: add microblazeel-zephyr-elf to target platforms --- .github/workflows/ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 29429a7d..5ba54329 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,6 +44,7 @@ on: - arc64-zephyr-elf - arc-zephyr-elf - arm-zephyr-eabi + - microblazeel-zephyr-elf - mips-zephyr-elf - nios2-zephyr-elf - riscv64-zephyr-elf @@ -150,6 +151,7 @@ jobs: arc64-zephyr-elf) build_target_arc64_zephyr_elf="y";; arc-zephyr-elf) build_target_arc_zephyr_elf="y";; arm-zephyr-eabi) build_target_arm_zephyr_eabi="y";; + microblazeel-zephyr-elf) build_target_microblazeel_zephyr_elf="y";; mips-zephyr-elf) build_target_mips_zephyr_elf="y";; nios2-zephyr-elf) build_target_nios2_zephyr_elf="y";; riscv64-zephyr-elf) build_target_riscv64_zephyr_elf="y";; @@ -184,6 +186,7 @@ jobs: build_target_arc64_zephyr_elf="y" build_target_arc_zephyr_elf="y" build_target_arm_zephyr_eabi="y" + build_target_microblazeel_zephyr_elf="y" build_target_mips_zephyr_elf="y" build_target_nios2_zephyr_elf="y" build_target_riscv64_zephyr_elf="y" @@ -258,6 +261,7 @@ jobs: [ "${build_target_arc64_zephyr_elf}" == "y" ] && MATRIX_TARGETS+='"arc64-zephyr-elf",' [ "${build_target_arc_zephyr_elf}" == "y" ] && MATRIX_TARGETS+='"arc-zephyr-elf",' [ "${build_target_arm_zephyr_eabi}" == "y" ] && MATRIX_TARGETS+='"arm-zephyr-eabi",' + [ "${build_target_microblazeel_zephyr_elf}" == "y" ] && MATRIX_TARGETS+='"microblazeel-zephyr-elf",' [ "${build_target_mips_zephyr_elf}" == "y" ] && MATRIX_TARGETS+='"mips-zephyr-elf",' [ "${build_target_nios2_zephyr_elf}" == "y" ] && MATRIX_TARGETS+='"nios2-zephyr-elf",' [ "${build_target_riscv64_zephyr_elf}" == "y" ] && MATRIX_TARGETS+='"riscv64-zephyr-elf",' @@ -1486,6 +1490,10 @@ jobs: PLATFORM_ARGS+="-p mps2_an521 " PLATFORM_ARGS+="-p mps3_an547 " ;; + # TODO: Release the microblaze arch source in a public repo + # microblazeel-zephyr-elf) + # PLATFORM_ARGS+="-p qemu_microblaze " + # ;; mips-zephyr-elf) PLATFORM_ARGS+="-p qemu_malta " ;;