IFX EXTENSIONS Partition
Overview
The IFX EXTENSIONS partition provides a dedicated secure partition for Infineon-specific secure services that are not part of the TF-M core service set. It is intended to be an extensible integration point where platform features can be exposed through a stable PSA-style entry point.
At the moment, the partition implements one service endpoint that dispatches
to MTB SRF handling logic when IFX_MTB_SRF is enabled.
What The Partition Is For
This partition exists to:
Host Infineon extension services in a single secure boundary.
Provide a stable Secure Function (SFN) based PSA service endpoint to non-secure clients.
Keep Infineon feature integration out of TF-M core directories, while still following TF-M manifest and partition-generation flows.
Offer an extensible place to add future IFX-specific service operations.
Services Provided
Service definition:
Service name:
IFX_EXT_SP_SERVICESID:
0x00001001Model: SFN (stateless)
Non-secure clients: allowed
Connection based: no
Current service operation:
API selector
IFX_EXT_SP_API_ID_MTB_SRF(value1001) routes calls to MTB SRF request handling.
Client-facing API:
ifx_mtb_srf_call(...)inpartitions/ifx_ext_sp/interface/src/ifx_ext_sp_api.cperformspsa_call(IFX_EXT_SP_SERVICE_HANDLE, IFX_EXT_SP_API_ID_MTB_SRF, ...).Public declarations are in
partitions/ifx_ext_sp/interface/include/ifx_ext_sp_api.handpartitions/ifx_ext_sp/interface/include/ifx_ext_sp_defs.h.
Design Overview
High-level flow:
A client calls
ifx_mtb_srf_call(...).The call reaches
ifx_ext_sp_service_sfn(const psa_msg_t *msg).The SFN dispatches by
msg->type.For MTB SRF requests,
ifx_mtb_srf_handler(...)is executed.The handler retrieves original IO vectors via
ifx_call_platform_original_iovec(...)and executesmtb_srf_request_execute(...).
Key implementation behavior:
ifx_ext_sp_init()performs partition initialization and optionally registers a user SRF module.mtb_srf_memory_validate(...)is overridden whenIFX_MTB_SRFis enabled. The partition relies on PSA call-time memory checks and copies vector descriptors into SRF-owned buffers.Unsupported operation IDs return
PSA_ERROR_NOT_SUPPORTED.
Security And Access Model
The partition is declared as
PSA-ROT.Calls arrive through TF-M PSA service mediation.
The implementation expects PSA to enforce caller memory access constraints before secure service code executes.
The service is currently accessible to non-secure clients by manifest policy.
Configuration
Required configuration:
IFX_EXT_SP=ONto include the partition.
Optional configuration:
IFX_EXT_SP_STACK_SIZEconfigures stack size (default:0x600).IFX_EXT_SP_REGISTER_USER_SRF_MODULEenables registration of a user SRF module at init time.If user SRF module registration is enabled, the build expects
ifx_user_srf_module.c(same directory as partitionCMakeLists.txt) to provideifx_user_srf_module.
TF-M Extras integration knobs:
TFM_EXTRA_MANIFEST_LIST_FILES:<tf-m-extras-repo>/partitions/ifx_ext_sp/ifx_ext_sp_manifest_list.yamlTFM_EXTRA_PARTITION_PATHS:<tf-m-extras-repo>/partitions/ifx_ext_sp
Code Structure
Core partition code:
partitions/ifx_ext_sp/ifx_ext_sp_mngr.cpartitions/ifx_ext_sp/ifx_ext_sp.yaml
Interface code:
partitions/ifx_ext_sp/interface/include/ifx_ext_sp_api.hpartitions/ifx_ext_sp/interface/include/ifx_ext_sp_defs.hpartitions/ifx_ext_sp/interface/src/ifx_ext_sp_api.c
Manifest list files:
partitions/ifx_ext_sp/ifx_ext_sp_manifest_list.yaml
Design Notes And Limitations
The partition currently exposes one operation (MTB SRF dispatch).
When
IFX_MTB_SRFis disabled, MTB SRF requests returnPSA_ERROR_NOT_SUPPORTED.The service-dispatch structure is intentionally simple so additional IFX operations can be added by extending
ifx_ext_sp_service_sfn(...)and the public API identifiers.
SPDX-License-Identifier: BSD-3-Clause
SPDX-FileCopyrightText: Copyright The TrustedFirmware-M Contributors