【SOC】SMC 中的 function identifier 和 SCMI中 protocol_id 的区别

发布时间:2026/9/14 16:45:19

【SOC】SMC 中的 function identifier 和 SCMI中 protocol_id 的区别 SMC Function ID 和 SCMI Protocol ID 虽然都带“ID”但它们的性质、格式和作用范围完全不同。简单来说它们是两张不同坐标系里独立编制的“门牌号”SMC Function ID门牌号是开启“SMC这一扇大门”的钥匙。由 SMCCC (DEN0028)规范 定义它是一个32位数值其中的 OEN字段 标识了服务提供者。它的核心作用是路由告诉EL3的Secure Monitor固件该SMC调用属于哪类服务ARM标准服务、SiP服务还是OEM服务。SCMI Protocol ID房间号是在SCMI这一扇门内具体管理特定类型硬件资源的“协议模块”编号。由 SCMI (DEN0056)规范定义它是一个8位数值。它的核心作用是内部寻址在SCMI消息内部进一步指定当前要操作的目标比如电源管理0x11还是时钟0x14。 SMC Function ID通往安全世界的大门SMC Function ID是ARM定义的“SMC调用约定” (SMCCC, DEN0028) 中的核心概念。AP通过执行SMC指令并传递这个32位的ID来请求EL3的安全固件执行某项服务。寻址方式基于 OEN (Owner Entity Number)功能服务路由将调用指向对应的服务提供方ARM, SiP, OEM等格式[31]调用类型 [30]调用约定 [29:24] OEN [15:0]功能号示例0x82000001 (OEN0b10, SiP功能), 0x84000001 (OEN0b11, OEM功能)规范SMCCC (DEN0028)[reference:10]在实现上SMC Function ID由AP在SMC指令的参数通常是x0寄存器中传递。通过OEN区分调用目标例如OEN0x02是SiP服务OEN0x03是OEM服务使得EL3固件能将后续处理交给对应的服务模块。而SCMI是一个上层协议其实现通常与SMC调用绑定例如在Devicetree中定义一个arm,smc-id 0x82004000的SMC Function ID作为SCMI消息传输的“通道触发”。 SCMI Protocol ID系统管理的功能模块SCMI Protocol ID是ARM定义的“系统控制与管理接口” (SCMI, DEN0056) 协议中的概念。它标识了SCMI协议框架内部的一组功能集合用于管理特定类型的系统资源。寻址方式基于 Protocol ID功能功能寻址在SCMI框架内指定要操作的资源类型格式8位整数十六进制示例0x11 (电源域管理), 0x14 (时钟管理), 0x16 (复位域管理)规范SCMI (DEN0056)[reference:15]在实现上SCMI Protocol ID由AP在SCMI消息的头部中传递。它用于指定本次SCMI操作要管理的资源类型。然后通过Message ID消息ID进一步指定具体的操作比如POWER_STATE_SET是设置电源状态。SCMI通常作为一个上层服务可以通过多种传输方式实现。当使用SMC作为传输层时FW会解析SCMI消息内的Protocol ID来调用相应的底层驱动。SCMI 的消息格式: Message_Header (32bit) Payload32bit x NMessage_Header 内容bits[31:28] reservedmust be zerobits[27:18] tokenbits[17:10] protocol_idbits[9:8] message_typebits[7:0] message_id 从整栋楼到房间理解二者的层级关系如果我们将整个系统抽象为一栋大楼SMC Function ID 更像是进入不同楼层如SIP/OEM服务的大门钥匙。SCMI Protocol ID 则是SCMI服务这一层楼内的房间门牌号。 实际案例与检查清单通过一个具体的使用场景可以帮助理解它们的协作流程配置设备树在arm,scmi-smc节点中定义arm,smc-idSMC Function ID。这相当于在房子上安装了一个特定的门。发起调用AP执行SMC指令使用该arm,smc-id进入“SCMI服务”这扇门。进入后通过共享内存传递的SCMI消息中携带Protocol ID例如0x14表示要管理时钟。服务处理EL3中的SCMI服务固件如TF-A接收到请求。它首先根据arm,smc-id路由到SCMI处理程序然后解析出SCMI消息中的Protocol ID和Message ID最终调用时钟驱动程序来完成操作。这是典型的“共享内存 门铃中断”的传输模式。代码分析在SCP-firmware的smc_transport.c模块中smc_id用于注册SMC处理程序arm_smccc_smc这在运行时起到服务路由的作用。而scmi_power_domain.c模块则负责解析消息中的Protocol ID (0x11) 并进行功能寻址。SMC 只负责解决“如何将请求送达EL3”的路由问题 Function ID使用SMC 调用时 两端的 function id 要一致两个ID的层次和职责截然不同你可以通过以下清单来帮助判断和理解特性 SMC Function ID SCMI Protocol ID主要职责 服务路由 功能寻址定义规范 SMCCC (DEN0028) SCMI (DEN0056)所在位置 SMC指令参数 SCMI消息头部值/范围 32位由OEN字段分类 8位例如 0x11, 0x14
延伸阅读

更多相关文章

2026/9/14 16:43:17

自定义接口设计实战:从契约建模到跨平台落地

1. 项目概述:为什么“实现自定义接口”不是写个空壳那么简单“Implementing custom interfaces”这个标题乍看像教科书里的章节名,但在我带过的27个工业级软件项目里,它从来不是“定义几个方法签名”就能翻篇的事。它实际指向的是&#xff1a…

2026/9/13 6:56:34

无服务器DevOps实践指南:架构设计与生产运维

1. 无服务器DevOps的核心价值解析无服务器架构正在重塑现代DevOps实践的面貌。作为云计算演进的产物,无服务器技术将基础设施管理责任完全转移给云服务商,使开发团队能够专注于业务逻辑的实现。这种模式下,传统DevOps中的"Ops"部分…

2026/9/12 9:29:26

C++视觉框架设计:从算法模块化到可视化二次开发实战

1. 项目概述:一个面向二次开发的C视觉框架在工业自动化、质量检测或者机器人引导这些领域,搞视觉应用开发的朋友们,估计都经历过一个挺头疼的阶段:项目需求千变万化,但底层算法和上层界面每次都得从头搭。用OpenCV写算…

2026/9/14 16:45:08

描述性表达:从观察到呈现的核心能力训练

编辑部的老同事退休前跟我说过一句话:判断一个写作者有没有前途,不用看他的华彩段落,就看他能不能在一条平淡无奇的消息里,写出让人愿意多读一遍的东西。这句话我记了很多年,后来自己做内容、带人改稿、评审项目复盘报…

2026/9/14 16:45:08

由夯到拉:17款编程Agent平台深度评测与应用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/14 16:45:08

深度学习入门:数据预处理与张量线性代数实战指南

1. 为什么第二章节值得反复读《动手学深度学习》这本书我完整啃过两遍,如果说后面那些CNN、Transformer、优化算法是高楼大厦,那第二章就是整栋楼的地基和承重墙。很多初学者急着去看卷积、看注意力机制,结果反手就被维度不匹配、数据没清洗、…

2026/9/14 16:45:08

股东积极主义:从被动投资到主动干预的策略解析

1. 股东积极主义概述:从被动投资到主动干预托马斯罗恩(Thomas Loeb)这个名字在华尔街投资圈里代表着一种特殊的存在——他不是传统意义上的基金经理,而是一位典型的"股东积极主义者"(Activist Investor&…

2026/9/14 16:45:08

S7-200 SMART与V90伺服三轴运动控制系统设计与调试深度复盘

开头上个月刚交付一套三轴定位设备,控制核心是西门子S7-200 SMART,搭配三台西门子V90伺服,外加一块SMART LINE触摸屏做操作界面。客户现场验收的时候,指着程序里密密麻麻的中文注释和IO表说:这套程序你们做得很规范&am…

2026/9/14 16:40:08

基于大数据的B站热门视频数据分析系统设计与实现

每年毕业季,我都会收到好几条几乎一模一样的私信:想做大数据方向的毕设,想要“有源码、有论文、能演示、还不烂大街”的题目。说实话,这种需求听起来贪心,但B站热门视频数据分析这个方向,几乎把所有条件都占全了——数据是公开的、平台自带热度话题属性、…

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/14 0:03:22

KCF目标跟踪算法与OTB工程实现:毕业设计实战解析

简介:这是一份基于KCF核相关滤波算法、融合尺度池与抗遮挡处理的目标检测跟踪MATLAB完整源码,主要面向计算机相关专业准备毕业设计、课程设计或期末大作业的学生,也适合需要项目实战练习的初学者。源码在OTB数据集上完成验证,能够…

2026/9/14 0:03:22

语音情感识别实战:Keras实现LSTM、CNN、SVM与MLP多模型对比

简介:面向语音情感识别入门与进阶开发者,这份基于Keras的项目源码完整实现了LSTM、CNN、SVM、MLP四种模型,兼容Python3.8与Keras/TensorFlow2环境。压缩包内含49个文件,大小约70.31MB,主体包括Python脚本、yaml/json配…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码