鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

概述

BIOS采用统一的接口与协议实现对组件的管理,SMC(Satellite Manager Controller)用于智能组件管理,具有以下特点:

  • 采用命令+响应的方式交互数据
  • 通信容量大
  • 采用Local bus作为底层链路,链路设计简单,节约IO资源
  • 整个传输过程自带CRC校验,数据传输可靠

一次完整的读取流程包括读取请求和读取响应两个部分,如表1表2所示。两个部分必须配套使用,中间不能穿插其他命令。

表1 SMC读取时序

字段

OpCode1

OpCode2

Parameter1

Parameter2

Set action

Set status busy

Length

DATA1

DATAN

Set status complet

Master Read

clear lock

偏移地址

0x04

0x05

0x06

0x07

0x02

0x01

0x08

0x09-0xff

0x01

-

0x00

加粗字段是CPLD的响应信息,不用CPU下发该部分字段;其它字段需要CPU下发。

  • Master读取时序步骤
    1. 读锁寄存器,检测是否被锁。
    2. 如果未锁,则读状态寄存器,检测是否idle/complet。
    3. 如果状态idle/complet,在写入4个opcode后,再写操作寄存器通知CPLD解析命令。
    4. 检测总线状态。检测到complet之后,从数据区读取数据。
    5. 清锁寄存器,释放控制权。
  • Slave读取时序步骤
    1. CPLD检测we上升沿,认为存在写操作,读取操作寄存器,收到操作指令,写状态寄存器为busy。
    2. 读取opcode。
    3. 根据opcode将对应数据写入数据区后,写状态寄存器为complet,等待BIOS读取。
表2 SMC写入时序

字段

OpCode1

OpCode2

Parameter1

Parameter2

Length

DATA1

DATAN

Set action

Set status busy

Slave Read

Set status complet

偏移地址

0x04

0x05

0x06

0x07

0x08

0x09-0xff

0x02

0x01

-

0x01

加粗字段是CPLD的响应信息,不用CPU下发该部分字段;其它字段需要CPU下发。

  • Master写入时序步骤
    1. 读锁寄存器,检测是否被锁。
    2. 如果未锁,则读状态寄存器,检测是否idle/complet。
    3. 如果状态idle/complet,在写入4个opcode + data后,再写操作寄存器通知CPLD解析命令。
  • Slave写入时序步骤
    1. CPLD检测we上升沿,认为存在写操作,读取操作寄存器,收到操作指令,写状态寄存器为busy。
    2. 读取opcode。
    3. 解析opcode,读取数据处理。
    4. 写状态寄存器为complet。

数据字段描述定义了读取流程的详细信息,如表3所示。

表3 数据字段信息

字段

地址

描述

属性

Control Register Address

0x00

锁寄存器:CPLD不操作,提供给BIOS写,用来防止BIOS进程抢占总线。

BIOS:RW

CPLD:NA

0x01

状态寄存器:BIOS只读,CPLD读写。

0h:命令执行成功

1h:命令不支持

2h:busy(CPLD在读写数据)

3h:参数错误

4h:内部错误(CRC错误)

BIOS:RO

CPLD:RW

0x02

操作寄存器:BIOS写,CPLD读清。

BIOS:WO

CPLD:RC

0x03

自愈控制器

BIOS:WO

CPLD:RC

Opcode Register Address

0x04

Opcode1

BIOS:RW

CPLD:RO

0x05

Opcode2

0x06

Parameter1

0x07

Parameter2

Data Register Address

0x08

Length

BIOS:RW

CPLD:RW

0x09

Data1-DataN(数据最后加一字节CRC校验结果)

SMC使用命令字进行管脚功能配置,命令字的格式描述如表4所示。

表4 SMC命令字信息

Function

Command

MS

RW

Param1

Param2

功能定义如下:

0:获取系统基本信息

1:获取/设置CPU信息

2:获取/设置PCH信息

3:获取/设置电源管理信息

4:获取/设置系统告警信息

5:获取/设置杂项功能配置

命令字,见通信命令字定义

0:多个读取

1:单个读取

0:写入

1:读取

1…N:获取/设置第N个设备信息

1…N:获取/设置第N个设备信息

协议定义了位读、块读、位写和块写4种操作模式:

  • 位读:M/S=1;RW=1;Param1=要读取的设备/对象序号; 返回单个对象的数据。
  • 位写:M/S=1;RW=0;Param1=要读取的设备/对象序号。

Function、Command、MS和RW组合在一起为Opcode,定义如图1所示。

图1 Opcode定义

具体的SMC命令字信息参考表3-1/表3-2/表3-3/表3-4/表3-5