CN114035842A - 固件配置方法、计算系统配置方法、计算装置以及设备 - Google Patents

固件配置方法、计算系统配置方法、计算装置以及设备 Download PDF

Info

Publication number
CN114035842A
CN114035842A CN202210012027.7A CN202210012027A CN114035842A CN 114035842 A CN114035842 A CN 114035842A CN 202210012027 A CN202210012027 A CN 202210012027A CN 114035842 A CN114035842 A CN 114035842A
Authority
CN
China
Prior art keywords
firmware
processor
hardware
calling
basic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210012027.7A
Other languages
English (en)
Other versions
CN114035842B (zh
Inventor
刘勇鹏
李信德
舒奕棋
王培�
杨维韬
谢鹏
李煜
屈利婵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phytium Technology Co Ltd
Original Assignee
Phytium Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Phytium Technology Co Ltd filed Critical Phytium Technology Co Ltd
Priority to CN202210012027.7A priority Critical patent/CN114035842B/zh
Publication of CN114035842A publication Critical patent/CN114035842A/zh
Application granted granted Critical
Publication of CN114035842B publication Critical patent/CN114035842B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本公开实施例提供一种固件配置方法、计算系统配置方法、计算装置以及设备。该固件配置方法应用于计算系统,计算系统包括处理器和与处理器具有连接关系的外围硬件,其中,计算系统搭载有基础固件和系统固件,基础固件在被执行时用于实现与处理器相关的操作,系统固件在被执行时用于实现与外围硬件相关的操作,并启动操作系统,在基础固件中提供有调用接口,固件配置方法包括:在处理器加电后,在调用接口被系统固件进行调用的情况下,基于系统固件传输的配置参数实现对处理器的操作。利用本公开实施例提供的固件配置方法、计算系统配置方法、计算装置以及设备,能够实现基础固件与系统固件之间的参数适配。

Description

固件配置方法、计算系统配置方法、计算装置以及设备
技术领域
本公开的一些实施例涉及处理器技术领域,具体地,涉及一种固件配置方法、计算系统配置方法、计算装置以及设备。
背景技术
近年来,物联网、云计算、人工智能等技术发展促进了各种智能化设备的迅速发展。然而,这些智能化设备也面临着由安全漏洞、恶意攻击等因素产生的安全问题。因此,智能设备的安全防护也对与之适配的固件提出了更高的要求。针对计算系统中的处理器以及与处理器连接的外围硬件,固件分化为与处理器操作相关的基础固件以及与外围硬件操作相关的系统固件。通常,由芯片厂商提供基础固件中与芯片使能、安全架构、处理器初始化等相关的程序代码,而由系统固件厂商提供与系统固件相关的程序代码。
然而,以上分化为基础固件与系统固件的场景中,缺少系统固件与基础固件之间安全的参数沟通,基础固件无法针对外围硬件的差异进行参数适配,降低了计算系统的应用性和实用性。
发明内容
本公开的一些实施例提供了一种固件配置方法、计算系统配置方法、计算装置以及设备,能够实现基础固件与系统固件之间的参数适配。
根据本公开的一方面,提供了一种固件配置方法,该方法应用于计算系统,计算系统包括处理器和与处理器具有连接关系的外围硬件,其中,计算系统搭载有基础固件和系统固件,基础固件在被执行时用于实现与处理器相关的操作,系统固件在被执行时用于实现与外围硬件相关的操作,并启动操作系统,在基础固件中提供有调用接口,方法包括:在处理器加电后,在调用接口被系统固件进行调用的情况下,基于系统固件传输的配置参数实现对处理器的操作。以这种方式,根据本公开一些实施例的固件配置方法能够实现处理器相对于外围硬件的参数适配,提高处理器的定制化能力,提升产品开发效率,有利于固件程序升级以及产品批量生产,此外通过调用接口实现参数适配还能够保证基础固件的安全性。
根据本公开的一些实施例,系统固件中提供有调用函数,系统固件通过调用函数对调用接口进行调用。以这种方式,系统固件经由调用函数实现对于基础固件的调用,以将配置参数传输给基础固件,由此基础固件能够基于系统固件的调用进行参数适配。
根据本公开的一些实施例,调用接口按照处理器中的硬件类别被划分为多个子调用接口,其中,在系统固件对处理器中属于第一硬件类别的硬件进行调用的情况下,通过调用与第一硬件类别相对应的子调用接口来实现对处理器的第一硬件类别的硬件的操作,其中,硬件类别包括以下中的一种或多种:处理器类别、存储器类别、接口类别、安全服务类别。以这种方式,能够针对处理器中的硬件类别的进行子调用接口的划分,以实现基于硬件类型的统一调用,这能够便利调用操作,也有助于代码的封装集成,还使得调用过程更加具有系统性。
根据本公开的一些实施例,基础固件对应于第一权限级别,系统固件对应于低于第一权限级别的第二权限级别,其中,系统固件基于安全监控呼叫指令切换至第一权限级别,以实现对基础固件的调用。以这种方式,可以实现系统固件对于基础固件的调用过程,由此原本权限较低的系统固件也可以参与到与处理器相关的操作过程,实现参数适配。
根据本公开的一些实施例,计算系统还包括通用寄存器,安全监控呼叫指令与通用寄存器具有对应关系,系统固件基于对应关系通过通用寄存器向基础固件传输配置参数。以这种方式,系统固件能够基于与之具有对应关系的通用寄存器来向基础固件传输配置参数,以使得基础固件能够按照系统固件传输的配置参数对处理器进行操作。
根据本公开的一些实施例,基础固件对应于第一权限级别,系统固件对应于低于第一权限级别的第二权限级别,其中,系统固件基于快速中断请求切换至第一权限级别,以实现对基础固件的调用。以这种方式,可以实现系统固件对于基础固件的调用过程,由此原本权限较低的系统固件也可以参与到与处理器相关的操作过程,实现参数适配。
根据本公开的一些实施例,计算系统还包括存储器,系统固件将配置参数存储在存储器中的配置地址处,系统固件通过快速中断请求向基础固件传输配置地址,以使得基础固件基于配置地址来获取配置参数。以这种方式,系统固件能够基于存储器中的配置地址来向基础固件传输配置参数,以使得基础固件能够按照系统固件传输的配置参数对处理器进行操作。
根据本公开的一些实施例,对处理器的操作包括初始化参数设置操作,配置参数包括初始化参数,其中,基于系统固件传输的配置参数实现对处理器的操作包括:经由调用接口接收初始化参数;以及按照初始化参数,对处理器进行初始化参数设置。以这种方式,系统固件能够基于外围硬件的需求将初始化参数提供给基础固件,以使得基础固件能够根据该初始化参数进行初始化过程,实现参数适配。由此,系统固件能够通过调用接口参与到与处理器相关的初始化过程中,实现处理器的参数定制化。
根据本公开的一些实施例,对处理器的操作包括参数获取操作,配置参数包括用于指示要获取的参数的指示参数,其中,基于系统固件传输的配置参数实现对处理器的操作包括:经由调用接口接收指示参数;根据指示参数,获取处理器中的硬件的参数;以及经由调用接口将获取的处理器中的硬件的参数传输给系统固件。以这种方式,系统固件能够基于外围硬件的需求将需要获取的参数信息提供给基础固件,以使得基础固件能够根据该参数信息进行数据获取。
根据本公开的另一方面,提供了一种固件配置方法,应用于计算系统,计算系统包括处理器和与处理器具有连接关系的外围硬件,其中,计算系统搭载有基础固件和系统固件,基础固件在被执行时用于实现与处理器相关的操作,系统固件在被执行时用于实现与外围硬件相关的操作,并启动操作系统,在系统固件中提供有调用函数,该方法包括:在处理器加电后,通过调用函数基于配置参数来调用基础固件,以使得基础固件基于系统固件传输的配置参数实现对处理器的操作。以这种方式,根据本公开一些实施例的固件配置方法能够实现处理器相对于外围硬件的参数适配,提高处理器的定制化能力,提升产品开发效率,有利于固件程序升级以及产品批量生产,此外通过调用接口实现参数适配还能够保证基础固件的安全性。
根据本公开的一些实施例,基础固件中提供有调用接口,系统固件通过调用该调用接口来实现对基础固件的调用。以这种方式,系统固件通过调用基础固件中提供的调用接口来实现对于基础固件的调用,以将配置参数传输给基础固件,由此基础固件能够基于系统固件的调用进行参数适配。
根据本公开的一些实施例,调用接口按照处理器中的硬件类别被划分为多个子调用接口,其中,在系统固件对处理器中属于第一硬件类别的硬件进行调用的情况下,通过调用与第一硬件类别相对应的子调用接口来实现对处理器的第一硬件类别的硬件的操作,其中,硬件类别包括以下中的一种或多种:处理器类别、存储器类别、接口类别、安全服务类别。以这种方式,能够针对处理器中的硬件类别的进行子调用接口的划分,以实现基于硬件类型的统一调用,这能够便利调用操作,也有助于代码的封装集成,还使得调用过程更加具有系统性。
根据本公开的一些实施例,基础固件对应于第一权限级别,系统固件对应于低于第一权限级别的第二权限级别,其中,系统固件基于安全监控呼叫指令切换至第一权限级别,以实现对基础固件的调用。以这种方式,可以实现系统固件对于基础固件的调用过程,由此原本权限较低的系统固件也可以参与到与处理器相关的操作过程,实现参数适配。
根据本公开的一些实施例,计算系统还包括通用寄存器,安全监控呼叫指令与通用寄存器具有对应关系,系统固件基于对应关系通过通用寄存器向基础固件传输配置参数。以这种方式,系统固件能够基于与之具有对应关系的通用寄存器来向基础固件传输配置参数,以使得基础固件能够按照系统固件传输的配置参数对处理器进行操作。
根据本公开的一些实施例,基础固件对应于第一权限级别,系统固件对应于低于第一权限级别的第二权限级别,其中,系统固件基于快速中断请求切换至第一权限级别,以实现对基础固件的调用。以这种方式,可以实现系统固件对于基础固件的调用过程,由此原本权限较低的系统固件也可以参与到与处理器相关的操作过程,实现参数适配。
根据本公开的一些实施例,计算系统还包括存储器,系统固件将配置参数存储在存储器中的配置地址处,系统固件通过快速中断请求向基础固件传输配置地址,以使得基础固件基于配置地址来获取配置参数。以这种方式,系统固件能够基于存储器中的配置地址来向基础固件传输配置参数,以使得基础固件能够按照系统固件传输的配置参数对处理器进行操作。
根据本公开的一些实施例,对处理器的操作包括初始化参数设置操作,配置参数包括初始化参数,其中,通过调用函数基于配置参数来调用基础固件包括:将初始化参数传输给基础固件,以使得基础固件按照初始化参数,对处理器进行初始化参数设置。以这种方式,系统固件能够基于外围硬件的需求将初始化参数提供给基础固件,以使得基础固件能够根据该初始化参数进行初始化过程,实现参数适配。由此,系统固件能够通过调用接口参与到与处理器相关的初始化过程中,实现处理器的参数定制化。
根据本公开的一些实施例,对处理器的操作包括参数获取操作,配置参数包括用于指示要获取的参数的指示参数,其中,通过调用函数基于配置参数来调用基础固件包括:将指示参数传输给基础固件,以使得基础固件根据指示参数,获取处理器中的硬件的参数;以及从基础固件获得处理器中的硬件的参数。以这种方式,系统固件能够基于外围硬件的需求将需要获取的参数信息提供给基础固件,以使得基础固件能够根据该参数信息进行数据获取。
根据本公开的又一方面,还提供了一种计算系统配置方法,计算系统包括处理器和与处理器具有连接关系的外围硬件,其中,计算系统搭载有基础固件和系统固件,基础固件在被执行时用于实现与处理器相关的操作,系统固件在被执行时用于实现与外围硬件相关的操作,并启动操作系统,在基础固件中提供有调用接口,在系统固件中提供有调用函数,该计算系统配置方法包括:利用基础固件进行计算系统的运行环境初始化操作;利用系统固件中的调用函数来调用基础固件中的调用接口,以将初始化参数传输给基础固件;利用基础固件按照系统固件传输的初始化参数,对处理器进行初始化参数设置;以及利用系统固件引导启动该计算系统的操作系统。以这种方式,根据本公开一些实施例的计算系统配置方法,使得系统固件通过调用接口参与到基础固件的初始化流程中,进行与处理器相关的参数初始化,能够实现处理器相对于外围硬件的参数适配,提高处理器的定制化能力,提升产品开发效率,有利于固件程序升级以及产品批量生产,此外通过调用接口实现参数适配还能够保证基础固件的安全性。
根据本公开的一些实施例,该计算系统配置方法还包括:利用系统固件中的调用函数来调用基础固件中的调用接口,以将与系统固件要获取的参数相关联的指示参数传输给基础固件;利用基础固件根据系统固件传输的指示参数,获取处理器中的硬件的参数;以及利用基础固件将获取的处理器中的硬件的参数传输给系统固件。以这种方式,系统固件能够基于外围硬件的需求将需要获取的参数信息提供给基础固件,以使得基础固件能够根据该参数信息进行数据获取。
根据本公开的又一方面,还提供了一种计算装置,该计算装置包括计算系统,计算系统包括处理器和与处理器具有连接关系的外围硬件,其中,计算系统搭载有基础固件和系统固件,基础固件在被执行时用于实现与处理器相关的操作,系统固件在被执行时用于实现与外围硬件相关的操作,并启动操作系统,在基础固件中提供有调用接口,在系统固件中提供有调用函数,计算装置配置成:在处理器加电后,利用系统固件的调用函数来调用基础固件的调用接口,将配置参数传输给基础固件;利用基础固件基于系统固件传输的配置参数实现对处理器的操作。以这种方式,根据本公开一些实施例的计算装置,能够实现处理器相对于外围硬件的参数适配,提高处理器的定制化能力,提升产品开发效率,有利于固件程序升级以及产品批量生产,此外通过调用接口实现参数适配还能够保证基础固件的安全性。
根据本公开的又一方面,还提供了一种计算设备,该计算设备包括:处理器;和存储器,其中,存储器中存储有计算机可读代码,计算机可读代码在由处理器运行时,执行如上所述的固件配置方法。以这种方式,根据本公开一些实施例的计算设备,能够实现处理器相对于外围硬件的参数适配,提高处理器的定制化能力,提升产品开发效率,有利于固件程序升级以及产品批量生产,此外通过调用接口实现参数适配还能够保证基础固件的安全性。
利用根据本公开一些实施例的固件配置方法、计算系统配置方法、计算装置以及设备,通过在基础固件中提供调用接口,使得在处理器加电后,在调用接口被系统固件进行调用的情况下,由基础固件基于系统固件传输的配置参数实现对处理器的操作,由此系统固件能够通过调用上述调用接口来实现对于处理器的参数进行配置,实现处理器相对于外围硬件的参数适配,提高了处理器的定制化能力,提升产品开发效率,有利于固件程序升级以及产品批量生产。此外,由于系统固件对处理器的参数配置是由调用接口来实现的,这能够在实现配置的基础上保证基础固件的安全性。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A示出了实施根据本公开一些实施例提供方法的应用场景示意图;
图1B示出了根据本公开一些实施例的基于基础固件的系统软件栈的示意图;
图1C示出了根据本公开一些实施例的基础固件执行示意性流程图;
图2示出了根据本公开一些实施例的基础固件配置方法的示意性流程图;
图3示出了根据本公开一些实施例的系统固件配置方法的另一示意性流程图;
图4A示出了根据本公开一些实施例的计算系统配置方法的示意性流程图;
图4B示出了根据本公开一些实施例的计算系统配置方法的另一示意性流程图;
图5示出了根据本公开一些实施例的初始化流程图;
图6示出了根据本公开一些实施例的函数调用结构示意图;
图7示出了根据本公开一些实施例的计算系统整体运行流程示意图;
图8示出了根据本公开一些实施例的计算装置的示意性框图;
图9示出了根据本公开一些实施例的计算设备的示意性框图;
图10示出了根据本公开一些实施例的示例性电子设备架构的示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
此外,如本公开和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的,例如,通过利用各种接口和线路进行连接以实现信息交互。
固件(Firmware,也可以称为固件程序)可以是写入可擦写可编程只读存储器(EPROM,erasable programmable read-only memory)或者电可擦可编程只读存储器(EEPROM, Electrically Erasable Programmable read only memory)中的程序代码。固件可以理解为设备内部保存的设备“驱动程序”,在设备加电后,通过运行固件,设备的操作系统得以驱动实现特定的运行动作。在上述将固件分化为与处理器操作相关的基础固件以及与外围硬件操作相关的系统固件的场景中,为了实现处理器与外围硬件之间的参数适配,例如,处理器中的某些硬件的初始化参数需要针对外围硬件的规格、型号、产品升级或者设计应用需要等因素进行调整。
在一些情形下,芯片厂商选择将芯片及内部设备的初始化设置代码全部开放给系统固件厂商。系统固件将这些设置过程封装进系统固件的初始化代码中。由于芯片厂商将初始化设置代码开放给系统固件厂商,使得系统固件厂商可以根据自身的参数需求自由地修改这部分初始化代码。然而,随着安全需求越来越高,芯片厂商开放代码将面临较高的安全风险。这种实现方式需要芯片厂商与系统固件厂商一起规划才能形成较高安全级别的初始化方案。此外,为保证诸如安全架构等对安全性要求较高的部件,还需要设置额外的安全管理子系统,使得计算系统的结构更为复杂。
在另一些情形下,芯片厂商由于芯片应用场景以及功能较为复杂,为保证安全性,将与初始化相关的代码的二进制文件提供给系统固件厂商。然而外围硬件无法参与到芯片、内存等核心配置,也无法根据自身硬件的实际情况作出调整和优化,这不利于双方的代码管理和后期维护更新。其中,芯片厂商可以是指生产、开发芯片、片上系统SoC、处理器等器件的厂商,系统固件厂商可以是指开发诸如系统固件的厂商。
本公开的一些实施例提供了一种固件配置方法、计算系统配置方法、计算装置以及设备,用于实现基础固件与系统固件之间的参数适配的同时,保证基础固件与系统固件的安全性。具体的,利用根据本公开一些实施例的固件配置方法、计算系统配置方法、计算装置以及设备,通过在基础固件中提供调用接口,使得在处理器加电后,在调用接口被系统固件进行调用的情况下,由基础固件基于系统固件传输的配置参数实现对处理器的操作,由此系统固件能够通过调用上述调用接口来实现对于处理器的参数配置,以实现外围硬件参数适配,提高处理器的定制化能力,提升产品开发效率,有利于固件升级以及产品批量生产。此外,由于系统固件对处理器的参数配置是由调用接口来实现的,这能够在实现配置的基础上保证基础固件的安全性。
根据本公开实施例的固件配置方法能够应用于一种计算系统,该计算系统包括处理器和与处理器具有连接关系的外围硬件。连接等类似的词语并非限定于物理的或者机械的连接,还可以包括电性地连接,可以是直接连接也可以是间接连接,例如,通过利用各种接口和线路进行连接以实现信息交互。
作为一些示例,本公开实施例中的处理器可以是指计算机系统的运算和控制核心,具有信息处理、运行指令等能力的处理单元。
在一些示例中,外围硬件例如可以是第一类型设备,例如,第一类型设备可以是指与处理器具有连接关系的显示屏、输入设备(诸如,电源按键)、蓝牙设备、传感器等,在此不作限制。在一些示例中,外围硬件例如可以是第二类型设备,例如,第二类型设备可以是锁相环(Phase Locked Loop, PLL)、系统级芯片内存控制器、双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory, DDR)、外设部件互连高速总线(Peripheral Component Interconnect express, PCIe)接口控制器等。
进一步地,该计算系统还搭载有基础固件和系统固件,基础固件在被执行时用于实现与处理器相关的操作,例如,用于实现处理器中的硬件的初始化操作。系统固件在被执行时用于实现与外围硬件相关的操作,例如,用于实现与外围硬件相关的初始化操作,系统固件还用于引导启动操作系统。关于本文中涉及的基础固件与系统固件,将在下文结合图1B和图1C进行说明。此外,在根据本公开的实施例中,在基础固件中提供有调用接口,在系统固件中提供有调用函数。作为示例,系统固件通过该调用函数对调用接口进行调用,以实现信息交互,例如基础固件能够基于由系统固件传输的参数来进行预期操作,例如参数初始化、参数获取等操作,这有利于实现两端的参数适配,既保证了信息交互安全又能够实现灵活地配置。根据本公开的实施例,适用于基础固件的固件配置方法表示为基础固件配置方法,适用于系统固件的固件配置方法表示为系统固件配置方法。
作为示例,根据本公开一些实施例的配置方法可以在计算机装置中实现。首先,图1A示出了计算机装置100的结构示意图。
如图1A所示,计算机装置100可分为硬件部分和软件部分。可以理解的是,该计算机装置100还可以包括其他所需的部分,在此不作限制。具体的,计算机装置100的硬件部分包括处理器110和存储器120,其中,处理器110可以是计算机装置100的控制中心,用于执行相关程序代码,例如通过执行固件来实现根据本公开实施例所提供的方法。存储器120可以存储操作系统和其他的应用软件。例如,用于实现本公开一些实施例提供的固件配置方法的代码可以被保存在存储器120中,并由处理器110来执行。存储器120可以与处理器110集成在一起或集成在处理器110的内部,也可以是独立于处理器110的一个或多个存储单元。
计算机装置100的软件部分可以包括操作系统130、基本输入输出系统(BasicInput/Output System, BIOS)140以及应用软件150。操作系统130可以是指用于管理计算机硬件和软件资源的系统软件。操作系统可以用于处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。为了方便用户操作,操作系统可以提供与用户进行交互的操作界面。BIOS 140用于在计算机装置加电引导阶段运行硬件初始化以及为操作系统130和应用软件150提供运行服务。除了用于硬件初始化之外,BIOS 140还可以具有其他功能,例如显示处理器温度、调节温度保护策略等功能。应用软件(Application Software)150也可以称为应用程序(Application Program),是计算机软件的主要分类之一,例如可以是针对用户的某种特殊应用目的所提供的软件。作为示例,应用软件150可以实现为用于实现功率控制、温度管理等的应用程序。
根据本公开一些实施例提供的上述基础固件配置方法、系统固件配置方法以及下文描述的计算系统配置方法能够在图1A所示的计算机装置中实现。可以理解的是,除了图1A所示的计算机装置,根据本公开实施例的方法还可以应用于其他的应用场景。
为了更清楚地理解根据本公开实施例的基础固件以及系统固件,提供了图1B以及图1C,可以理解的是,以上附图仅为示意性的,根据本公开实施例的基础固件以及系统固件并不限于附图所示内容,其可以包括其他未示出的部件或者实现其他功能,在此不作限制。
图1B示出了基于基础固件的系统软件栈,具体包括三层固件:可信根、基础固件以及系统固件。其中,可信根可以是芯片内置的可信启动根,负责对基础固件进行验签。作为其他示例,系统软件栈也可以不包括该可信根。基础固件主要用于芯片的基本初始化,并提供相关服务。例如,基础固件可以用于实现初始化服务、电源管理、恢复(诸如镜像恢复Recover)、RAS、安全平台架构支持、安全监控器、安全启动、安全分区管理器(SecurePartition Manager, SPM)调度等,其中,RAS表示可靠性(Reliability)、可用性(Availability))和可服务性(Serviceability)分析。此外,基础固件还可以负责加载运行在安全态下的安全操作系统(Operating System, OS),例如,TEE OS。根据应用场景不同,系统固件可以具有两种实现方式,如图1B所示的,系统固件可以实现为面向桌面、服务器等领域的统一的可扩展固件接口(Unified Extensible Firmware Interface, UEFI),或者可以实现为面向嵌入式领域的通用引导加载程序(Universal Boot, U-Boot)。如图1B所示,系统固件运行在非安全态下。此外,基础固件、系统固件以及操作系统OS(或者虚拟机(Virtual Machine, VM))可以与带外控制系统(例如嵌入式控制器(EmbeddedController, EC)、基板管理控制器(Baseboard Management Controller, BMC)等)进行通信。
图1C示出了根据本公开一些实施例的基础固件执行示意性流程图,适用于如图1B所示的系统软件栈。如图1C所示,在加电后,首先运行芯片中的可信根,然后运行例如位于闪存中的基础固件。在其他示例中,在不包括可信根的情况下,可以直接运行位于闪存中的基础固件。例如,基础固件可以运行在最高权限级别(例如,异常等级(Exception Level,EL)为EL3),用于进行启动安全操作系统,在完成芯片的基本初始化之后,跳转到例如位于闪存中的系统固件。例如,系统固件运行在EL2,根据系统需要,系统固件可以依次调用基础件提供的针对各模块的初始化服务。关于系统固件实现上述调用的具体过程,将在下文进行描述,例如,与RST(Reset)源、PLL、内存控制器、DDR、重定位、PCIe控制器、SoC模块等相关的初始化设置,作为示例,RST源表示复位源,用于指示复位启动的根源,诸如上电启动、软件热复位等。基础固件还可以提供一些查询服务,例如,查询系统复位原因等。基础固件在第一次进入系统固件时,并未初始化内存,为此,系统固件可以基于基础固件进行内存初始化服务。在完成所需的初始化任务之后,系统固件可以显示调用基础固件提供的重定位服务。最后,在系统固件完成相关的系统初始化之后,可以引导启动操作系统OS或者运行虚拟机(Virtual Machine, VM)。
图2示出了根据本公开一些实施例的基础固件配置方法的示意性流程图,图3示出了根据本公开一些实施例的系统固件配置方法的示意性流程图。
具体的,如图2所示的固件配置方法中,在步骤S2011,在计算系统的处理器加电后,在调用接口被系统固件进行调用的情况下,基于系统固件传输的配置参数实现对处理器的操作。可以理解的是,图2所示出的固件配置方法,可以是由基础固件实现的方法过程,即适用于基础固件,由此图2所示的固件配置方法表示为基础固件配置方法。该基础固件中的调用接口在被调用的情况下,能够基于系统固件传输的配置参数实现对处理器的操作,即,使得基础固件能够基于对应于外围硬件的系统固件进行参数适配。作为示例,上述对处理器的操作可以包括针对处理器中的硬件的初始化参数设置操作,在此种情形下,配置参数可以包括初始化参数。作为另一示例,上述对处理器的操作可以包括针对处理器中的硬件的参数获取操作,即,用于获取处理器中某类硬件的参数,在此种情形下,配置参数可以包括用于指示要获取的参数的指示参数。关于进行参数适配的具体实现过程,将在下文结合实施例进行详细描述。
如图3所示的系统固件配置方法中,在步骤S3011,在计算系统的处理器加电后,通过调用函数基于配置参数来调用基础固件,以使得基础固件基于系统固件传输的配置参数实现对处理器的操作。可以理解的是,图3所示出的固件配置方法,可以是由系统固件实现的方法过程,即适用于系统固件,如图3所示的固件配置方法可以表示为系统固件配置方法,以与图2所示的基础固件配置方法进行区分。该系统固件中的调用函数能够调用基础固件中的调用接口,以参与到处理器相关的参数配置过程中。例如,将外围硬件所需的配置参数传输给基础固件,以使得基础固件基于该外围硬件所需的配置参数进行初始化配置,从而实现处理器与外围硬件之间的参数适配。
在以上示出的固件配置方法中,通过调用接口实现基础固件与系统固件之间的信息交互,使得处理器能够基于外围硬件所需的参数进行自适应配置,提高了处理器的定制化能力,能够在不改变基础固件的情况下适用于具有不同参数需求的外围硬件类型。并且,基础固件的初始化代码无需提供给系统固件,而是只需提供与调用接口相关的信息,以使得能被系统固件调用,这保证了双方代码的独立性,有利于保证代码安全、提供安全的计算环境。根据本公开实施例的固件配置方法,通过调用接口实现基础固件与系统固件之间的信息交互,降低了上述芯片厂商与系统固件厂商之间的产品沟通成本,这有利于双方产品的批量生产以及更新升级。
根据本公开的一些实施例,调用接口按照处理器中的硬件类别被划分为多个子调用接口。例如,硬件类别包括以下中的一种或多种:处理器类别、存储器类别、接口类别、安全服务类别。在系统固件对处理器中属于第一硬件类别的硬件进行调用的情况下,通过调用与第一硬件类别相对应的子调用接口来实现对处理器的第一硬件类别的硬件的操作。在根据本公开一些实施例的方法中,将处理器中的硬件按照进行类别进行区分,并分别设置子调用接口以用于调用。其中,上述第一硬件类别可以是上述处理器类别、存储器类别、接口类别、安全服务类别中的任意一种。例如,在系统固件需要对处理器中的存储器进行参数配置的情况下,能够通过对应于该存储器类别的子调用接口。上述将调用接口按照处理器中的硬件类别划分为多个子调用接口的方案有利于集成代码实现,将对同一类别硬件对象的操作调用封装归为一个子调用接口。
作为示例,通过对应于上述处理器类别的子调用接口,可以实现对处理器核心或片上网络的频率进行初始化配置。
作为示例,通过对应于上述存储器类别的子调用接口,可以实现对存储器进行初始化配置,存储器例如可以是双倍速率同步动态随机存储器DDR。例如,与DDR相关的初始化操作可以包括DDR初始化服务、DDR进入自刷新、DDR自刷新锁定/解锁、DDR自刷新参数保存、DDR安全设置服务、DDR训练结果边界值、DDR内存清零服务、DDR查询训练错误状态。又例如,与DDR相关的参数获取操作可以包括:内存地址空间分布信息获取以及内存信息获取,其中,内存信息诸如可以包括频率、容量、厂商标识、序列号等。
作为示例,通过对应于上述接口类别的子调用接口,可以实现对各种类型的接口进行初始化配置。例如,该接口可以是外设部件互连高速总线接口PCIe,其是使用较为广泛的接口类型,例如计算机主板上可以配置有PCIe插槽以外连设备,主要用于连接显卡、网卡、声卡等。例如,与PCIe相关的初始化配置可以包括物理链路(lane)设置、速率设置、均衡值设置、模式设置等。
作为示例,通过对应于上述安全服务类别的子调用接口,可以实现对计算系统的安全服务进行初始化配置。例如,安全服务可以是指由安全架构提供的服务,用于维护系统中重要资源的安全性,一般地,安全架构可以包括普通执行环境(Rich ExecutionEnvironment,REE)子系统、可信执行环境(Trusted Execution Environment,TEE)子系统以及安全元件(Secure Element,SE)子系统。例如,与安全服务相关的初始化配置可以包括与处理器核心安全等级设置(诸如,用于开启幽灵熔断防护)等。
可以理解的是,根据本公开实施例的固件配置方法还可以针对其他的硬件类别的进行子调用接口的划分,以实现基于硬件类型的统一调用,这能够便利调用操作,也有助于代码的封装集成,也使得调用过程更加具有系统性。
根据本公开一些实施例提供的配置方法可以适用于在需要保证安全或保密设计信息的芯片固件开发及使用过程中。在此类应用中,为了支持区分基础固件和系统固件,计算系统可以包括用于实现上述区分的安全架构以对基础固件和系统固件实现特权等级区分。根据本公开的一些实施例,基础固件可以对应于第一权限级别,系统固件对应于低于第一权限级别的第二权限级别。具体的,安全等级与固件的权限级别绑定,其中,第一权限级别是安全架构中的最高权限级别,即基础固件具有较高的安全性,用于实现计算系统中较为核心的操作。相较于第一权限级别,第二权限级别较低,属于非安全态,通常通用固件并不能参与到由第一权限级别的基础固件所执行的操作中。
根据本公开的一些实施例,为了实现系统固件对基础固件的调用过程,系统固件可以基于安全监控呼叫指令(Secure Monitor Call, SMC)切换至第一权限级别,以实现对基础固件的调用。该SMC例如可以触发异常,以使得系统固件路由到第一权限级别。具体的,计算系统还可以包括通用寄存器,例如可以是多个通用寄存器。该安全监控呼叫指令与通用寄存器具有对应关系,系统固件基于该对应关系通过通用寄存器向基础固件传输配置参数。
作为示例,安全监控呼叫指令可以与7个通用寄存器具有对应关系,即,能够经由该7个通用寄存器携带诸如7个参数以触发异常,由此使得系统固件的执行过程由第二权限级别进入到第一权限级别,从而实现对于基础固件的调用接口的调用过程。安全监控呼叫指令可以由处理器原有的架构实现,不需要做额外配置即能使用。例如,通过在汇编中执行该安全监控呼叫指令即可实现,使得基于安全监控呼叫指令的调用触发过程相对简单。
通过根据本公开一些实施例的固件配置方法,能够基于安全监控呼叫指令使得系统固件切换至基础固件所在的权限级别,从而实现系统固件对于基础固件的调用过程,由此原本权限较低的系统固件也可以参与到与处理器相关的操作过程,实现参数适配。例如,适用于外围硬件的系统固件可以根据自身对于处理器频率的需求来调用基础固件,以使得基础固件基于系统固件传输的参数进行操作,从而适配于外围硬件。
根据本公开的另一些实施例,为了实现系统固件对基础固件的调用过程,系统固件可以基于快速中断请求(Fast Interrupt Request, FIQ)切换至第一权限级别,以实现对基础固件的调用。具体的,该计算系统还可以包括存储器,系统固件将配置参数存储在存储器中的配置地址处,系统固件通过快速中断请求向基础固件传输配置地址,以使得基础固件基于配置地址来获取配置参数。
作为示例,类似于安全监控呼叫指令,快速中断请求也可以使得系统固件的执行过程由第二权限级别进入到第一权限级别,从而实现对于基础固件的调用接口的调用过程。即,系统固件无法直接基于快速中断请求来传输配置参数,在此种情形下,系统固件可以将需要传输的配置参数存储在存储器中,例如能够由基础固件和系统固件两者访问的共享的配置地址处。基础固件能够基于该配置地址获取配置参数,例如,配置地址可以指示配置参数在存储器中的存储位置,基础固件由此能够通过访问该配置地址处的数据来获得配置参数。
通过根据本公开一些实施例的固件配置方法,能够基于快速中断请求实现系统固件对于基础固件的调用过程,由此原本权限较低的系统固件也可以参与到与处理器相关的操作过程,实现参数适配。例如,适用于外围硬件的系统固件可以根据自身对于处理器频率的需求来调用基础固件,以使得基础固件基于系统固件传输的配置参数进行操作,从而适配于外围硬件。
根据本公开的一些实施例,针对处理器的操作可以包括初始化参数设置操作,配置参数包括初始化参数,其中,基于系统固件传输的配置参数实现对处理器的操作包括:经由调用接口接收初始化参数;以及按照初始化参数,对处理器进行初始化参数设置。
以这种方式,系统固件能够基于外围硬件的需求将初始化参数提供给基础固件,以使得基础固件能够根据该初始化参数进行初始化过程,实现参数适配。由此,系统固件能够通过调用接口参与到与处理器相关的初始化过程中,实现处理器的参数定制化。关于计算系统的初始化流程将在下文结合示例进行描述。
根据本公开的另一些实施例,针对处理器的操作可以包括参数获取操作,配置参数包括用于指示要获取的参数的指示参数,其中,基于系统固件传输的配置参数实现对处理器的操作包括:经由调用接口接收指示参数;根据指示参数,获取处理器中的硬件的参数;以及经由调用接口将获取的处理器中的硬件的参数传输给系统固件。
以这种方式,系统固件能够基于外围硬件的需求将需要获取的参数信息提供给基础固件,以使得基础固件能够根据该参数信息进行数据获取,例如,获取DDR的时钟频率值并将获取的参数提供给系统固件。由此,系统固件能够通过调用接口参与到与处理器相关的操作过程中。关于计算系统的参数获取流程将在下文结合示例进行描述。
根据本公开实施例提供的基础固件配置方法和系统固件配置方法适用于计算系统,该计算系统搭载有基础固件和系统固件,基础固件在被执行时用于实现与处理器相关的操作,系统固件在被执行时用于实现与外围硬件相关的操作,并启动操作系统,在基础固件中提供有调用接口,在系统固件中提供有调用函数。具体的,系统固件中的调用函数可以对基础固件中的调用接口进行调用,以使得基础固件基于系统固件传输的参数对处理器进行相应的操作,例如进行参数初始化,从而实现处理器针对外围硬件的参数适配。可以理解的是,以上关于实现方式描述的实施例适用于以上两种配置方法,系统固件作为调用方,基础固件作为被调用方,通过执行固件程序来实现根据本公开的一些实施例。
例如,基础固件可以是由芯片厂商提供的,系统固件可以是由系统固件厂商提供的。芯片厂商与系统固件厂商通过在固件中配置上述调用函数和调用接口,能够在计算系统的运行过程中,实现处理器针对外围硬件的参数适配,双方仅需形成调用逻辑的共识即可实现,而无需进行技术参数沟通、开发初始化代码等,保证计算安全并且有助于提高产品开发效率,此外,还便于进行固件更新升级。
在根据本公开的一些实施例中,还提供了一种计算系统配置方法,该计算系统包括处理器和与处理器具有连接关系的外围硬件,其中,计算系统搭载有基础固件和系统固件,基础固件在被执行时用于实现与处理器相关的操作,系统固件在被执行时用于实现与外围硬件相关的操作,并启动操作系统,在基础固件中提供有调用接口,在系统固件中提供有调用函数。可以理解的是,此计算系统配置方法的执行主体可以是计算系统,通过基础固件以及系统固件两者来实现。
图4A示出了根据本公开一些实施例的计算系统配置方法的示意性流程图。如图4A所示,该计算系统配置方法可以包括步骤S4011-S4014。
首先,在步骤S4011,利用基础固件进行计算系统的运行环境初始化操作。作为示例,运行环境初始化操作可以包括异常向量表设置、安全属性设置、缓存设置、堆栈初始化等操作。可选地,在运行环境初始化操作之后,计算系统还可以进行安全硬件初始化。安全硬件例如可以是加解密加速模块,用于加快验签或加解密过程中的复杂数学运算的计算速度。安全硬件也可以是密钥派生模块,例如用于根据基础密钥生成用户根密钥,以保护基础密钥安全。安全硬件的具体初始化内容可以根据具体安全模块的设计确定。
例如,在安全硬件初始化完成之后,计算系统可以跳转到执行系统固件。接着,在步骤S4012,利用系统固件中的调用函数来调用基础固件中的调用接口,以将初始化参数传输给基础固件。由此,系统固件能够根据外围硬件需求进行对应的初始化调用。
作为示例,系统固件可以针对存储器类别的子调用接口进行调用,以实现针对诸如DDR的初始化参数设置。作为其他示例,,系统固件还可以针对其他硬件类别进行初始化调用,例如,PCIe控制器初始化、处理器核心安全等级设置(诸如,用于开启幽灵熔断防护)、处理器频率设置、电源管理服务函数注册等。基于此,系统固件通过调用对应于不同硬件类的子调用接口来进行适应于外围硬件的差异化的初始化配置。
接着,响应于步骤S4012的调用,在步骤S4013,计算系统利用基础固件按照系统固件传输的初始化参数,对处理器进行初始化参数设置。例如,基础固件根据以上示例描述的针对不同硬件类别的初始化参数进行初始化参数过程。
在步骤S4014,利用系统固件引导启动操作系统。在进行上述针对外围硬件的自适应参数初始化过程之后,系统固件可以继续执行其他初始化步骤,例如,建立人机交互环境或引导操作系统。
以上步骤S4011-S4014可以是在计算系统的处理器加电之后,通过运行基础固件和系统固件自动地运行,以实现计算系统的初始化过程。以这种方式,根据本公开一些实施例的计算系统配置方法,使得系统固件通过调用接口参与到基础固件的初始化流程中,进行与处理器相关的参数初始化,能够实现处理器相对于外围硬件的参数适配,提高处理器的定制化能力,提升产品开发效率,有利于固件程序升级以及产品批量生产,此外通过调用接口实现参数适配还能够保证基础固件的安全性。
此外,在建立人机交互环境之后,计算系统可以进入到运行阶段。在此阶段,系统固件还可以通过调用接口来获取处理器中的硬件参数,具体实现过程参考图4B的示意性流程图。
如图4B所示,在以上对应于计算系统初始化的步骤S4011-S4014之后,根据本公开一些实施例的计算系统配置方法还可以包括步骤S4015-S4017,以实现参数获取。
在步骤S4015,利用系统固件中的调用函数来调用基础固件中的调用接口,以将与系统固件要获取的参数相关联的指示参数传输给基础固件。在系统运行阶段,例如为了向用户显示某些与处理器相关的参数,系统固件可以通过上述调用接口来将要获取的参数相关联的指示参数传输给基础固件。
接着,在步骤S4016,利用基础固件根据系统固件传输的指示参数,获取处理器中的硬件的参数;以及在步骤S4017,利用基础固件将获取的处理器中的硬件的参数传输给系统固件。以这种方式,系统固件能够基于外围硬件的需求将需要获取的参数信息提供给基础固件,以使得基础固件能够根据该参数信息进行数据获取。
关于根据本公开实施例的计算装置配置方法的其他具体实现细节,可以参考上文针对根据本公开实施例的基础固件配置方法和系统固件配置方法进行的描述,在此不再重复。
在下文中,将结合具体的实现方式来详细描述利用根据本公开实施例提供的方法进行处理器与外围硬件之间的参数适配过程。
图5示出了根据本公开一些实施例的初始化流程图,例如,图5所示的流程可以适用于计算系统,该计算系统包括处理器和与处理器具有连接关系的外围硬件,其中,计算系统搭载有基础固件和系统固件,基础固件在被执行时用于实现与处理器相关的操作,系统固件在被执行时用于实现与外围硬件相关的操作,并启动操作系统,在基础固件中提供有调用接口,在系统固件中提供有调用函数。具体来说,基础固件用于实现计算系统中最基本的初始化流程,然后由系统固件通过调用基础固件所提供调用接口来进行自适应地参数适配。
如图5所示,首先在步骤S5011,对计算系统加电以启动运行,接着,在步骤S5012,由基础固件进行处理器初始化,建立运行环境。作为示例,为建立运行环境,运行环境初始化可以包括异常向量表设置、安全属性设置、缓存设置、堆栈初始化等操作。可选地,在运行环境初始化操作之后,计算系统还可以进行安全硬件初始化。安全硬件例如可以是加解密加速模块,用于加快验签或加解密过程中的复杂数学运算的计算速度。安全硬件也可以是密钥派生模块,例如用于根据基础密钥生成用户根密钥,以保护基础密钥安全。安全硬件的具体初始化内容可以根据具体安全模块的设计确定。
在步骤S5013,由系统固件根据外围硬件确定配置参数,以及步骤S5014,系统固件通过调用接口实现参数初始化。由此,系统固件能够根据外围硬件需求进行对应的初始化调用。作为示例,系统固件可以经由安全监控呼叫指令或者快速中断请求来触发使得系统固件切换至基础固件的权限级别,以实现上述调用过程。在基础固件中的调用接口被调用后,将基于系统固件传输的配置参数对处理器进行初始化操作。例如,系统固件可以根据外围硬件对于DDR初始化参数的要求来确定配置参数,以使得处理器进行对应的参数配置,从而实现处理器与外围硬件之间的参数适配。
在步骤S5015,可以判断系统固件需要进行的参数适配初始化过程是否完成,如果没有完成,则再次进行步骤S5013和S5014。例如,除了DDR参数初始化之外,系统固件还可以对其他处理器中的硬件进行初始化。诸如PCIe控制器初始化、内存初始化等。
如果确定初始化过程已经完成,则在步骤S5016,系统固件建立人机交互环境、引导启动计算装置的操作系统。接着,在进行上述针对外围硬件的自适应参数初始化过程之后,系统固件可以继续执行其他初始化步骤,例如,建立人机交互环境或引导操作系统。
在步骤S5017,系统固件中初始化完成建立人机交互环境后,还可以通过调用接口获取处理器相关的参数、使用安全服务。在进入操作系统之后,如果系统固件中有运行时服务,此运行时服务中也可以通过系统固件调用该调用接口进行参数获取。
为了便于更好地理解本公开实施例的技术方案,下面以桌面处理器芯片X为具体示例来进行描述。芯片X例如可以支持处理器安全架构,满足更复杂应用场景下对性能和安全可信的需求。芯片X架构设置有4个权限级别,基础固件具有最高的第一权限级别,系统固件具有低于基础固件的第一权限级别。系统固件能通过安全监控呼叫指令或者快速中断请求来跨越权限级别到基础固件,即系统固件跳转至基础固件所在的第一权限级别。
芯片X设计为高效能桌面芯片,相对于初始化操作,除通常需要提供系统频率初始化、DDR控制器初始化、PCIe控制器初始化外,还可以根据需求提供处理器核心安全等级设置(例如,用于开启幽灵熔断防护)、电源管理服务函数注册、查询或设置处理器核心的频率、设置持续休眠的超时时间、安全寄存器读写、调试控制服务等功能。相对于参数获取或查询操作,获取的参数例如可以是当前接口规范版本、基础固件版本号、处理器芯片版本、处理器核心存在性位图、处理器核配置信息、内存地址空间、内存条信息、PCIe控制器配置信息、PCI根桥总线信息、系统固件的基址、系统配置表版本、系统复位原因等。上述参数获取主要用于帮助系统固件获知更多的配置信息,或者将查询到的信息呈现给用户,或者用于支持系统固件中的其他器件的初始化过程。
为实现上述系统固件的跨权限级别切换以对基础固件中的调用接口进行调用,可以通过安全监控呼叫指令或者快速中断请求切换至第一权限级别,以实现对基础固件的调用。作为示例,安全监控呼叫指令存在与之具有对应关系的7个通用寄存器,以携带7个参数,该安全监控呼叫指令能够触发异常以使得系统固件的执行过程进入到最高权限级别,即第一权限级别。安全监控呼叫指令可以处理器架构实现,不需要做额外配置即能使用,同时调用触发也相对简单,通过在汇编中执行SMC指令即可。作为另一示例,使用快速中断请求无法传递参数,需要另建一套参数传递机制,例如在指定的共享地址进行参数指示等。快速中断请求触发还可以在使用之前对中断控制器进行初始化。
进一步地,基础固件中的调用接口可以按照处理器中的硬件类别被划分为多个子调用接口,例如,硬件类别包括以下中的一种或多种:处理器类别、存储器类别、接口类别、安全服务类别。以这种方式,能够针对处理器中的硬件类别的进行子调用接口的划分,以实现基于硬件类型的统一调用,这能够便利调用操作,也有助于代码的封装集成,还使得调用过程更加具有系统性。
此外,子调用接口针对同种类别的操作对象(即,硬件类型)的处理将被归为一类,这便于调用接口代码部分的封装实现,归类封装示例例如可以如下表1所示:
表1
Figure 607601DEST_PATH_IMAGE001
基础固件中实现的调用过程可以按照实现的功能分为三个类别,分别为初始化、功能设置、信息查询。选定的触发指令为安全监控呼叫指令SMC,则可以将不同服务处理用7个参数通用寄存器中的参数1来区分,如果该服务下有多个子服务则用参数2区分,以此类推。其他的参数可以是服务可使用的参数。此外,在需要指示的参数过多的情况下,还可以采用提供参数指针的方式,指针指向一片保存特定格式参数的系统固件地址,基础固件返回的参数也同样适用。按上述分类封装形成的函数调用结构如以下图6所示:
图6示出了根据本公开一些实施例的函数调用结构示意图,具体的,图6示出了按照上述分类封装形成的函数调用结构。
在利用7个通用寄存器指示7个参数的场景中,系统固件的调用函数可以例如包括7级函数结构,作为示例,由参数1指示第1级调用函数,由参数2指示第2级调用函数,以此类推。如图6所示,对应于第1级调用函数,例如可以存在调用函数CALL_A和CALL_B,对应于第2级调用函数,例如可以存在调用函数CALL_A1和CALL_A2。与此对应地,基础固件中可以相应地提供7级调用接口,作为示例,由参数1指示第1级调用接口(如图6所示的调用接口FUNC_A和FUNC_B),由参数2指示第2级调用接口(如图6所示的调用接口FUNC_A1和FUNC_A2),以此类推。
如图6所示,对于调用函数CALL_A1,其可以是用于实现上述初始化/功能设置/信息查询服务,其由参数2进行指示区分(即,由参数2来指示区分CALL_A1和CALL_A2)。接着,系统固件可以调用更第一级的CALL_A函数以添加参数1(即,由参数1来指示区分CALL_A和CALL_B)。接着,可以在CALL_A中直接调用SMC以底层触发调用函数进入基础固件。在被调用之后,基础固件中首先进行SMC接收处理,以进入总的SMC处理函数,例如可以通过通用寄存器来获得参数1-参数7,此参数1-参数7即为上述配置参数。然后,基础固件还可以对参数进行基本处理(例如,保存、恢复上下文等)。接着,基础固件将根据传递的参数1进入调用接口FUNC_A的处理,FUNC_A进一步判断参数2是否能在本函数中处理,如果不能则选择跳转对应的调用接口FUNC_A1的处理。此外,在基础固件中处理完成相关操作后,还可以携带完成情况的信息逐级原路返回,即,将操作结果返回至调用函数CALL_A1。
图7示出了根据本公开一些实施例的计算系统整体运行流程示意图。计算系统上电启动后,处理器从基础固件开始取指执行,此时处于初始化阶段。基础固件首先进行运行环境的初始化(诸如异常向量表设置、异常使能、缓存设置、一致性设置、堆栈初始化等),此外,安全设备初始化、安全属性配置等功能设置也在此阶段进行。在运行环境初始化之后,处理器跳转到执行系统固件。系统固件可以首先建立运行环境。
接着,系统固件可以进行频率调节,例如调用对应于调频的子调用接口以调整芯片至目标频率,即,基础固件在被调用后基于提供的频率参数进行调频设置。接着,系统固件可以进行PCIe初始化,例如调用对应于PCIe初始化的子调用接口,以利用目标参数(诸如链路组合、宽度、速度、均衡值等)来配置PCIe控制器以及进行物理层(Physical Layer,PHY)初始化(用于PHY地址配置)。接着,系统固件可以进行内存初始化,例如调用对应于内存初始化的子调用接口以使得基础固件进行内存初始化以及训练安全域配置。类似地,系统固件还可以进行其他调用的过程,通过调用其他接口以进行针对其他硬件类别的其他初始化过程或功能(诸如core安全等级设置,调试控制服务)。在完成自适应地初始化调用之后,系统固件可以进行人机交互状态用户设置等过程,然后请求基础固件从初始化阶段进入到运行阶段。
在一些实现方式中,系统固件在基础固件处于运行阶段的情况下,无法调用与处理器参数初始化相关的调用接口,以防止误操作产生错误配置。此外,系统固件可以通过查询类的调用接口(如图7所示的查询接口)以及功能设置类的调用接口(如图7所示的功能接口)来获取处理器中的硬件的参数信息,调用时机可以由系统固件决定。例如,系统固件可以获取处理器核心位图、频率、用户标识以在交互界面进行显示。
在后续的固件更新过程中,通过遵循以上描述的额共识接口,基础固件以及系统固件便能直接进行更新升级,而不会让另一方也进行对应地更新,以避免额外的工作量。更进一步地,在后续同系列芯片的开发过程中,基础固件与系统固件中与此调用接口、调用函数相关的代码能够基本复用,新增代码则可以同步向前兼容。
在根据本公开的实施例中,由于上述针对处理器的初始化和参数获取操作是通过封装调用接口来实现的,基础固件方无需考虑不同外围应的细节设置,因此,同一处理器的基础固件便能支持多款外围硬件产品。使用统一的调用接口共识的基础固件和系统固件能同时进行开发,降低开发人员的沟通时间成本。
利用根据本公开一些实施例的基础固件配置方法、系统固件配置方法以及计算系统配置方法,通过在基础固件中提供调用接口,使得在处理器加电后,在调用接口被系统固件进行调用的情况下,由基础固件基于系统固件传输的配置参数实现对处理器的操作,由此系统固件能够通过调用上述调用接口来实现对于处理器的参数配置,以实现外围硬件参数适配,提高处理器的定制化能力,提升产品开发效率,有利于固件升级以及产品批量生产。此外,由于系统固件对处理器的参数配置是由调用接口来实现的,这能够在实现配置的基础上保证基础固件的安全性。
根据本公开的又一方面,还提供了一种计算装置。根据本公开一些实施例的计算装置可以包括计算系统。图8示出了根据本公开一些实施例的计算装置的示意性框图。具体的,计算装置1000的计算系统可以包括处理器1010以及与处理器1010具有连接关系的外围硬件1020。进一步地,计算系统可以搭载有上述基础固件和系统固件,其中,基础固件在被执行时用于实现与处理器相关的操作,系统固件在被执行时用于实现与外围硬件相关的操作,并启动操作系统。在基础固件中提供有调用接口,在系统固件中提供有调用函数,根据本公开实施例的计算装置1000可以配置成:在处理器加电后,利用系统固件的调用函数来调用基础固件的调用接口,将配置参数传输给基础固件;以及利用基础固件基于系统固件传输的配置参数实现对处理器的操作。
根据本公开的一些实施例,调用接口按照处理器中的硬件类别被划分为多个子调用接口,其中,在系统固件对处理器中属于第一硬件类别的硬件进行调用的情况下,通过调用与第一硬件类别相对应的子调用接口来实现对处理器的第一硬件类别的硬件的操作,其中,硬件类别包括以下中的一种或多种:处理器类别、存储器类别、接口类别、安全服务类别。以这种方式,能够针对处理器中的硬件类别的进行子调用接口的划分,以实现基于硬件类型的统一调用,这能够便利调用操作,也有助于代码的封装集成,还使得调用过程更加具有系统性。
根据本公开的一些实施例,基础固件对应于第一权限级别,系统固件对应于低于第一权限级别的第二权限级别,其中,系统固件基于安全监控呼叫指令切换至第一权限级别,以实现对基础固件的调用。以这种方式,可以实现系统固件对于基础固件的调用过程,由此原本权限较低的系统固件也可以参与到与处理器相关的操作过程,实现参数适配。
根据本公开的一些实施例,计算系统还可以包括通用寄存器,安全监控呼叫指令与通用寄存器具有对应关系,系统固件基于对应关系通过通用寄存器向基础固件传输配置参数。以这种方式,系统固件能够基于与之具有对应关系的通用寄存器来向基础固件传输配置参数,以使得基础固件能够按照系统固件传输的配置参数对处理器进行操作。
根据本公开的一些实施例,基础固件对应于第一权限级别,系统固件对应于低于第一权限级别的第二权限级别,其中,系统固件基于快速中断请求切换至第一权限级别,以实现对基础固件的调用。以这种方式,可以实现系统固件对于基础固件的调用过程,由此原本权限较低的系统固件也可以参与到与处理器相关的操作过程,实现参数适配。
根据本公开的一些实施例,计算系统还可以包括存储器,系统固件将配置参数存储在存储器中的配置地址处,系统固件通过快速中断请求向基础固件传输配置地址,以使得基础固件基于配置地址来获取配置参数。以这种方式,系统固件能够基于存储器中的配置地址来向基础固件传输配置参数,以使得基础固件能够按照系统固件传输的配置参数对处理器进行操作。
根据本公开的一些实施例,对处理器的操作包括初始化参数设置操作,配置参数包括初始化参数。计算装置中的系统固件可以配置成:将初始化参数传输给基础固件,以使得基础固件按照初始化参数,对处理器进行初始化参数设置。基于此,计算装置中的基础固件可以配置成:经由调用接口接收初始化参数;以及按照初始化参数,对处理器进行初始化参数设置。以这种方式,系统固件能够基于外围硬件的需求将初始化参数提供给基础固件,以使得基础固件能够根据该初始化参数进行初始化过程,实现参数适配。由此,系统固件能够通过调用接口参与到与处理器相关的初始化过程中,实现处理器的参数定制化。
根据本公开的一些实施例,对处理器的操作包括参数获取操作,配置参数包括用于指示要获取的参数的指示参数。计算装置中的系统固件可以配置成:将指示参数传输给基础固件,以使得基础固件根据指示参数,获取处理器中的硬件的参数;以及从基础固件获得处理器中的硬件的参数。基于此,计算装置中的基础固件可以配置成:经由调用接口接收指示参数;根据指示参数,获取处理器中的硬件的参数;以及经由调用接口将获取的处理器中的硬件的参数传输给系统固件。以这种方式,系统固件能够基于外围硬件的需求将需要获取的参数信息提供给基础固件,以使得基础固件能够根据该参数信息进行数据获取。
关于根据本公开一些实施例的计算装置1000所实现的功能可以参照上文描述的固件配置方法,在此不再重复描述。
作为一种实现方式,上述处理器1010可以是指片上系统的一个或多个处理器核心,或者可以是指中央处理单元等,其可以在加电后自动地执行固件程序以进行各种动作和处理,从而实现或者执行根据本公开实施例中公开的各种方法、步骤及逻辑框图。具体地,计算装置可以实现为通用处理器。
作为一些示例,本公开实施例中的处理器可以是指计算机系统的运算和控制核心,具有信息处理、运行指令等能力的处理单元。在一些示例中,外围硬件例如可以是第一类型设备,例如,第一类型设备可以是指与处理器具有连接关系的显示屏、输入设备(诸如,电源按键)、蓝牙设备、传感器等,在此不作限制。在一些示例中,外围硬件例如可以是第二类型设备,例如,第二类型设备可以是锁相环(Phase Locked Loop, PLL)、系统级芯片内存控制器、双倍速率同步动态随机存储器(Double DataRate Synchronous Dynamic RandomAccess Memory, DDR)、外设部件互连高速总线(Peripheral Component Interconnectexpress, PCIe)接口控制器等。
根据本公开的又一方面,还提供了一种计算设备。图9示出了根据本公开一些实施例的计算设备的示意性框图,如图9所示,计算设备2000可以包括处理器2010以及存储器2020。存储器2020中存储有计算机可读代码,计算机可读代码在由处理器2010运行时,执行如上所描述的基础固件配置方法、系统固件配置方法。
根据本公开的又一方面,还提供了一种计算设备。该计算设备可以包括处理器以及存储器。关于此计算设备的示意性框图可以参考图9。具体的,存储器中可以存储有计算机可读代码,该计算机可读代码在由处理器运行时,执行如上所描述的计算系统固件配置方法。
具体的,上述计算设备中的存储器可以实现为非易失性存储器,上述存储器中存储的计算机可读代码可以实现为固件程序的形式。处理器通过执行该固件程序来实现根据本公开实施例提供的上述方法。作为示例,非易失性存储器可以是可擦写可编程只读存储器(Electrically Programmable ROM, EPROM)、电可擦可编程只读存储器(ElectricallyErasable Programmable ROM, EEPROM)或者是快闪存储器(Flash Memory)等。具体的,固件程序可以是指计算设备内部保存的设备“驱动程序”,通过固件程序,操作系统能够按照标准的设备驱动实现特定机器的运行动作。应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
根据本公开实施例的固件配置方法或者装置也可以借助于图10所示的示例性的计算设备架构3000来实现。如图10所示,计算设备架构3000可以包括总线3010、一个或多个中央处理单元CPU 3020、只读存储器(ROM)3030、随机存取存储器(RAM)3040、连接到网络的通信端口3050、输入/输出3060、硬盘3070等。计算设备架构3000中的存储设备,例如ROM3030或硬盘3070可以存储本公开实施例提供的配置方法的处理和/或通信使用的各种数据或文件以及CPU所执行的程序指令。此外,计算设备架构3000还可以包括用户界面3080。
作为示例,上述处理器1010以及处理器2010可以实现为图10中的CPU。作为示例,上述存储器2020可以实现为图10中的ROM 3030,具体为EPROM或者EEPROM。作为示例,上述外围硬件1020可以实现为图10中的诸如硬盘3070、输入/输出3060,可以理解的是,外围硬件并不限于以上两者,其可以是与处理器具有连接关系的任意硬件。
当然,图10所示的架构只是示例性的,在实现不同的设备时,根据实际需要,可以省略图10示出的计算设备中的一个或多个组件。作为示例,上述计算设备架构3000可以实现为如图1A所示的计算机装置等,并且,计算设备中能够实施上文描述的根据本公开一些实施例提供的方法,并实现相应的技术效果,在此不再赘述。
本领域技术人员能够理解,本公开所披露的内容可以出现多种变型和改进。例如,以上所描述的各种设备或组件可以通过硬件实现,也可以通过软件、固件、或者三者中的一些或全部的组合实现。
此外,虽然本公开对根据本公开的实施例的系统中的某些单元做出了各种引用,然而,任何数量的不同单元可以被使用并运行在客户端和/或服务器上。单元仅是说明性的,并且系统和方法的不同方面可以使用不同单元。
本公开中使用了流程图用来说明根据本公开的实施例的方法的步骤。应当理解的是,前面或后面的步骤不一定按照顺序来精确的进行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中。
本领域普通技术人员可以理解上述方法中的全部或部分的步骤可通过计算机程序来指令相关硬件完成,程序可以存储于计算机可读存储介质中,如只读存储器等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本公开并不限制于任何特定形式的硬件和软件的结合。
除非另有定义,这里使用的所有术语具有与本公开所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
以上是对本公开的说明,而不应被认为是对其的限制。尽管描述了本公开的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本公开的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本公开范围内。应当理解,上面是对本公开的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本公开由权利要求书及其等效物限定。

Claims (22)

1.一种固件配置方法,其特征在于,所述方法应用于计算系统,所述计算系统包括处理器和与所述处理器具有连接关系的外围硬件,其中,所述计算系统搭载有基础固件和系统固件,所述基础固件在被执行时用于实现与所述处理器相关的操作,所述系统固件在被执行时用于实现与所述外围硬件相关的操作,并启动操作系统,在所述基础固件中提供有调用接口,所述方法包括:
在所述处理器加电后,在所述调用接口被所述系统固件进行调用的情况下,基于所述系统固件传输的配置参数实现对所述处理器的操作。
2.如权利要求1所述的方法,其特征在于,所述系统固件中提供有调用函数,所述系统固件通过所述调用函数对所述调用接口进行调用。
3.如权利要求1所述的方法,其特征在于,所述调用接口按照所述处理器中的硬件类别被划分为多个子调用接口,其中,在所述系统固件对所述处理器中属于第一硬件类别的硬件进行调用的情况下,通过调用与所述第一硬件类别相对应的子调用接口来实现对所述处理器的第一硬件类别的硬件的操作,其中,所述硬件类别包括以下中的一种或多种:处理器类别、存储器类别、接口类别、安全服务类别。
4.如权利要求1所述的方法,其特征在于,所述基础固件对应于第一权限级别,所述系统固件对应于低于所述第一权限级别的第二权限级别,其中,所述系统固件基于安全监控呼叫指令切换至所述第一权限级别,以实现对所述基础固件的调用。
5.如权利要求4所述的方法,其特征在于,所述计算系统还包括通用寄存器,所述安全监控呼叫指令与所述通用寄存器具有对应关系,所述系统固件基于所述对应关系通过所述通用寄存器向所述基础固件传输所述配置参数。
6.如权利要求1所述的方法,其特征在于,所述基础固件对应于第一权限级别,所述系统固件对应于低于所述第一权限级别的第二权限级别,其中,所述系统固件基于快速中断请求切换至所述第一权限级别,以实现对所述基础固件的调用。
7.如权利要求6所述的方法,其特征在于,所述计算系统还包括存储器,所述系统固件将所述配置参数存储在所述存储器中的配置地址处,所述系统固件通过所述快速中断请求向所述基础固件传输所述配置地址,以使得所述基础固件基于所述配置地址来获取所述配置参数。
8.如权利要求1所述的方法,其特征在于,所述对所述处理器的操作包括初始化参数设置操作,所述配置参数包括初始化参数,其中,所述基于所述系统固件传输的配置参数实现对所述处理器的操作包括:
经由所述调用接口接收所述初始化参数;以及
按照所述初始化参数,对所述处理器进行初始化参数设置。
9.如权利要求1所述的方法,其特征在于,所述对所述处理器的操作包括参数获取操作,所述配置参数包括用于指示要获取的参数的指示参数,其中,所述基于所述系统固件传输的配置参数实现对所述处理器的操作包括:
经由所述调用接口接收所述指示参数;
根据所述指示参数,获取所述处理器中的硬件的参数;以及
经由所述调用接口将获取的所述处理器中的硬件的参数传输给所述系统固件。
10.一种固件配置方法,其特征在于,所述方法应用于计算系统,所述计算系统包括处理器和与所述处理器具有连接关系的外围硬件,其中,所述计算系统搭载有基础固件和系统固件,所述基础固件在被执行时用于实现与所述处理器相关的操作,所述系统固件在被执行时用于实现与所述外围硬件相关的操作,并启动操作系统,在所述系统固件中提供有调用函数,所述方法包括:
在所述处理器加电后,通过所述调用函数基于配置参数来调用所述基础固件,以使得所述基础固件基于所述系统固件传输的所述配置参数实现对所述处理器的操作。
11.如权利要求10所述的方法,其特征在于,所述基础固件中提供有调用接口,所述系统固件通过调用所述调用接口来实现对所述基础固件的调用。
12.如权利要求11所述的方法,其特征在于,所述调用接口按照所述处理器中的硬件类别被划分为多个子调用接口,其中,在所述系统固件对所述处理器中属于第一硬件类别的硬件进行调用的情况下,通过调用与所述第一硬件类别相对应的子调用接口来实现对所述处理器的第一硬件类别的硬件的操作,其中,所述硬件类别包括以下中的一种或多种:处理器类别、存储器类别、接口类别、安全服务类别。
13.如权利要求10所述的方法,其特征在于,所述基础固件对应于第一权限级别,所述系统固件对应于低于所述第一权限级别的第二权限级别,其中,所述系统固件基于安全监控呼叫指令切换至所述第一权限级别,以实现对所述基础固件的调用。
14.如权利要求13所述的方法,其特征在于,所述计算系统还包括通用寄存器,所述安全监控呼叫指令与所述通用寄存器具有对应关系,所述系统固件基于所述对应关系通过所述通用寄存器向所述基础固件传输所述配置参数。
15.如权利要求10所述的方法,其特征在于,所述基础固件对应于第一权限级别,所述系统固件对应于低于所述第一权限级别的第二权限级别,其中,所述系统固件基于快速中断请求切换至所述第一权限级别,以实现对所述基础固件的调用。
16.如权利要求15所述的方法,其特征在于,所述计算系统还包括存储器,所述系统固件将所述配置参数存储在所述存储器中的配置地址处,所述系统固件通过所述快速中断请求向所述基础固件传输所述配置地址,以使得所述基础固件基于所述配置地址来获取所述配置参数。
17.如权利要求10所述的方法,其特征在于,所述对所述处理器的操作包括初始化参数设置操作,所述配置参数包括初始化参数,其中,所述通过所述调用函数基于配置参数来调用所述基础固件包括:
将所述初始化参数传输给所述基础固件,以使得所述基础固件按照所述初始化参数,对所述处理器进行初始化参数设置。
18.如权利要求10所述的方法,其特征在于,所述对所述处理器的操作包括参数获取操作,所述配置参数包括用于指示要获取的参数的指示参数,其中,所述通过所述调用函数基于配置参数来调用所述基础固件包括:
将所述指示参数传输给所述基础固件,以使得所述基础固件根据所述指示参数,获取所述处理器中的硬件的参数;以及
从所述基础固件获得所述处理器中的硬件的参数。
19.一种计算系统配置方法,其特征在于,所述计算系统包括处理器和与所述处理器具有连接关系的外围硬件,其中,所述计算系统搭载有基础固件和系统固件,所述基础固件在被执行时用于实现与所述处理器相关的操作,所述系统固件在被执行时用于实现与所述外围硬件相关的操作,并启动操作系统,在所述基础固件中提供有调用接口,在所述系统固件中提供有调用函数,所述方法包括:
利用所述基础固件进行所述计算系统的运行环境初始化操作;
利用所述系统固件中的所述调用函数来调用所述基础固件中的所述调用接口,以将初始化参数传输给所述基础固件;
利用所述基础固件按照所述系统固件传输的所述初始化参数,对所述处理器进行初始化参数设置;以及
利用所述系统固件引导启动所述操作系统。
20.如权利要求19所述的方法,其特征在于,所述方法还包括:
利用所述系统固件中的所述调用函数来调用所述基础固件中的所述调用接口,以将与所述系统固件要获取的参数相关联的指示参数传输给所述基础固件;
利用所述基础固件根据所述系统固件传输的所述指示参数,获取所述处理器中的硬件的参数;以及
利用所述基础固件将获取的所述处理器中的硬件的参数传输给所述系统固件。
21.一种计算装置,其特征在于,所述计算装置包括计算系统,计算系统包括处理器和与所述处理器具有连接关系的外围硬件,其中,所述计算系统搭载有基础固件和系统固件,所述基础固件在被执行时用于实现与所述处理器相关的操作,所述系统固件在被执行时用于实现与所述外围硬件相关的操作,并启动操作系统,在所述基础固件中提供有调用接口,在所述系统固件中提供有调用函数,所述计算装置配置成:
在所述处理器加电后,利用所述系统固件的所述调用函数来调用所述基础固件的所述调用接口,将配置参数传输给所述基础固件;以及
利用所述基础固件基于所述系统固件传输的配置参数实现对所述处理器的操作。
22.一种计算设备,其特征在于,所述计算设备包括:
处理器;和
存储器,其中,所述存储器中存储有计算机可读代码,所述计算机可读代码在由所述处理器运行时,执行如权利要求1-9中任一项所述的固件配置方法,或者执行如权利要求10-18中任一项所述的固件配置方法。
CN202210012027.7A 2022-01-07 2022-01-07 固件配置方法、计算系统配置方法、计算装置以及设备 Active CN114035842B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210012027.7A CN114035842B (zh) 2022-01-07 2022-01-07 固件配置方法、计算系统配置方法、计算装置以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210012027.7A CN114035842B (zh) 2022-01-07 2022-01-07 固件配置方法、计算系统配置方法、计算装置以及设备

Publications (2)

Publication Number Publication Date
CN114035842A true CN114035842A (zh) 2022-02-11
CN114035842B CN114035842B (zh) 2022-04-08

Family

ID=80147416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210012027.7A Active CN114035842B (zh) 2022-01-07 2022-01-07 固件配置方法、计算系统配置方法、计算装置以及设备

Country Status (1)

Country Link
CN (1) CN114035842B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114491565A (zh) * 2022-03-31 2022-05-13 飞腾信息技术有限公司 固件安全启动方法、装置、计算设备和可读存储介质
CN114579196A (zh) * 2022-05-06 2022-06-03 成都前锋信息技术股份有限公司 基于自学习的计算机启动盘启动顺序控制方法
CN114859868A (zh) * 2022-05-11 2022-08-05 中国第一汽车股份有限公司 一种乘用车组合仪表系统下线配置防错处理方法
CN115291957A (zh) * 2022-10-08 2022-11-04 北京大禹智芯科技有限公司 多处理器主板的初始化方法和装置

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4654779A (en) * 1982-09-24 1987-03-31 Fujitsu Limited Multiprocessor system including firmware
US20030217255A1 (en) * 2002-05-10 2003-11-20 Wyatt David A. Arrangements for initialization-time and run-time integration of firmware and software extensions for supporting add-in hardware
CN1848760A (zh) * 2005-08-30 2006-10-18 华为技术有限公司 软件组件参数配置方法及系统、及其终端设备
CN102541579A (zh) * 2010-12-17 2012-07-04 沈阳新邮通信设备有限公司 嵌入式系统应用程序动态加载的方法
CN104572165A (zh) * 2014-03-21 2015-04-29 中电科技(北京)有限公司 一种基于飞腾服务器的uefi固件实现方法
CN206147469U (zh) * 2016-08-30 2017-05-03 中国电子科技集团公司第十五研究所 一种提高外部存储设备访问性能的飞腾计算机
CN108037932A (zh) * 2017-12-07 2018-05-15 北京兆易创新科技股份有限公司 Spi-nand的配置文件获取方法和装置
CN109413499A (zh) * 2018-10-24 2019-03-01 深圳市康冠技术有限公司 安卓电视固件的配置方法、系统及设备
CN109690514A (zh) * 2016-10-11 2019-04-26 英特尔公司 可自动配置的主机可插拔计算
CN111352666A (zh) * 2018-12-21 2020-06-30 三星电子株式会社 用于将应用函数卸载到装置的系统和方法
CN111708577A (zh) * 2020-05-29 2020-09-25 苏州浪潮智能科技有限公司 一种自适配处理器型号和vr参数的方法和设备
CN111783163A (zh) * 2020-07-01 2020-10-16 联想(北京)有限公司 一种主机保护区的实现方法、装置和电子设备
CN111866557A (zh) * 2020-06-12 2020-10-30 广州视源电子科技股份有限公司 大屏显示设备的配置方法、装置、存储介质以及电子设备
US20200387325A1 (en) * 2019-06-10 2020-12-10 Microsoft Technology Licensing, Llc Non-volatile storage partition identifier
CN112269980A (zh) * 2020-10-30 2021-01-26 大唐高鸿信安(浙江)信息科技有限公司 处理器架构
CN112306550A (zh) * 2020-10-30 2021-02-02 广州朗国电子科技有限公司 一版固件兼容多个板卡方法、装置、存储介质及终端
CN113747043A (zh) * 2020-05-29 2021-12-03 Oppo广东移动通信有限公司 图像处理器启动方法、电子设备和存储介质
CN113805964A (zh) * 2021-09-10 2021-12-17 济南浪潮数据技术有限公司 一种固件配置项目录生成优化方法、装置、设备及介质

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4654779A (en) * 1982-09-24 1987-03-31 Fujitsu Limited Multiprocessor system including firmware
US20030217255A1 (en) * 2002-05-10 2003-11-20 Wyatt David A. Arrangements for initialization-time and run-time integration of firmware and software extensions for supporting add-in hardware
CN1848760A (zh) * 2005-08-30 2006-10-18 华为技术有限公司 软件组件参数配置方法及系统、及其终端设备
CN102541579A (zh) * 2010-12-17 2012-07-04 沈阳新邮通信设备有限公司 嵌入式系统应用程序动态加载的方法
CN104572165A (zh) * 2014-03-21 2015-04-29 中电科技(北京)有限公司 一种基于飞腾服务器的uefi固件实现方法
CN206147469U (zh) * 2016-08-30 2017-05-03 中国电子科技集团公司第十五研究所 一种提高外部存储设备访问性能的飞腾计算机
CN109690514A (zh) * 2016-10-11 2019-04-26 英特尔公司 可自动配置的主机可插拔计算
CN108037932A (zh) * 2017-12-07 2018-05-15 北京兆易创新科技股份有限公司 Spi-nand的配置文件获取方法和装置
CN109413499A (zh) * 2018-10-24 2019-03-01 深圳市康冠技术有限公司 安卓电视固件的配置方法、系统及设备
CN111352666A (zh) * 2018-12-21 2020-06-30 三星电子株式会社 用于将应用函数卸载到装置的系统和方法
US20200387325A1 (en) * 2019-06-10 2020-12-10 Microsoft Technology Licensing, Llc Non-volatile storage partition identifier
CN111708577A (zh) * 2020-05-29 2020-09-25 苏州浪潮智能科技有限公司 一种自适配处理器型号和vr参数的方法和设备
CN113747043A (zh) * 2020-05-29 2021-12-03 Oppo广东移动通信有限公司 图像处理器启动方法、电子设备和存储介质
CN111866557A (zh) * 2020-06-12 2020-10-30 广州视源电子科技股份有限公司 大屏显示设备的配置方法、装置、存储介质以及电子设备
CN111783163A (zh) * 2020-07-01 2020-10-16 联想(北京)有限公司 一种主机保护区的实现方法、装置和电子设备
CN112269980A (zh) * 2020-10-30 2021-01-26 大唐高鸿信安(浙江)信息科技有限公司 处理器架构
CN112306550A (zh) * 2020-10-30 2021-02-02 广州朗国电子科技有限公司 一版固件兼容多个板卡方法、装置、存储介质及终端
CN113805964A (zh) * 2021-09-10 2021-12-17 济南浪潮数据技术有限公司 一种固件配置项目录生成优化方法、装置、设备及介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114491565A (zh) * 2022-03-31 2022-05-13 飞腾信息技术有限公司 固件安全启动方法、装置、计算设备和可读存储介质
CN114579196A (zh) * 2022-05-06 2022-06-03 成都前锋信息技术股份有限公司 基于自学习的计算机启动盘启动顺序控制方法
CN114859868A (zh) * 2022-05-11 2022-08-05 中国第一汽车股份有限公司 一种乘用车组合仪表系统下线配置防错处理方法
CN114859868B (zh) * 2022-05-11 2024-04-16 中国第一汽车股份有限公司 一种乘用车组合仪表系统下线配置防错处理方法
CN115291957A (zh) * 2022-10-08 2022-11-04 北京大禹智芯科技有限公司 多处理器主板的初始化方法和装置

Also Published As

Publication number Publication date
CN114035842B (zh) 2022-04-08

Similar Documents

Publication Publication Date Title
CN114035842B (zh) 固件配置方法、计算系统配置方法、计算装置以及设备
EP3556080B1 (en) Secure iot device update
JP6053786B2 (ja) Arm(登録商標)トラストゾーン実施のためのファームウェア基盤トラステッドプラットフォームモジュール(tpm)
US11809544B2 (en) Remote attestation for multi-core processor
US9189631B2 (en) Firmware authentication
US8201239B2 (en) Extensible pre-boot authentication
US10402567B2 (en) Secure boot for multi-core processor
US20090055641A1 (en) Method and apparatus for virtualization of a multi-context hardware trusted platform module (TPM)
CN107567629B (zh) 在可信执行环境容器中的动态固件模块加载器
US20210342169A1 (en) Emulating physical security devices
CN115981776A (zh) 位于服务器网络接口卡处的基板管理控制器
CN113452666A (zh) Ip独立的安全固件加载
US6963970B2 (en) System and method for executing a fast reset of a computer system
US20240160431A1 (en) Technologies to update firmware and microcode
US20220019426A1 (en) Method device and system for upgradable microcode (ucode) loading and activation in runtime for bare metal deployment
US9727390B1 (en) Invoking a firmware function
US11531760B1 (en) Baseboard management controller (BMC)-based security processor
CN116069584B (zh) 将监控服务扩展到可信云运营商域中
CN106155682A (zh) 一种基于SDMA控制器的Linux系统启动方法及系统
CN115221549A (zh) Lpc总线安全访问方法、系统、终端及存储介质
US11995452B2 (en) Firmware memory map namespace for concurrent containers
US11847226B1 (en) Baseboard Management Controller (BMC)-based security processor
EP4428733A2 (en) Remote attestation for multi-core processor
CN116610627A (zh) 双操作系统异构多核SoC芯片及双操作系统部署方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant