【写在前面】飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。点击这里开始你的技术升级之旅吧

image.png

本文分享至飞腾开发者平台《飞腾平台固件规范》

1 前言

本规范适用于基于飞腾处理器的系统平台,提供了飞腾平台固件的基本要求。本规范适用于基于飞腾平台的服务器、桌面机等设备的规划、设计,可作为测试、选型及验收的依据。

2 定义与缩写

2.1 定义和术语

2.1.1 固件

固化到计算机中的非易失性存储器中的一组程序或软件,为计算机提供最基本的硬件初始化,还可能向上层软件提供底层硬件的访问接口或服务。

2.1.2 UEFI

统一可扩展固件接口(Unified Extensible Firmware Interface),是当前应用广泛的一种固件接口标准。

2.1.3 ACPI

高级配置与电源接口(Advanced Configuration and Power Interface),是当前应用广泛的一种固件接口标准,对系统资源进行描述,并提供电源管理等运行时服务。

2.1.4 BIOS

基本输入输出系统(Basic Input/Output System)是计算机中的一种固件,是操作系统和计算机平台硬件之间连接的一个桥梁,负责计算机开机时的硬件检测、设备初始化、操作系统引导并向操作系统提供服务接口。

2.1.5 SMBIOS

系统管理BIOS(System Management BIOS),是当前应用广泛的一种固件接口标准,以数据结构形式对系统资源进行描述。

2.1.6 BMC

基板管理控制器(Baseboard Management Controller),是部署于服务器主板上的具有独立供电、独立I/O接口的控制单元,具有独立网络端口,可被远程访问,可以实现远程监控服务器运行状态、远程电源管理、KVM over IP等功能。

2.1.7 EC

嵌入式控制器(Embedded
Controller),是部署在计算机平台上的控制单元,支持与处理器之间的通信接口,可以实现计算机的电源管理、外设管理、状态监控等功能。

2.1.8 PSPA

飞腾安全平台架构(Phytium Security Platform Architecture),是飞腾提出的面向安全处理器的软硬件规范。

2.1.9 RAID虚拟盘

使用RAID(Redundant Arrays of Independent Disks)技术组合的物理硬盘组称为RAID虚拟盘。

2.1.10 STMM

基于ARM架构的Standalone Management Mode服务。

2.1.11 PFDI

飞腾固件功耗管理控制派发接口。

2.1.12 SE

飞腾系统管理引擎。

2.1.13 RAS

可靠性(Reliability)、可用性(Availability)和可服务性(Serviceability)。

2.2 缩写

缩略语全称解释
A64A64AArch64使用的64位ARM指令集
APEIACPI Platform Error InterfaceACPI平台故障接口
ESRTEFI System Resource TableEFI系统资源表
PBFProcessor Base Firmware处理器基础固件
PSCIPower State Coordination Interface功耗状态协同接口
PSSIPhytium System Service Interface飞腾系统服务接口
RNGRandom Number Generator随机数生成器
SDEISoftware Delegated Exception Interface软件派发异常接口
SCPISystem Control and Power Interface系统控制和电源接口
SCMISystem Control and Management Interface系统控制和管理接口
SoLSerial Over LAN基于LAN之上的串口
SMCCCSMC Calling ConventionSMC调用约定
TCMTrusted Cryptography Module可信加密模块
IPMIIntelligent Platform Management Interface智能平台管理接口
ECEmbedded Controller嵌入式控制器
SMBIOSSystem Management BIOS系统管理BIOS
STMMStandalone Management Mode独立管理模式
PFDIPhytium Firmware Dispatch Interface飞腾固件功耗管理控制派发接口

3 固件框架

飞腾处理器系统中,固件视角下的系统软件栈如下图所示,图中虚线部分是可选项,根据处理器特性和用户需求选择性支持。

固件分为处理器基础固件(Processor Base Firmware,PBF)和系统固件(System Firmware)两层。如果处理器支持,处理器在执行片外固件前,首先执行存储在片内引导引导ROM(Phytium Boot ROM)中的代码。

image.png

飞腾处理器提供通用执行环境和可信执行环境,PBF负责两个环境的创建与管理。通用执行环境运行在Non-Secure态,可信执行环境运行在Secure态。

在基于飞腾处理器的计算机平台上,除了飞腾处理器,还可能有带外控制子系统和配套设备。比如,飞腾服务器平台可能有BMC,配套设备可能会使用飞腾套片。固件与带外控制子系统互相合作,共同完成计算机平台的管理。

飞腾平台固件基于PBF3.0架构,详细内容请参考《Processor Base Frimware接口规范》

4 固件接口

4.1 PBF

PBF负责处理器的基本初始化,并提供运行时服务。

  1. PBF运行在最高异常等级。
  2. PBF通过SMC机制,向上层软件提供运行时服务。
  3. PBF提供的服务兼容SMCCC规范。
  4. PBF提供PSCI服务。
  5. PBF提供飞腾平台特有的系统服务,接口遵循PSSI规范。
  6. PSSI服务包含PBF自身状态的查询。包括但不限于PBF版本号、PSSI接口版本号等。
  7. PSSI提供飞腾处理器芯片内相关部件的状态查询或配置功能。包括但不限于处理器核、内存控制器、PCIe控制器等。
  8. PBF提供功耗管理控制派发机制PFDI。

4.2 UEFI

  1. 系统固件兼容UEFI规范,支持2.9或更高版本。
  2. UEFI运行在non-secure EL2。
  3. 遵循UEFI规范,以UEFI配置表方式向操作系统或应用提供内存布局和内存属性信息。在同一个64K物理页面内的所有4K页面具有相同的页面属性,以支持OS使用64KB页表。
  4. UEFI应用必须是A64二进制格式。
  5. 设备的UEFI驱动集合中至少包含一个A64二进制格式的UEFI驱动。
  6. 提供实时时钟(RTC)服务,包括GetTime和SetTime。
  7. 可选:提供实时时钟唤醒服务,包括SetWakeupTime和GetWakeupTime。
  8. 提供系统电源控制服务ResetSystem,包括重启EfiResetCold、关机EfiResetShutdown。
  9. 支持非易失性变量的查询、设置服务,包括GetVariable、SetVariable和GetNextVariableName。
  10. 提供看门狗服务,包括SetWatchdogTimer。
  11. 可选:支持UEFI规范的Capsule更新机制:支持ESRT表,支持UpdateCasule和QueryCapsuleCapacities服务。
  12. 支持随机数生成协议。如果平台有随机数生成硬件模块,可以选择基于硬件模块生成随机数。如果是可信固件,随机数生成应满足可信要求。
  13. 提供ACPI接口,由RSDP指向ACPI表入口。
  14. 提供SMBIOS接口,采用SMBIOS_TABLE_GUID标识SMBIOS表,SMBIOS表对应的内存区域为EfiRuntimeServiceData类型。
  15. 支持设备树。

4.3 ACPI

  1. 兼容ACPI规范,支持6.3或更高版本。
  2. 支持ACPI HW-Reduced模型。
  3. ACPI表中的地址域是64位地址格式。
  4. 支持RSDP、XSDT、FADT、DSDT、SSDT、MADT、GTDT、DBG2、SPCR、MCFG、PPTT、IORT。
  5. 如果处理器支持NUMA架构,支持MHAT、SRAT和SLIT。
  6. 可选支持故障处理相关接口:BERT、EINJ、ERST、HEST、SDEI。
  7. 可选支持PCCT、SPMI、CPPC调频功能。
  8. 飞腾的厂商ACPI ID是“PHYT”,基于此来描述飞腾自研设备的_HID。
  9. ACPI定义块使用_HID标识设备,根据设备描述需要,选择支持_ADR、_CRS、_STA、_CCA等信息。

详细内容请参考《飞腾平台ACPI描述规范》

4.4 SMBIOS

  1. 兼容SMBIOS规范,支持3.6.0或更高版本。
  2. 支持Type 0、1、2、3、4、7、8、9、16、17、19、20、32、38、127等类型的表。
  3. 根据需要,选择性支持:Type 11、13、15、41、42等类型的表。
  4. SMBIOS表中,处理器描述信息符合飞腾描述规范。
  5. SMBIOS表中,厂商描述信息符合对应厂商描述规范。

参考《飞腾系统SMBIOS描述规范》

4.5 PSCI

  1. 从核引导遵循PSCI规范。
  2. ACPI FADT描述PSCI信息。
  3. ACPI MADT中的GICC结构描述所有处理器核的MPIDR。
  4. 支持PSCI_VERSION、CPU_ON、AFFINITY_INFO、SYSTEM_OFF、SYSTEM_RESET、PSCI_FEATURES。
  5. 支持CPU_SUSPEND、CPU_OFF,可选支持SYSTEM_SUSPEND。

5 固件功能

5.1 设备支持

5.1.1 CPU

  1. 能正确识别和初始化飞腾各款处理器。
  2. 在硬件支持的前提下,能打开和关闭处理器的相关特性。
  3. BIOS 能对处理器上连接出来的设备(包括但不限于 GPIO、SATA 控制器、USB 控制器、PCI/PCIE 设备和桥、I2C 控制器、Video 设备、Audio 设备、Ethernet 设备)进行正确的识别与初始化。
  4. 支持CPU频率的配置。
  5. 支持PCIE控制器的配置,包括使能/禁用状态、拆分模式、链路速率、均衡值。
  6. 支持CPU核使能/禁用配置。

5.1.2 内存

  1. 正确识别和初始化处理器支持的内存型号,包括内存模组和内存颗粒。
  2. BIOS对内存的初始化应基于JEDEC规范定义的SPD数据,SPD数据来源可以从内存条读取,也可以按SPD格式在代码中预设,以支持颗粒形式的内存。
  3. 基于内存的 SPD 信息或预设信息,显示内存信息,包括但不限于内存容量、频率、类型、Part Number等信息。
  4. 在硬件支持的前提下,支持用户对某些参数内存的配置,包括但不限于内存频率、ECC使能等。
  5. 内存工作频率默认初始化成CPU、内存共同支持且不高于BIOS配置界面设置的最高频率。

5.1.3 BIOS FLASH

根据处理器支持情况,支持SPI、QSPI接口Flash芯片。

5.1.4 存储设备

  1. 能正确识别和初始化不同接口或不同总线协议的存储设备,例如USB/SATA光驱,U盘,SD卡,EMMC,SATA硬盘,SSD硬盘,NVME硬盘,SAS盘,RAID虚拟盘等。
  2. 能从存储设备安装和引导操作系统。其中,安装源存储设备包括光驱、U盘;安装目标存储设备包括各种物理硬盘和RAID虚拟盘。

5.1.5 输入输出设备

  1. 支持串口控制台,包括输入与输出。
  2. 支持USB键盘和PS2键盘作为输入设备。
  3. 在硬件支持的前提下,支持常见显示接口的输出,包括VGA/HDMI/DVI/ DP等。

5.1.6 板卡

  1. 能正确的识别常见的PCIe板卡,包括SATA卡、网卡、Raid卡和显卡等。
  2. 板卡厂商需提供飞腾指令集的板卡UEFI驱动,驱动存放在板卡的EEPROM中,或提供给固件厂商包在固件中。
  3. 固件能从板卡EEPROM或BIOS
    Flash芯片中加载和运行板卡UEFI驱动,完成对板卡的初始化,并使板卡在固件阶段具备相应的功能。
  4. 对未提供相应指令集板卡驱动的外接板卡,能对其进行基本的资源分配,以满足操作系统识别、初始化、使用该板卡设备的需要。
  5. 支持各种PCI/PCIE转接卡和扩展卡,能正确的识别和初始化转接卡和扩展卡上连接的各种设备。

5.1.7 设备使能与关闭

  1. 在硬件支持的条件下,支持将处理器或桥片中设备或端口配置成使能或关闭。
  2. 未通过硬件连接出来的设备或端口默认为关闭状态。

5.1.8 飞腾套片

在硬件资源条件允许的情况下,支持以下功能:

  1. 能正确识别飞腾套片中的设备,SATA控制器、USB控制器和显卡。
  2. 支持套片固件信息的读取,包括版本号、固件编译时间。
  3. 支持所有USB控制器整体使能/禁用。
  4. 支持SATA Port使用状态读取,以及在用port的使能/禁用。
  5. 支持显卡使能/禁用。
  6. 支持套片中每个PCIE端口的使能/禁用。
  7. 支持UEFI下更新套片固件,更新过程中有UI界面显示更新进度以及更新完成提示。
  8. 支持PS2键盘。

5.2 一般功能

固件有明确的版本信息和编译生成时间信息。

5.3 启动OS

  1. 按UEFI规范启动OS。
  2. 与OS的接口遵循UEFI、ACPI、SMBIOS等接口规范,详见“4 固件接口”相关章节。
  3. 支持国内主要操作系统,比如:麒麟操作系统、UOS及其他主流国产操作系统的安装与引导。
  4. 支持分区格式:GPT分区、MBR分区。
  5. 支持常见的文件系统,包括但不限于FAT32、EXT2/4、ISO9660等。
  6. 支持多种引导方式,BIOS按启动项的先后顺序依次尝试启动项。启动项可参考项为网络(如PXE)、USB介质(如闪存盘、USB光驱等)、硬盘(如SAS、SATA等)等。

5.4 网络引导

BIOS应支持标准的PXE引导。

5.5 固件更新

  1. 固件更新包括对PBF、系统固件、设备固件的更新。
  2. 固件更新时,需确保新固件的合法性,包括固件版本合法性。
  3. 支持配置界面或者Shell命令行发起的固件升级。
  4. BIOS升级之前应有醒目提示信息,提示用户切勿断电或重启机器。
  5. 固件更新中需要有UI界面提示升级进度,且有更新完成的提示,从升级开始到升级完成应无需人工干预。
  6. 固件更新有安全性及合法性验证,通过验证才可以进行更新。
  7. 固件更新完成后,重启生效。
  8. 默认情况下,经用户设置的BIOS配置在BIOS升级后保持不变,升级前后版本不兼容时可例外。
  9. 可选:支持操作系统发起的固件更新。
  10. 可选:支持带外控制系统发起的固件更新,比如BMC。
  11. 可选:支持固件完整性探测,支持固件恢复机制。

5.6 开机界面

  1. 支持显卡显示功能。
  2. 开机画面按飞腾《PBF接口规范》要求,显示飞腾Logo。
  3. 显示固件界面操作提示信息,包括热键提示信息,比如进入配置界面、网络引导、启动项管理等。
  4. 开机中等待热键的时间可以配置。

5.7 诊断功能

在硬件支持的情况下,应记录的诊断信息包括但不限于,至少可以通过调试信息查询:

  1. 检测到无内存。
  2. 内存初始化成功或失败。
  3. 检测到无显示输出设备。
  4. 检测到无启动设备。

6 BIOS配置界面

  1. 配置界面应能显示系统的基本信息,包括但不限于BIOS信息、主板信息、处理器信息、内存信息、日期时间信息等。
  2. 配置界面显示语言支持中文或英文,中文应符合GB18030-2022,如果同时支持,则可在配置界面进行设置。
  3. 支持CPU高级功能配置,包括CPU频率、DDR频率、CORE使能状态、内存初始化模式、PCIE控制器配置、PBF打印等级配置等。
  4. 在硬件支持的情况下,支持以下功能:
    1) 端口开关控制:USB端口开关配置,SATA端口开关配置。
    2) 网络开关控制,PXE启动开关控制。
    3) 存在双显卡的情况下,可以进行显卡切换配置。
  5. 使用飞腾套片的情况下,支持以下功能:
    1)套片固件基本信息查询,包括固件版本、编译时间。
    2)套片USB控制器整体使能/禁用配置。
    3)套片SATA各个端口使用状态查询,以及使能/禁用配置。
    4)套片显卡使能/禁用配置。
    5)套片各个PCIE端口使能/禁用配置。
  6. 在有BMC的情况下,支持以下功能:
    1)BMC基本信息查询,包括设备ID、设备版本、固件版本、产品ID、厂商ID。
    2)BMC自检状态查询。
    3)掉电恢复策略配置。
    4)POST启动看门狗使能/禁用,看门狗超时时间配置及超时行为配置。
    5)OS启动看门狗使能/禁用,及看门狗超时时间配置及超时行为配置。
    6)BMC网络参数配置。
    7)BMC账户管理配置。
  7. 提供BIOS密码的设置和清除功能,密码分为管理员密码和用户密码。
  8. 提供启动项优先顺序配置。
  9. 提供恢复默认配置功能。
  10. 支持系统时间配置。
  11. 如果使用EC,支持以下功能:
    1)EC版本信息查询。
  12. 支持串口重定向参数配置。
  13. 支持USB控制器、USB设备、PCIE设备、硬盘等信息查询。
  14. 以上内容详情请参考《飞腾平台BIOS SETUP规范》。

7 支持带外控制子系统(可选)

本章内容是可选的,可以根据硬件支持情况及用户应用需求,选择性实现。

7.1 SE(系统管理引擎)

  1. BIOS能正确识别并初始化与片内系统控制器的通信接口。
  2. BIOS能按照片内系统控制器实现的接口协议与其通信,比如:SCMI、SCPI接口协议。

7.2 BMC

  1. BIOS能正确的检测和初始化与BMC的通信接口。
  2. 当处理器的串口连接到BMC时,支持基于该串口的串口终端。
  3. 当平台使用BMC中的显示设备作为主机系统的设备时,BIOS能正确的初始化BMC中的显示设备,使其在BIOS下具备相应的功能。
  4. BIOS能识别和初始化BMC端远程挂载的虚拟媒体设备,包括虚拟存储设备和虚拟输入设备(比如,键盘、鼠标)。
  5. BIOS能与BMC按照《飞腾平台BMC规范》进行通信。
  6. 支持IPMI协议。
  7. 支持BMC状态、BMC设备版本、BMC固件版本等信息的查询。
  8. 支持对BMC网络进行配置。
  9. 支持BMC通过IPMI协议选择系统引导设备。
  10. 基于IPMI协议向BMC发送故障事件。
  11. 可选支持:Redfish协议。

7.3 EC

  1. BIOS能正确的检测和初始化与EC的通信接口。
  2. BIOS能识别和初始化EC端挂载的设备,比如键盘、触摸板等。
  3. BIOS与EC之间的通信请参考《飞腾平台Embedded Controller接口规范》。

8 安全(可选)

本章内容是可选的,可以根据硬件支持情况及用户应用需求,选择性实现。

8.1 可信执行环境

  1. 可信执行环境遵循飞腾PSPA规范。
  2. 支持可信执行环境资源的调整,比如,内存容量、外设等。
  3. 支持内存数据的秘文读、写、存储。
  4. 支持资源的安全属性修改,比如,根据用户需求,配置某个外设的安全属性。
  5. 支持通用执行环境与可信支持环境之间的通信机制,比如SMC服务、中断、共享内存等。

8.2 安全引导

  1. 遵循UEFI规范的Secure Boot功能。
  2. 基于可信根构建安全启动流程。
  3. 采用逐级验签的方式,构建可信启动链。
  4. 对新导入的重要代码、数据进行延签,验证其合法性。
  5. 在硬件支持的前提下,支持验签相关算法的硬件加速。
  6. 支持对第三方模块、驱动或应用的证书进行注册和删除。

8.3 可信模块

在平台具有相应硬件的前提下, BIOS需提供TCM等可信模块功能的支持:

  1. 自动识别和初始化可信模块。
  2. 支持可信模块功能的打开与关闭。
  3. 在用户授权控制下,支持可信模块数据的清除或重置。
  4. 基于可信模块,实现对关键硬件和核心软件的完整性度量。关键硬件包括硬盘、显卡等;核心软件包括引导程序、重要配置文件以及用户配置列表中的文件。
  5. 支持可信芯片中可信预期值的更新。
  6. 如果完整性度量发现异常,固件发出警告、终止启动或者由管理员更新可信预期值或进行其他相关配置。

8.4 固件密码

  1. 支持管理员密码和用户密码两种密码,两种密码分别设置,彼此独立。
  2. 设置密码后,必须通过密码验证后,才能进行由密码控制的相关操作。
  3. 密码以密文方式存储。
  4. 用户只能修改不得清除用户密码。管理员可以清除或修改用户密码。

8.5 飞腾管理模式MM

  1. 可选飞腾管理模式MM框架,参考《飞腾管理模式(MM)接口规范》
  2. 支持安全态Variable操作。
  3. 支持安全态固件升级功能。
  4. RAS。

9 功耗管理(可选)

本章内容是可选的,可以根据硬件支持情况及用户应用需求,选择性实现。

  1. BIOS提供遵循ACPI、PSCI等规范的功耗管理接口。
  2. BIOS支持电源管理模式中的S0,S5模式。
  3. 在硬件平台支持的情况下,BIOS需满足以下电源管理要求:
    1) 支持S3模式。
    2)超时唤醒功能和网络唤醒功能。
    3)支持设备功耗状态的切换,比如,处理器核动态调频、调压。
    4)支持设备的关断,比如,处理器核、外设等。

10 RAS

本章内容是可选的,可以根据硬件支持情况及用户应用需求,选择性实现。

  1. 根据故障原因,对系统故障进行分类。
  2. 针对系统故障的类别,分别处理。
  3. 支持故障信息的保存、查询以及保存记录的删除。
  4. 支持故障在PBF、系统固件、操作系统等多个等级之间逐级上报。支持用户配置故障上报的范围。
  5. 故障上报接口兼容APEI和SDEI规范。

参考《飞腾RAS软件规范》



版权所有。飞腾信息技术有限公司 2023。保留所有权利。

未经本公司同意,任何单位、公司或个人不得擅自复制,翻译,摘抄本文档内容的部分或全部,不得以任何方式或途径进行传播和宣传。

商标声明

Phytium和其他飞腾商标均为飞腾信息技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

本文档的内容视为飞腾的保密信息,您应当严格遵守保密任务;未经飞腾事先书面同意,您不得向任何第三方披露本文档内容或提供给任何第三方使用。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,飞腾在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但飞腾在此明确声明对本文档内容的准确性、完整性、适用性、可靠性的等不作任何明示或暗示的保证。

本文档中所有内容,包括但不限于图片、架构设计、页面布局、文字描述,均由飞腾和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权等。非经飞腾和/或其关联公司书面同意,任何人不得擅自使用、修改,复制上述内容。


飞腾开发者
6 声望3 粉丝

飞腾开发者技术小助手,定期分享飞腾技术文档,助力开发者打怪升级。更多材料获取:[链接]