This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM62P: SDK 11: OP-TEE not building due to platform

Part Number: AM62P


Tool/software:

Hello,

I am having trouble building the OP-TEE for the am62px. I ran through the OP-TEE build instructions listed in the processor sdk manual and was met with the error described in the txt file I attached.

I believe this error may have to do with setting the platform to k3-am62px. The platform_config.h and conf.mk file in optee_os/core/arch/arm/plat-k3/ do not handle this device. What’s confusing is that this wasn’t an issue in SDK 10.1, which uses OP-TEE version 4.4. The platform_config.h file are identical between the previous version and this one, and the changes in conf.mk don't provide a clear explanation as to why the k3-am62px platform is no longer accepted. I found the following commit: https://github.com/OP-TEE/optee_os/commit/9240925f9606a9f49e5383df8ffde2fbee2a977b. According to this commit the platform specified does not matter, so could setting the platform option to k3-am62x be a hack for this issue or should k3-am62px be a valid platform.

Thank you,

-Job

jsava@laptop-183:/export/home/jsava/u-boot-ti/op-tee_temp/optee_os$ SDK_INSTALL_DIR=/export/home/jsava/ti-processor-sdk-linux-am62pxx-evm-11.00.09.04
jsava@laptop-183:/export/home/jsava/u-boot-ti/op-tee_temp/optee_os$ export CROSS_COMPILE_64="${SDK_INSTALL_DIR}/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/aarch64-oe-linux/aarch64-oe-linux-"
jsava@laptop-183:/export/home/jsava/u-boot-ti/op-tee_temp/optee_os$ export SYSROOT_64="${SDK_INSTALL_DIR}/linux-devkit/sysroots/aarch64-oe-linux"
jsava@laptop-183:/export/home/jsava/u-boot-ti/op-tee_temp/optee_os$ export CC_64="${CROSS_COMPILE_64}gcc --sysroot=${SYSROOT_64}"
jsava@laptop-183:/export/home/jsava/u-boot-ti/op-tee_temp/optee_os$ export CROSS_COMPILE_32="${SDK_INSTALL_DIR}/k3r5-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-oe-eabi/arm-oe-eabi-"
jsava@laptop-183:/export/home/jsava/u-boot-ti/op-tee_temp/optee_os$ make CROSS_COMPILE="$CROSS_COMPILE_32" CROSS_COMPILE64="$CROSS_COMPILE_64" PLATFORM=k3-am62px CFG_ARM64_core=y
  CHK     out/arm-plat-k3/conf.mk
  CHK     out/arm-plat-k3/include/generated/conf.h
  CC      out/arm-plat-k3/core/include/generated/.asm-defines.s
  CHK     out/arm-plat-k3/core/include/generated/asm-defines.h
  UPD     out/arm-plat-k3/core/include/generated/asm-defines.h
  CC      out/arm-plat-k3/core/arch/arm/kernel/rpc_io_i2c.o
  CC      out/arm-plat-k3/core/arch/arm/kernel/idle.o
  CC      out/arm-plat-k3/core/arch/arm/kernel/tee_time_arm_cntpct.o
  CC      out/arm-plat-k3/core/arch/arm/kernel/timer_a64.o
  AS      out/arm-plat-k3/core/arch/arm/kernel/spin_lock_a64.o
  AS      out/arm-plat-k3/core/arch/arm/kernel/tlb_helpers_a64.o
  AS      out/arm-plat-k3/core/arch/arm/kernel/cache_helpers_a64.o
  AS      out/arm-plat-k3/core/arch/arm/kernel/thread_a64.o
  CC      out/arm-plat-k3/core/arch/arm/kernel/thread.o
  CC      out/arm-plat-k3/core/arch/arm/kernel/arch_scall.o
  AS      out/arm-plat-k3/core/arch/arm/kernel/arch_scall_a64.o
  CC      out/arm-plat-k3/core/arch/arm/kernel/thread_optee_smc.o
  AS      out/arm-plat-k3/core/arch/arm/kernel/thread_optee_smc_a64.o
  CC      out/arm-plat-k3/core/arch/arm/kernel/abort.o
  CC      out/arm-plat-k3/core/arch/arm/kernel/vfp.o
  AS      out/arm-plat-k3/core/arch/arm/kernel/vfp_a64.o
  AS      out/arm-plat-k3/core/arch/arm/kernel/misc_a64.o
  CC      out/arm-plat-k3/core/arch/arm/kernel/boot.o
  AS      out/arm-plat-k3/core/arch/arm/kernel/entry_a64.o
  CC      out/arm-plat-k3/core/arch/arm/kernel/unwind_arm64.o
  AS      out/arm-plat-k3/core/arch/arm/crypto/ghash-ce-core_a64.o
  CC      out/arm-plat-k3/core/arch/arm/crypto/aes-gcm-ce.o
  CC      out/arm-plat-k3/core/arch/arm/crypto/aes_armv8a_ce.o
  AS      out/arm-plat-k3/core/arch/arm/crypto/aes_modes_armv8a_ce_a64.o
  CC      out/arm-plat-k3/core/arch/arm/crypto/sha1_armv8a_ce.o
  AS      out/arm-plat-k3/core/arch/arm/crypto/sha1_armv8a_ce_a64.o
  CC      out/arm-plat-k3/core/arch/arm/crypto/sha256_armv8a_ce.o
  AS      out/arm-plat-k3/core/arch/arm/crypto/sha256_armv8a_ce_a64.o
  CC      out/arm-plat-k3/core/arch/arm/crypto/sm4_armv8a_neon.o
  AS      out/arm-plat-k3/core/arch/arm/crypto/sm4_armv8a_aese_a64.o
  CC      out/arm-plat-k3/core/arch/arm/mm/core_mmu.o
  CC      out/arm-plat-k3/core/arch/arm/mm/core_mmu_lpae.o
  CC      out/arm-plat-k3/core/arch/arm/tee/entry_fast.o
  CC      out/arm-plat-k3/core/arch/arm/tee/cache.o
  CC      out/arm-plat-k3/core/arch/arm/plat-k3/main.o
  CC      out/arm-plat-k3/core/arch/arm/plat-k3/drivers/sec_proxy.o
  CC      out/arm-plat-k3/core/arch/arm/plat-k3/drivers/ti_sci.o
  CC      out/arm-plat-k3/core/arch/arm/plat-k3/drivers/sa2ul.o
In file included from core/include/mm/core_memprot.h:9,
                 from core/include/kernel/interrupt.h:10,
                 from core/arch/arm/plat-k3/drivers/sa2ul.c:13:
core/arch/arm/plat-k3/drivers/sa2ul.c:36:42: error: ‘SA2UL_BASE’ undeclared here (not in a function); did you mean ‘SCU_BASE’?
   36 | register_phys_mem_pgdir(MEM_AREA_IO_SEC, SA2UL_BASE, SA2UL_REG_SIZE);
      |                                          ^~~~~~~~~~
core/include/mm/core_mmu.h:188:62: note: in definition of macro ‘__register_memory’
  188 |                 { .name = (_name), .type = (_type), .addr = (_addr), \
      |                                                              ^~~~~
core/include/mm/core_mmu.h:211:40: note: in expansion of macro ‘ROUNDDOWN’
  211 |         __register_memory(#addr, type, ROUNDDOWN(addr, CORE_MMU_PGDIR_SIZE), \
      |                                        ^~~~~~~~~
core/arch/arm/plat-k3/drivers/sa2ul.c:36:1: note: in expansion of macro ‘register_phys_mem_pgdir’
   36 | register_phys_mem_pgdir(MEM_AREA_IO_SEC, SA2UL_BASE, SA2UL_REG_SIZE);
      | ^~~~~~~~~~~~~~~~~~~~~~~
core/arch/arm/plat-k3/drivers/sa2ul.c: In function ‘sa2ul_init’:
core/arch/arm/plat-k3/drivers/sa2ul.c:42:27: error: ‘SA2UL_TI_SCI_FW_ID’ undeclared (first use in this function)
   42 |         uint16_t fwl_id = SA2UL_TI_SCI_FW_ID;
      |                           ^~~~~~~~~~~~~~~~~~
core/arch/arm/plat-k3/drivers/sa2ul.c:42:27: note: each undeclared identifier is reported only once for each function it appears in
core/arch/arm/plat-k3/drivers/sa2ul.c:43:33: error: ‘SA2UL_TI_SCI_FW_RGN_ID’ undeclared (first use in this function); did you mean ‘RNG_TI_SCI_FW_RGN_ID’?
   43 |         uint16_t sa2ul_region = SA2UL_TI_SCI_FW_RGN_ID;
      |                                 ^~~~~~~~~~~~~~~~~~~~~~
      |                                 RNG_TI_SCI_FW_RGN_ID
core/arch/arm/plat-k3/drivers/sa2ul.c:57:13: error: ‘SA2UL_TI_SCI_DEV_ID’ undeclared (first use in this function)
   57 |         if (SA2UL_TI_SCI_DEV_ID != -1) {
      |             ^~~~~~~~~~~~~~~~~~~
At top level:
cc1: note: unrecognized command-line option ‘-Wno-c2x-extensions’ may have been intended to silence earlier diagnostics
make: *** [mk/compile.mk:166: out/arm-plat-k3/core/arch/arm/plat-k3/drivers/sa2ul.o] Error 1

  • Hi Job,

    Thanks for reporting the build issue. The build instruction doesn't seem to be correct for SDK11.0.

    $ make CROSS_COMPILE="$CROSS_COMPILE_32" CROSS_COMPILE64="$CROSS_COMPILE_64" PLATFORM=k3-am62px CFG_ARM64_core=y

    The PLATFORM parameter should be "k3-am62x" instead of "k3-am62px".

  • Hi Bin,

    Thank you for the response, this fixed my issue. I wasn't able to find why k3-am62px is an invalid platform. Could you explain why it no longer works. Also, will this be an issue for the am62a when the SDK 11 comes out for that platform?

    On a side note: when I tried building OP-TEE 4.5 with the platform set to k3-am62x and I ran into the following error:

    I was able to fix this by using the arm toolchain described in: ARM toolchain SDK 11. Is there a reason why the cross compiler toolchain described in the OP-TEE build instructions doesn't work. Could the ubuntu version (ubuntu 24.04) I am running cause this error.

    Note: The instructions in the arm toolchain are outdated (A separate e2e i made regarding this has been addressed and instructions will be updated): e2e link

  • Looks like my txt file didn't embed proprerly. Lets see if this works

    jsava@laptop-183:/export/home/jsava/u-boot-ti/op-tee_temp/optee_os$ make CROSS_COMPILE="$CROSS_COMPILE_32" CROSS_COMPILE64="$CROSS_COMPILE_64" PLATFORM=k3-am62x CFG_ARM64_core=y
      GEN     out/arm-plat-k3/core/include/generated/arm32_sysreg.h
      GEN     out/arm-plat-k3/core/include/generated/arm32_sysreg.S
      GEN     out/arm-plat-k3/core/include/generated/arm32_gicv3_sysreg.h
      GEN     out/arm-plat-k3/core/include/generated/arm32_gicv3_sysreg.S
      CHK     out/arm-plat-k3/conf.mk
      UPD     out/arm-plat-k3/conf.mk
      CHK     out/arm-plat-k3/include/generated/conf.h
      UPD     out/arm-plat-k3/include/generated/conf.h
      CC      out/arm-plat-k3/core/include/generated/.asm-defines.s
      CHK     out/arm-plat-k3/core/include/generated/asm-defines.h
      UPD     out/arm-plat-k3/core/include/generated/asm-defines.h
      CC      out/arm-plat-k3/core/arch/arm/kernel/rpc_io_i2c.o
      CC      out/arm-plat-k3/core/arch/arm/kernel/idle.o
      CC      out/arm-plat-k3/core/arch/arm/kernel/tee_time_arm_cntpct.o
      CC      out/arm-plat-k3/core/arch/arm/kernel/timer_a64.o
      AS      out/arm-plat-k3/core/arch/arm/kernel/spin_lock_a64.o
      AS      out/arm-plat-k3/core/arch/arm/kernel/tlb_helpers_a64.o
      AS      out/arm-plat-k3/core/arch/arm/kernel/cache_helpers_a64.o
      AS      out/arm-plat-k3/core/arch/arm/kernel/thread_a64.o
      CC      out/arm-plat-k3/core/arch/arm/kernel/thread.o
      CC      out/arm-plat-k3/core/arch/arm/kernel/arch_scall.o
      AS      out/arm-plat-k3/core/arch/arm/kernel/arch_scall_a64.o
      CC      out/arm-plat-k3/core/arch/arm/kernel/thread_optee_smc.o
      AS      out/arm-plat-k3/core/arch/arm/kernel/thread_optee_smc_a64.o
      CC      out/arm-plat-k3/core/arch/arm/kernel/abort.o
      CC      out/arm-plat-k3/core/arch/arm/kernel/vfp.o
      AS      out/arm-plat-k3/core/arch/arm/kernel/vfp_a64.o
      AS      out/arm-plat-k3/core/arch/arm/kernel/misc_a64.o
      CC      out/arm-plat-k3/core/arch/arm/kernel/boot.o
      AS      out/arm-plat-k3/core/arch/arm/kernel/entry_a64.o
      CC      out/arm-plat-k3/core/arch/arm/kernel/unwind_arm64.o
      AS      out/arm-plat-k3/core/arch/arm/crypto/ghash-ce-core_a64.o
      CC      out/arm-plat-k3/core/arch/arm/crypto/aes-gcm-ce.o
      CC      out/arm-plat-k3/core/arch/arm/crypto/aes_armv8a_ce.o
      AS      out/arm-plat-k3/core/arch/arm/crypto/aes_modes_armv8a_ce_a64.o
      CC      out/arm-plat-k3/core/arch/arm/crypto/sha1_armv8a_ce.o
      AS      out/arm-plat-k3/core/arch/arm/crypto/sha1_armv8a_ce_a64.o
      CC      out/arm-plat-k3/core/arch/arm/crypto/sha256_armv8a_ce.o
      AS      out/arm-plat-k3/core/arch/arm/crypto/sha256_armv8a_ce_a64.o
      CC      out/arm-plat-k3/core/arch/arm/crypto/sm4_armv8a_neon.o
      AS      out/arm-plat-k3/core/arch/arm/crypto/sm4_armv8a_aese_a64.o
      CC      out/arm-plat-k3/core/arch/arm/mm/core_mmu.o
      CC      out/arm-plat-k3/core/arch/arm/mm/core_mmu_lpae.o
      CC      out/arm-plat-k3/core/arch/arm/tee/entry_fast.o
      CC      out/arm-plat-k3/core/arch/arm/tee/cache.o
      CC      out/arm-plat-k3/core/arch/arm/plat-k3/main.o
      CC      out/arm-plat-k3/core/arch/arm/plat-k3/drivers/sec_proxy.o
      CC      out/arm-plat-k3/core/arch/arm/plat-k3/drivers/ti_sci.o
      CC      out/arm-plat-k3/core/arch/arm/plat-k3/drivers/sa2ul.o
      CC      out/arm-plat-k3/core/arch/arm/plat-k3/drivers/sa2ul_rng.o
      CC      out/arm-plat-k3/core/crypto/crypto.o
      CC      out/arm-plat-k3/core/crypto/aes-gcm.o
      CC      out/arm-plat-k3/core/crypto/signed_hdr.o
      CC      out/arm-plat-k3/core/crypto/rng_hw.o
      CC      out/arm-plat-k3/core/crypto/cbc-mac.o
      CC      out/arm-plat-k3/core/crypto/aes-cts.o
      CC      out/arm-plat-k3/core/crypto/sm2-kdf.o
      CC      out/arm-plat-k3/core/crypto/sm3.o
      CC      out/arm-plat-k3/core/crypto/sm3-hash.o
      CC      out/arm-plat-k3/core/crypto/sm3-hmac.o
      CC      out/arm-plat-k3/core/crypto/sm4_accel.o
      CC      out/arm-plat-k3/core/crypto/sm4-ecb.o
      CC      out/arm-plat-k3/core/crypto/sm4-cbc.o
      CC      out/arm-plat-k3/core/crypto/sm4-ctr.o
      CC      out/arm-plat-k3/core/crypto/sm4-xts.o
      CC      out/arm-plat-k3/core/drivers/gic.o
      CC      out/arm-plat-k3/core/drivers/serial8250_uart.o
      CC      out/arm-plat-k3/core/kernel/spin_lock_debug.o
      CC      out/arm-plat-k3/core/kernel/assert.o
      CC      out/arm-plat-k3/core/kernel/console.o
      CC      out/arm-plat-k3/core/kernel/boot.o
      CC      out/arm-plat-k3/core/kernel/pm.o
      CC      out/arm-plat-k3/core/kernel/handle.o
      CC      out/arm-plat-k3/core/kernel/interrupt.o
      CC      out/arm-plat-k3/core/kernel/ldelf_loader.o
      CC      out/arm-plat-k3/core/kernel/ldelf_syscalls.o
      CC      out/arm-plat-k3/core/kernel/scall.o
      CC      out/arm-plat-k3/core/kernel/msg_param.o
      CC      out/arm-plat-k3/core/kernel/panic.o
      CC      out/arm-plat-k3/core/kernel/trace_ext.o
      CC      out/arm-plat-k3/core/kernel/refcount.o
      CC      out/arm-plat-k3/core/kernel/delay.o
      CC      out/arm-plat-k3/core/kernel/tee_time.o
      CC      out/arm-plat-k3/core/kernel/otp_stubs.o
      CC      out/arm-plat-k3/core/kernel/tee_misc.o
      CC      out/arm-plat-k3/core/kernel/tee_ta_manager.o
      CC      out/arm-plat-k3/core/kernel/ts_manager.o
      CC      out/arm-plat-k3/core/kernel/scattered_array.o
      CC      out/arm-plat-k3/core/kernel/huk_subkey.o
      CC      out/arm-plat-k3/core/kernel/user_mode_ctx.o
      CC      out/arm-plat-k3/core/kernel/initcall.o
      CC      out/arm-plat-k3/core/kernel/user_access.o
      CC      out/arm-plat-k3/core/kernel/mutex.o
      CC      out/arm-plat-k3/core/kernel/wait_queue.o
      CC      out/arm-plat-k3/core/kernel/notif.o
      CC      out/arm-plat-k3/core/kernel/thread.o
      CC      out/arm-plat-k3/core/kernel/user_ta.o
      CC      out/arm-plat-k3/core/kernel/ree_fs_ta.o
      CC      out/arm-plat-k3/core/kernel/secstor_ta.o
      CC      out/arm-plat-k3/core/kernel/pseudo_ta.o
      CC      out/arm-plat-k3/core/kernel/nv_counter.o
      CC      out/arm-plat-k3/core/mm/mobj.o
      CC      out/arm-plat-k3/core/mm/fobj.o
      CC      out/arm-plat-k3/core/mm/file.o
      CC      out/arm-plat-k3/core/mm/vm.o
      CC      out/arm-plat-k3/core/mm/core_mmu.o
      CC      out/arm-plat-k3/core/mm/pgt_cache.o
      CC      out/arm-plat-k3/core/mm/tee_mm.o
      CC      out/arm-plat-k3/core/mm/phys_mem.o
      CC      out/arm-plat-k3/core/mm/mobj_dyn_shm.o
      CC      out/arm-plat-k3/core/mm/boot_mem.o
      CC      out/arm-plat-k3/core/pta/device.o
      CC      out/arm-plat-k3/core/pta/secstor_ta_mgmt.o
      CC      out/arm-plat-k3/core/pta/stats.o
      CC      out/arm-plat-k3/core/pta/system.o
      CC      out/arm-plat-k3/core/pta/hwrng.o
      CC      out/arm-plat-k3/core/pta/k3/otp.o
      CC      out/arm-plat-k3/core/tee/entry_std.o
      CC      out/arm-plat-k3/core/tee/tee_cryp_utl.o
      CC      out/arm-plat-k3/core/tee/tee_cryp_hkdf.o
      CC      out/arm-plat-k3/core/tee/tee_cryp_concat_kdf.o
      CC      out/arm-plat-k3/core/tee/tee_cryp_pbkdf2.o
      CC      out/arm-plat-k3/core/tee/tee_obj.o
      CC      out/arm-plat-k3/core/tee/tee_svc.o
      CC      out/arm-plat-k3/core/tee/tee_svc_cryp.o
      CC      out/arm-plat-k3/core/tee/tee_svc_storage.o
      CC      out/arm-plat-k3/core/tee/tee_time_generic.o
      CC      out/arm-plat-k3/core/tee/tadb.o
      CC      out/arm-plat-k3/core/tee/socket.o
      CC      out/arm-plat-k3/core/tee/tee_ta_enc_manager.o
      CC      out/arm-plat-k3/core/tee/tee_fs_key_manager.o
      CC      out/arm-plat-k3/core/tee/tee_ree_fs.o
      CC      out/arm-plat-k3/core/tee/fs_dirfile.o
      CC      out/arm-plat-k3/core/tee/fs_htree.o
      CC      out/arm-plat-k3/core/tee/tee_fs_rpc.o
      CC      out/arm-plat-k3/core/tee/tee_pobj.o
      CC      out/arm-plat-k3/core/tee/uuid.o
      CC      out/arm-plat-k3/core/tee/tee_supp_plugin_rpc.o
      GEN     out/arm-plat-k3/core/ta_pub_key.c
      CC      out/arm-plat-k3/core/ta_pub_key.o
      AS      out/arm-plat-k3/ldelf/start_a64.o
      AS      out/arm-plat-k3/ldelf/syscalls_a64.o
      AS      out/arm-plat-k3/ldelf/tlsdesc_rel_a64.o
      CC      out/arm-plat-k3/ldelf/dl.o
      CC      out/arm-plat-k3/ldelf/main.o
      CC      out/arm-plat-k3/ldelf/sys.o
      CC      out/arm-plat-k3/ldelf/ta_elf.o
      CC      out/arm-plat-k3/ldelf/ta_elf_rel.o
      CC      out/arm-plat-k3/ldelf-lib/libunw/unwind_arm32.o
      CC      out/arm-plat-k3/ldelf-lib/libunw/unwind_arm64.o
      AR      out/arm-plat-k3/ldelf-lib/libunw/libunw.a
      CC      out/arm-plat-k3/ldelf-lib/libutee/abort.o
      CC      out/arm-plat-k3/ldelf-lib/libutee/assert.o
      CC      out/arm-plat-k3/ldelf-lib/libutee/tee_uuid_from_str.o
      CC      out/arm-plat-k3/ldelf-lib/libutee/trace_ext.o
      AS      out/arm-plat-k3/ldelf-lib/libutee/arch/arm/utee_syscalls_a64.o
      AR      out/arm-plat-k3/ldelf-lib/libutee/libutee.a
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/bget_malloc.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/isdigit.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/isxdigit.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/qsort.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/sprintf.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/snprintf.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/stack_check.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/strdup.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/strndup.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/tolower.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/isalpha.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/isspace.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/isupper.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/isalnum.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/iscntrl.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/isgraph.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/islower.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/isprint.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/ispunct.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/toupper.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/abs.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/bcmp.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/memchr.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/memcmp.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/memcpy.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/memmove.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/memset.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/strchr.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/strcmp.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/strcpy.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/strlen.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/strncmp.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/strncpy.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/strnlen.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/strrchr.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/strstr.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/strtoul.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/isoc/newlib/strtok_r.o
      AS      out/arm-plat-k3/ldelf-lib/libutils/isoc/arch/arm/setjmp_a64.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/ext/snprintk.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/ext/strlcat.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/ext/strlcpy.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/ext/trace.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/ext/mempool.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/ext/nex_strdup.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/ext/consttime_memcmp.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/ext/memzero_explicit.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/ext/fault_mitigation.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/ext/qsort_helpers.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/ext/array.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/ext/base64.o
      AS      out/arm-plat-k3/ldelf-lib/libutils/ext/arch/arm/atomic_a64.o
      CC      out/arm-plat-k3/ldelf-lib/libutils/ext/arch/arm/auxval.o
      AR      out/arm-plat-k3/ldelf-lib/libutils/libutils.a
      CPP     out/arm-plat-k3/ldelf/ldelf.lds
      LD      out/arm-plat-k3/ldelf/ldelf.elf
    /export/home/jsava/ti-processor-sdk-linux-am62pxx-evm-11.00.09.04/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/aarch64-oe-linux/aarch64-oe-linux-ld.bfd: cannot find libgcc.a: No such file or directory
    make: *** [ldelf/link.mk:60: out/arm-plat-k3/ldelf/ldelf.elf] Error 1
    jsava@laptop-183:/export/home/jsava/u-boot-ti/op-tee_temp/optee_os$ find /export/home/jsava/ti-processor-sdk-linux-am62pxx-evm-11.00.09.04/linux-devkit/ -name libgcc.a
    /export/home/jsava/ti-processor-sdk-linux-am62pxx-evm-11.00.09.04/linux-devkit/sysroots/aarch64-oe-linux/usr/lib/aarch64-oe-linux/13.3.0/libgcc.a
    /export/home/jsava/ti-processor-sdk-linux-am62pxx-evm-11.00.09.04/linux-devkit/sysroots/x86_64-arago-linux/usr/lib/x86_64-arago-linux/13.3.0/libgcc.a