UCSI

简介
UCSI(USB Type-C connector system software interface)简单点说就是USB口和Type-c口的软件接口。OS需要控制USB、Type-C去充电,传递数据等行为时需要控制硬件设备进行异步通信。
这里包括了提供软件接口的OPM,和提供固件,硬件设备的PPM,以及提供逻辑运行的LPM

Data Struct
UCSI在内存上定义的数据结构是在OPM和PPM之间传递信息的,并且数据都是单项传递,只能是OPM->PPM或者PPM->OPM,两者传输过程中接收方只能读取,不能修改。可以在UCSI Spec中看到数据的结构表

Connector
一般情况下分为两种模式,一种是OS对底层type-C,USB的控制需要传输数据,给设备充电等,另一种是EC发起比如PD端口有变化,设备拔插等情况
OPM->PPM
OS主动发起,需要传递给PPM信息那么就需要使用Control 和 Messageout。
Control是用来给PPM发送CMD的

Messageout是用来给PPM发生数据结构的内容的,相当于类似Buffer的功能
PPM->OSM
PPM给OS发送数据是使用CCI 和MessageIn。CCI是PPM传递给OS一种数据结构方式,以下是CCI的Data Struct

同样MessageIn和MessgaeOut类似相当于Buffer的功能

OS->EC
首先OS发送CMD通过前面介绍的Control和MessageOut给Bios,Bios通过SP_CMD来传递给EC

Bios通过将CMD写入到ACPI当中作为和EC的交互。

EC->OS
EC通过CCI0-CCI3 和MessgageIn 处理UCSI信息并发给OS,EC收到UCSI的Data后进行处理

处理完后发给Bios Q_event 0x22

OS获取Ec的CCI0-CCI3 和MGI

这里在Bios上的主要处理内容是在usbtypec.asl

Debug 模式下记录下UCSI
Debug模式设置,有以下两个分别置1,重新编译烧录

当把U盘的type-c口插到PC上时debug记录下,简单介绍一下一般情况下的OS和EC交互流程;
首先是EC发送给Bios _Q22 20cmd 通信结束(之前残留下的信号,一般第一次开始是没有的)
OS发送给EC CMD 和MGO(Control和MessageOut)
EC需要时间处理(Ec busy Ec busy :CCI0-CCI3:0x0 0x0 0x0 0x10)
EC处理完后发给Bios Q_event 0x22告诉OS我已经处理结束了赶快给老子过来拿(0x80 CMD)
Bios获得到EC的的MGI给OS
OS发送CMD ACK_CC_CCI给EC(EC busy)
EC发送给Bios Q_Event 0x22 (CCI0-CCI3:0x0 0x0 0x0 0x20)结束

也有一些特殊的流程是不遵循这种交互模式,比如PPM_Reset就是OS一直Polling,等待EC完成。

Bios 下的UCSI相关推荐

  1. 服务器系统bios,服务器bios下查看系统配置

    服务器bios下查看系统配置 内容精选 换一换 为加强对系统数据的容灾管理,云堡垒机支持配置日志备份,提高审计数据安全性和系统可扩展性.本小节主要介绍如何在系统配置FTP/SFTP服务器参数,将日志远 ...

  2. 计算机组装配置(各品牌主板BIOS下U盘优先启动热键一览表)

    各品牌主板BIOS下U盘优先启动热键一览表 一.电脑如何进入BIOS?在BIOS模式下USB的启动热键是什么?用户可以根据不同的电脑型号,选择相应的热键,直接启动一键U盘装系统工具设置(重要提示:在选 ...

  3. bios下能看到硬盘,进入系统看不到的解决方法

    bios下能看到硬盘,进入系统看不到的解决方法 参考文章: (1)bios下能看到硬盘,进入系统看不到的解决方法 (2)https://www.cnblogs.com/simadi/p/1063616 ...

  4. EFI BIOS下的磁盘管理工具Diskpart,Efifmt与Efichk(转)

    Diskpart.efi GPT分区格式工具下载: EfiDiskUtility v1.3(X64).rar http://pan.baidu.com/share/link?shareid=17467 ...

  5. DSP在SYS/BIOS下串口(UART)接收之环形队列

    众所周知串口收/发数据是以字节为单位的位传输通信协议. 当串口接收数据按固定数据长度接收:则可能会由于传输过程中出现丢数据,发送端少发数据或多发数据导致接收错位无法正确获取数据. 为了解决数据接收错位 ...

  6. 服务器在bios下也自动关机,十大常见的内存BIOS故障现象及解决方案

    内存是电脑运行时的工作"仓库",内存故障在电脑故障中占有相当大的比例.而且内存故障有时比较隐蔽,判断比较麻烦.本位就为大家介绍一些常见的内存BIOS故障现象及如何解决的方法.希望能 ...

  7. 服务器智能阵列,月亮雨小组的天地-HPE ProLiant Gen10 服务器智能阵列卡S100i SR Gen10 BIOS下开启阵列功能配置阵列并安装win2016系统...

    一.开启S100i阵列功能 1.开机自检点击F9进入系统实用工具界面,选择系统配置->BIOS平台配置->启动选项,确认是UEFI启动模式. 2.进入系统配置->BIOS平台配置-& ...

  8. SATA硬盘在BIOS下的设法

    SATA和PATA硬盘和平共处的关键在于其占用的IDE通道位置不能冲突.还要注意DOS/Win98/WinME系统只能支持一共4个IDE设备,而Win2000/XP/2003系统可一共支持6个设备(注 ...

  9. HP工作站如何在BIOS下开启、关闭安全芯片

    开机连续点击F10进入到BIOS,选择"Security"-"Device security"按回车键进入. 2将"Embedded Security ...

最新文章

  1. mysql字段默认值不生效的问题解决(上)
  2. NetBeans工具学习之道:NetBeans的(默认)快捷键
  3. hdu 4292 Food 最大流
  4. 行向量,列向量,行主序矩阵,列主序矩阵
  5. python字符串(连载二)|字符串内置函数原来还可以这么玩!
  6. 计算机精品视频教程合集
  7. 计算机网络教室管理制度
  8. win10禁用笔记本键盘
  9. 2010年JNCIA-FWV、JNCIS-FWV教学视频
  10. 0704函数的递归调用
  11. 《Spring实战》读书笔记-第6章 渲染Web视图
  12. ArcGIS重装之旧软件卸不干净的问题
  13. 开源免费的私有聊天软件 Akaxin
  14. 一个产品从0到1的完整流程
  15. Kubernetes容器云平台技术方案
  16. 数格子算面积的方法_方格法计算面积 [格子与面积]
  17. 读我们的学科——计算机专业学习浅谈
  18. 自勉,持续学习,docker入门
  19. mysql 漏洞排查_MySQL最新漏洞分析_MySQL
  20. java怎么给pr 上字幕_如何给Final Cut Pro快速加字幕(PR也适用)

热门文章

  1. 一元三次方程高精度实数根(C语言)
  2. 《惢客创业日记》2022.03.01-31(周二)二月份的总结和三月份的计划
  3. XCTF_MOBILE17_Android2.0
  4. SAP FI 系列 (013) - 会计凭证的配置
  5. 独立开发者一个前端库月入2万刀 AMA
  6. 使用Deepxde求解微分方程
  7. 【第37天】斐波那契数列与爬楼梯 | 迭代的鼻祖,递推与记忆化
  8. [图] AOE网-关键路径|关键活动-原理、手算举例、C语言实现
  9. LaTeX环境介绍与安装
  10. 英语论文写作技巧-3(字的使用中特别注意事项)