Thanks for the reply.
I'll try to explain it in more detail.
I checked that the auto-generated load_info_ns_agent_mailobx.c contains the struct partition_tfm_ns_mailbox_agent_load_info_t tfm_ns_mailbox_agent_load and the corresponding struct ns_agent_mailbox_entry.
We also checked that the tfm_s binary image contains tfm_ns_mailbox_agent_load.
However, when I debug tfm_s using trace32, I can't find the point where ns_agent_mailbox_entry is called.
I'm wondering if there is a TFM component I'm missing or something I can refer to.
__attribute__((used, section(".part_load_priority_low"))) = { .load_info = { .psa_ff_ver = 0x0101 | PARTITION_INFO_MAGIC, .pid = TFM_NS_MAILBOX_AGENT, .flags = 0 | PARTITION_MODEL_IPC | PARTITION_MODEL_PSA_ROT | PARTITION_NS_AGENT_MB | PARTITION_PRI_LOW, .entry = ENTRY_TO_POSITION(ns_agent_mailbox_entry), .stack_size = 0x800, .heap_size = 0, .ndeps = TFM_NS_MAILBOX_AGENT_NDEPS, .nservices = TFM_NS_MAILBOX_AGENT_NSERVS, .nassets = TFM_NS_MAILBOX_AGENT_NASSETS, .nirqs = TFM_NS_MAILBOX_AGENT_NIRQS, }, .stack_addr = (uintptr_t)tfm_ns_mailbox_agent_stack, .heap_addr = 0, #if TFM_LVL == 3 .assets = { { .mem.start = (uintptr_t)®ION_NAME(Image$$, PT_TFM_NS_MAILBOX_AGENT_PRIVATE, _DATA_START$$Base), .mem.limit = (uintptr_t)®ION_NAME(Image$$, PT_TFM_NS_MAILBOX_AGENT_PRIVATE, _DATA_END$$Base), .attr = ASSET_ATTR_READ_WRITE, }, }, #else #endif .irqs = { { .init = mailbox_irq_init, .flih_func = 0, .pid = TFM_NS_MAILBOX_AGENT, .source = MAILBOX_IRQ, .signal = MAILBOX_SIGNAL, }, }, };