# SMC 调用

Source: [https://docs.qualcomm.com/doc/80-70015-11SC/topic/smcinvoke.html](https://docs.qualcomm.com/doc/80-70015-11SC/topic/smcinvoke.html)

安全监视调用 (SMC) 用于向 Linux 客户端公开在 Qualcomm TEE 中实现的服务和接口。它向 Qualcomm TEE 提供有关请求进程的标识信息。

SMC 调用是一个面向对象、基于功能的框架，它支持 Linux 客户端、TrustZone 和 TrustZone 应用程序之间的通信，这些应用程序使用迷你内核 (MINK) 调用对象。

在 SMC 调用过程中，涉及以下对象：

Table : 对象 – SMC 调用

| 对象 | 所有者执行环境 | 说明 |
| --- | --- | --- |
| 对端 | TrustZone | Linux 通过调用的操作获取对端对象引用。例如，AppLoader，它是一个对端对象。 |
| 回调 | Linux | Linux 通过调用的操作将所需回调对象引用发送到 TrustZone，TrustZone 可以根据需要调用这些对象。 |
| 内存 | Linux | 这些内存对象可用于在 TrustZone 和 Linux 之间有效地共享大缓冲区。 |

下图显示了 SMC 调用体系结构：

![](data:image/jpeg;base64,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)

SMC 调用包含以下组件：

- Linux 内核：
    内核中的 SMC 调用驱动程序负责在 TrustZone 与 Linux 用户空间客户端之间传输用户空间请求。它公开以下输入/输出控件 (IOCTL)。

    - `SMCINVOKE_IOCTL_INVOKE_REQ`
    - `SMCINVOKE_IOCTL_ACCEPT_REQ`
    - `SMCINVOKE_IOCTL_SERVER_REQ`
    - `SMCINVOKE_IOCTL_ACK_LOCAL_OBJ`
- Linux 用户空间：
    用户空间中的 SMC 调用包括 `libminkdescriptor.so` 和 SSGTZD 后台程序。

Table : SMC 调用模块

| 模块 | 说明 |
| --- | --- |
| `SMCInvoke 客户端` | 此客户端通过 SMC 调用驱动程序与 Qualcomm TEE 中的受信任应用程序通信。 |
| `TA 客户端` | 此客户端通过 SMC 调用驱动程序与 TrustZone 应用程序通信。 |
| `Libminkdescriptor` | <ul class="ul" id="smcinvoke__ul_vjt_hyz_c1c"><br>                                <li class="li">该模块在用户空间客户端与内核之间架起一个桥梁。</li><br><br>                                <li class="li">使用 SMC 调用的客户端必须使用 <code class="ph codeph">libminkdescriptor</code> 与内核通信。</li><br><br>                                <li class="li"><code class="ph codeph">libminkdescriptor.so</code> 位于 <code class="ph codeph">/usr/lib/libminkdescriptor.so</code></li><br><br>                            </ul> |
| `SMCInvoke 驱动程序` | <ul class="ul" id="smcinvoke__ul_tnp_lyz_c1c"><br>                                <li class="li">Linux 内核中的驱动程序与应用程序客户端和 TrustZone 中的受信任应用程序进行通信。</li><br><br>                                <li class="li">SMC 调用驱动程序源代码位于 <code class="ph codeph">/kernel/drivers/soc/qcom/smcinvoke/smcinvoke.c</code>。</li><br><br>                            </ul> |

**Parent Topic:** [功能](https://docs.qualcomm.com/doc/80-70015-11SC/topic/features.html)

Last Published: Dec 03, 2024

[Previous Topic
存储加密](https://docs.qualcomm.com/bundle/publicresource/80-70015-11SC/topics/file-based-encryption.md) [Next Topic
访问控制](https://docs.qualcomm.com/bundle/publicresource/80-70015-11SC/topics/access-control.md)