CN105579953A - 灵活引导程序代码架构 - Google Patents

灵活引导程序代码架构 Download PDF

Info

Publication number
CN105579953A
CN105579953A CN201380079912.6A CN201380079912A CN105579953A CN 105579953 A CN105579953 A CN 105579953A CN 201380079912 A CN201380079912 A CN 201380079912A CN 105579953 A CN105579953 A CN 105579953A
Authority
CN
China
Prior art keywords
equipment
module
boot
bootstrap module
guiding
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
CN201380079912.6A
Other languages
English (en)
Other versions
CN105579953B (zh
Inventor
V.J.兹姆梅
H.P.安文
M.A.罗斯曼
D.C.埃斯特拉达
N.J.尤科
G.塞瓦拉杰
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN105579953A publication Critical patent/CN105579953A/zh
Application granted granted Critical
Publication of CN105579953B publication Critical patent/CN105579953B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded

Landscapes

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

Abstract

本公开针对灵活引导程序代码架构。设备可以包括用于操作设备的装置和用于操作装置的操作系统(OS)。引导模块也可以被包括在设备中以执行引导操作。引导模块中的至少一个灵活引导(FB)模块可以在引导操作期间与装置和/或OS交互以使引导操作变为设备特定的。示例引导模块可以包括多个FB模块。示例FB模块可以验证设备/芯片组标识并可以基于标识控制引导操作。其它示例FB模块可以基于OS类型选择要加载的资源,可以提供引导配置表位置以供OS运行时引导配置之用或者可以从预加载变量目录加载变量以供配置引导操作之用。

Description

灵活引导程序代码架构
技术领域
本公开涉及设备引导操作,并且更特别地,涉及能够适配于引导设备的不同特性的灵活引导程序代码。
背景技术
计算技术中的快速发展步伐已经造成针对关于硬件与软件之间的交互的灵活性的需求。例如,新兴的计算设备、操作系统(OS)、应用等需要具有某种程度的相互作用,使得较旧的硬件可以保持与较新的软件兼容并且反之亦然。开放架构的引入也已经造成针对灵活性的需要。其中装置可以被配置成仅运行由装置制造商标识的某个软件(例如OS)的场景仍旧存在,但已经由可能迎合不同装置/软件配置的多种其它提供商加入。这些提供商包括大型公司、小型公司、财团、联盟、教育机构、业余爱好者等。从该大批提供商,用户可以合并硬件和软件以满足其具体需要,从而基于其对性能、可靠性等的要求来选择特征。
虽然从多种解决方案进行选择的能力对消费者而言可能是诱人的,但是其并非没有伴随一些挑战。例如,集成装置与从不同源获得的软件可能使得需要创建各种提供商所意图或甚至预想到的OS/硬件组合。在设备启动期间可以执行的引导程序操作意图建立设备的软件方面和硬件资源之间的链接。随着计算设备内的技术持续演进,实现引导程序操作所依照的传统方式正在变得不能处置被市场中的多种源使得可用的数目日益增加的可能设备/OS组合。不能使传统引导程序操作适配于这些组合正在变得对发展来说成问题,且已经被一些开源软件提供商指明为对硬件/软件集成的障碍。
附图说明
随着以下具体实施方式的进行,并且当参照附图时,所要求保护的主题的各种实施例的特征和优点将变得显而易见,在附图中相似的标号标明相似的部分,并且在附图中:
图1图示了依照本公开的至少一个实施例的包括灵活引导程序代码架构的示例设备;
图2图示了依照本公开的至少一个实施例的用于设备的示例配置;
图3图示了依照本公开的至少一个实施例的用于实现灵活引导程序代码架构的示例操作;
图4图示了依照本公开的至少一个实施例的用于感测设备或芯片组标识的示例设备特定操作;
图5图示了依照本公开的至少一个实施例的用于感测操作系统类型的示例设备特定操作;
图6图示了依照本公开的至少一个实施例的用于向操作系统提供引导配置表的位置的示例设备特定操作;以及
图7图示了依照本公开的至少一个实施例的用于感测预加载目录中的引导变量的示例设备特定操作。
尽管以下具体实施方式将在对说明性实施例做出参考的情况下进行,但是其许多可替换方案、修改和变型对本领域技术人员而言将是显而易见的。
具体实施方式
本公开针对灵活引导程序代码架构。设备可以包括用于操作设备的装置和用于操作装置的操作系统(OS)。引导模块也可以被包括在设备中以在设备被激活时执行引导操作。引导模块中的至少一个灵活引导(FB)模块可以在引导操作期间与装置和/或OS交互以使引导操作变为设备特定的。示例引导模块可以包括用于施行不同功能的分离FB模块。示例FB模块可以验证设备和/或芯片组标识并基于标识控制引导操作。其它示例FB模块可以基于所确定的OS类型选择要加载的资源(例如内核),可以提供引导配置表的位置以供OS运行时引导配置之用,或者可以从预加载变量目录加载变量以供配置引导操作之用。
在一个实施例中,示例设备可以至少包括装置、OS和引导模块。装置可以提供设备中的功能。OS可以促进装置的操作。引导模块可以在设备的激活之后执行引导操作,引导模块包括至少一个灵活引导(FB)模块以例如在引导操作期间与装置或OS中的至少一个交互并基于交互生成设备特定引导操作。
在一个实施例中,至少一个FB模块基于包括在引导模块中的字节码进行操作,字节码在引导操作期间被解释。至少一个FB模块基于交互生成设备特定引导操作可以包括:例如,如果未识别到设备标识或芯片组标识中的至少一个,则至少一个FB模块使引导操作中止。至少一个FB模块基于标识生成设备特定引导操作还可以包括:例如,至少一个FB模块基于与OS相关联的字长度来使特定内核在引导操作期间加载在设备中。字长度可以基于例如在引导操作期间计算自然整数的大小而感测。至少一个引导模块在引导操作期间与装置或OS中的至少一个交互可以包括:例如,至少一个引导模块感测存在于设备中的特定目录中的引导变量。至少一个FB模块基于交互生成设备特定引导操作还可以包括:例如,至少一个FB模块在加载设备中的OS之前导致数据从引导模块拷贝到引导变量或数据从引导变量拷贝到引导模块中的至少一个。
在相同或不同的实施例中,至少一个FB模块基于交互生成设备特定引导操作还可以包括:例如,至少一个FB模块通过使物理地址写入到设备中的存储器中的非易失性变量来使引导模块中的信息对装置或OS中的至少一个来说可访问,物理地址指示与引导模块相关联的配置表在存储器中的位置。在这样的实例中,OS可以包括允许OS访问存储器中的非易失性变量的内容的应用程序接口。在一个示例实现中,引导模块可以基于统一可扩展固件接口(UEFI)规范。
与本公开一致的方法可以包括:例如,发起至少包括装置、OS和引导模块的设备中的引导操作,确定引导模块是否包括至少一个FB模块以在引导操作期间与装置或OS中的至少一个交互,以及基于引导模块是否包括至少一个FB模块的确定来施行默认引导操作或设备特定引导操作。施行设备特定引导操作可以包括:例如,如果未识别到从装置感测的设备标识或芯片组标识中的至少一个,则使引导操作中止。施行设备特定引导操作还可以包括:例如,基于与OS相关联的字长度来使特定内核在引导操作期间加载在设备中。字长度可以基于例如在引导操作期间计算自然整数的大小而感测。在引导操作期间与装置或OS中的至少一个交互可以包括:例如,感测存在于设备中的特定目录中的引导变量。施行设备特定引导操作还可以包括:例如,在加载设备中的OS之前导致数据从引导模块拷贝到引导变量或者数据从引导变量拷贝到引导模块中的至少一个。施行设备特定引导操作还可以包括:例如,通过使物理地址写入到设备中的存储器中的非易失性变量来使引导模块中的信息对装置或OS中的至少一个来说可访问,物理地址指示与引导模块相关联的配置表在存储器中的位置。在这样的实例中,OS可以包括允许OS访问存储器中的非易失性变量的内容的应用程序接口。在一个示例实现中,引导模块可以基于统一可扩展固件接口(UEFI)规范。
图1图示了依照本公开的至少一个实施例的包括灵活引导程序代码架构的示例设备。以下公开内容可以利用诸如“引导程序”或“引导”之类的术语以引用在设备被激活之后可能活跃(例如执行引导操作)的资源(例如硬件、软件等)。引导操作可以发动各种驱动器、内核等以提供硬件和软件(例如OS)可通过其交互的接口。针对引导代码的已知规范可以包括基本输入/输出系统(BIOS)、统一可扩展固件接口(UEFI)等。虽然本文所呈现的许多示例可以利用通常与UEFI相关联的术语、元件、系统等,但是这些引用仅仅出于解释的目的而做出。与本公开一致的各种实施例不限于仅使用UEFI的实现,且可以采用基于其它引导规范的编码。
图1公开了包括灵活引导程序代码架构的示例设备。一般而言,设备100可以是任何处理器驱动的计算设备。设备100的示例可以包括但不限于:诸如基于Android?OS、iOS?、Windows?OS、Blackberry?OS、Palm?OS、Symbian?OS等的蜂窝手机或智能电话之类的移动通信设备;诸如像iPad?、Surface?、GalaxyTab?、KindleFire?等的平板计算机、包括由Intel公司制造的低功率芯片组的Ultrabook?、上网本、笔记本、膝上型电脑、掌上电脑等之类的移动计算设备;诸如台式计算机、服务器、机顶盒、智能电视、专用控制器(例如自动化控制器)等之类的典型静止计算设备。设备100可以包括引导模块102、装置104和OS106。引导模块102可以包括诸如其中可存储引导代码的非易失性(NV)存储器之类的硬件。引导代码典型地包括当设备100被激活(例如由于设备100上电、来自重启设备100的命令等)时执行引导操作的经编译的程序代码。一般而言,引导操作可以配置设备100使得装置104可能能够与OS106交互。装置104可以至少包括设备100中的任何硬件。OS106可以包括基于软件的控制系统以用于管理设备100中的操作。
引导模块102可以包括例如FB模块108A、FB模块108B、FB模块108C、FB模块108D……FB模块108n(共同称为FB模块108A……n)。虽然在图1中图示了五(5)个FB模块108A……n,但是在实践中FB模块108A……n的数目可以取决于特定实现而变化。在一个实施例中,FB模块108A……n可以是当设备100被激活时由引导模块102执行的引导代码内的代码部分。在操作期间,FB模块108A……n可以与装置104和/或OS106交互,如交互110A、110B、110C和110D(共同称为交互110A……D)所示。示例交互110A……D可以包括感测110A、感测110B、提供110C和感测110D。在感测110A、110B和110D中,FB模块108A、108B和108D分别可以确定装置104和/或OS106的某个特性以供制定设备特定引导操作112之用。可替换地,在提供110C中,FB模块108C可以在设备特定引导操作112期间向装置104和/或OS106提供信息。FB模块108A……D、交互110A……D、以及交互110A……D可如何影响设备特定引导操作112的示例将关于图3至7进一步公开。
图2图示了依照本公开的至少一个实施例的用于设备的示例配置。特别地,设备100'可能能够施行诸如图1中所公开的示例功能。然而,设备100'仅意图作为在与本公开一致的实施例中可使用的装置示例,且不意图将这些各种实施例限制于实现的任何特定方式。
设备100'可以包括例如被配置成管理设备操作的系统模块200。系统模块200可以包括例如处理模块202、存储器模块204、功率模块206、用户接口模块208和通信接口模块210。设备100'还可以包括可与通信接口模块210交互的通信模块212。虽然通信模块212已经与系统模块200分离地示出,但是本文中仅仅为了解释而提供了设备100'的示例实现。与通信模块212相关联的一些或全部功能还可以被合并在系统模块200中。
在设备100'中,处理模块202可以包括位于分离组件中的一个或多个处理器,或者可替换地,体现在单个组件中(例如在片上系统(SoC)配置中)的一个或多个处理核和任何处理器相关支持电路(例如桥接接口等)。示例处理器可以包括但不限于从Intel公司可得到的各种基于x86的微处理器,包括Pentium、Xeon、Itanium、Celeron、Atom、Corei系列产品族中的那些微处理器、高级RISC(例如精简指令集计算)机器或“ARM”处理器等。支持电路的示例可以包括被配置成提供处理模块202通过其可与设备100'中的可以以不同速度操作、在不同总线上操作等的其它系统组件交互的接口的芯片组(例如从Intel公司可得到的北桥、南桥等)。通常与支持电路相关联的一些或全部功能还可以被包括在与处理器相同的物理封装中(例如诸如在从Intel公司可得到的处理器的SandyBridge族中)。
处理模块202可以被配置成执行设备100'中的各种指令。指令可以包括被配置成使处理模块202施行涉及读取数据、写入数据、处理数据、制定数据、转换数据、变换数据等的活动的程序代码。信息(例如指令、数据等)可以存储在存储器模块204中。存储器模块204可以包括具有固定或可移除格式的随机存取存储器(RAM)或只读存储器(ROM)。RAM可以包括被配置成在设备100'的操作期间持有信息的易失性存储器,诸如例如静态RAM(SRAM)或动态RAM(DRAM)。ROM可以包括被配置有引导模块102'(例如基于BIOS、UEFI等)以在设备100'激活时提供指令的非易失性(NV)存储器、诸如电子可编程ROM(EPROM)、闪存等之类的可编程存储器。其它固定/可移除存储器可以包括但不限于诸如例如软盘、硬盘驱动器等之类的磁存储器、诸如固态闪速存储器(例如嵌入式多媒体卡(eMMC)等)、可移除存储器卡或棒(例如微存储设备(uSD)、USB等)之类的电子存储器、诸如基于压缩盘的ROM(CD-ROM)之类的光学存储器等等。
功率模块206可以包括内部电源(例如电池)和/或外部电源(例如机电或太阳能发电机、电网、燃料电池等)以及被配置成为设备100'供给操作所需的功率的相关电路。用户接口模块208可以包括允许用户与设备100'交互的装置和/或软件,诸如例如各种输入机构(例如麦克风、开关、按钮、旋钮、键盘、扬声器、触敏表面、被配置成捕获图像和/或感测接近性、距离、运动、手势、取向等的一个或多个传感器)和各种输出机构(例如扬声器、显示器、点亮/闪光指示器、用于振动、运动的机电组件等)。用户接口模块208中的装置可以被合并在设备100'内和/或可以经由有线或无线通信介质耦合到设备100'。
通信接口模块210可以被配置成管理分组路由和用于通信模块212的其它控制功能,其可以包括被配置成支持有线和/或无线通信的资源。在一些实例中,设备102'可以包括全部由集中式通信接口模块210管理的多于一个通信模块212(例如包括用于有线协议和/或无线电台的分离物理接口模块)。有线通信可以包括串行和并行有线介质,诸如例如以太网、通用串行总线(USB)、火线、数字视频接口(DVI)、高清多媒体接口(HDMI)等。无线通信可以包括例如极近无线介质(例如射频(RF),诸如基于近场通信(NFC)标准、红外(IR)等)、短程无线介质(例如蓝牙、WLAN、Wi-Fi等)和长程无线介质(例如蜂窝广域无线电通信技术、基于卫星的通信等)。在一个实施例中,通信接口模块210可以被配置成防止在通信模块212中活跃的无线通信彼此干扰。在施行该功能时,通信接口模块210可以基于例如等待传输的消息的相对优先级调度用于通信模块212的活动。虽然图2中公开的实施例图示了通信接口模块210与通信模块212分离,但是同样可以是可能的是,通信接口模块210和通信模块212的功能被合并在相同模块内。
图3图示了依照本公开的至少一个实施例的用于实现灵活引导程序代码架构的示例操作。最初,图3至7中公开的一些或全部操作的执行可以是通过使用经解释的引导代码而不是传统经编译的引导代码来编排的。经解释的引导代码而不是经编译的引导代码的使用可以允许在执行引导代码期间做出逻辑操作,且因而允许基于交互110A……D修改发生在引导代码中的活动。在其中利用基于UEFI规范的引导代码的示例实现中,EFI字节码(EBC)是可被采用以实现诸如图3至7中公开的示例操作的经解释的字节码。EBC被原始设计用于支持外围组件互连(PCI)总线上的主机总线适配器(HBA)卡中的便携式驱动器,但可以重新目的化以通用于执行诸如以下示例中公开的各种引导相关操作。
图3公开了与本公开的各种实施例一致的一般操作流程。在操作300中,可以在设备100中发起引导操作。例如,设备100可以从未供电状态加电,可以从供电状态重启等。然后可以在操作302中做出关于设备100中的引导模块102是否包括至少一个FB模块108A……n的确定。如果在操作302中确定引导模块102不包括至少一个FB模块108A……n,则在操作304中设备100可以继续默认引导操作。另一方面,如果在操作302中确定设备102包括至少一个FB模块108A……n,则在操作306中设备100可以继续设备特定引导操作。图4至7公开了在与本公开一致的各种实施例中可单独或组合实现的设备特定引导操作的示例。
图4图示了依照本公开的至少一个实施例的用于感测设备或芯片组标识的示例设备特定操作。在图4中,公开了可以基于设备或芯片组标识(ID)来控制是否可以引导设备100的示例引导操作。例如,随着针对硬件和软件的提供商的种类持续扩充,可实现的装置104和/或OS106的各种组合也持续扩充。从兼容性、性能或甚至策略的观点,对计算设备制造商和终端用户二者来说可以有利的是,仅允许采用某个装置104(例如处理器、存储器等)。在一个场景中,制造商可以利用诸如在图4中公开的功能来确保在被递送给其客户的计算产品中维持质量而不管供应链、用户等换出装置104的能力如何。另外,可以通过确保仅某些二进制文件可以与某个装置104一起使用来保护技术,可以通过使得难以换入被盗装置104来降低盗窃的吸引力等等。
在操作400中,可以感测设备或芯片组ID(例如通过FB模块108A)。在其中利用UEFI的实例中,UEFI驱动器可以作为与EBC解释器兼容的具有.efiPE/COFF格式的二进制图像而递送。结果得到的基于UEFI的经解释的字节码可以被采用以针对具体设备或芯片组ID而探查设备100。而且,可以采用抗篡改软件使得FB模块108A可以不被反向工程(例如,出于打破设备/芯片组ID验证的目的)。驱动器还可以被封装为经认证的代码模块(ACM),其可以通过芯片组密钥而签名(例如在诸如安全区域(secureenclave)之类的受信执行环境中)。设备或芯片组ID可以对应于设备或芯片组的制造商、设备或芯片组的模型、设备或芯片组的序列号等。芯片组ID还可以包括对应于芯片组中的个体组件的ID(例如,如果可得到的话)。然后可以在操作402中做出关于是否识别到设备或芯片组ID的确定。如果在操作402中识别到设备或芯片组ID,则在操作404中可以允许设备继续OS引导操作。可替换地,如果在操作402中未识别到设备或芯片组ID,则在操作406中可以中止引导操作并且可以报告错误。错误报告可以包括例如经由用户接口模块208呈现的可见报警和/或可听警报、经由通信模块212在设备100外部(例如向设备制造商)发送的消息等。在报告之后,中止引导操作可以导致设备100掉电。
图5图示了依照本公开的至少一个实施例的用于感测操作系统类型的示例设备特定操作。图5中的FB模块108B可以被配置成在引导操作的执行期间至少感测OS类型。例如,现有PC/ATBIOS可能能够发动32位或64位OS。然而,在其中引导模块102基于UEFI的实例中,引导模块102仅能够发动对照与引导模块102相同的应用二进制接口(ABI)而编译的OS内核(例如,64位UEFI仅能够发动64位UEFI感知OS)。该约束造成问题,因为设备100不能证实多个OSABI(例如32位或64位),并且因此,设备100被重配置有另一OS106的灵活性严重受限。
在一个实施例中,功能可以被合并到设备100的引导操作中以允许基于OS106发动适当资源。在操作500中可以选择用于OS106的加载器。然后可以在操作502中做出关于加载器是否是解释性的确定。类似于图4中公开的示例,作为具有.efiPE/COFF格式的二进制图像而递送的UEFI驱动器可以被EBC解释器采用以施行感测110B。如果在操作502中确定在操作500中选择的OS加载器不是解释性的,则在操作504中引导操作可以继续本机(例如默认)OS加载器。如果在操作502中确定所选OS加载器是解释性的,则在操作506中可以针对OS106的类型而施行查询。与本公开一致地,可以在操作506中施行各种查询。例如,高水平查询可以返回OS类型、制造商、所包括的特征、序列号等。确定OS106的类型的更加可移植的方式可以是计算OS106中的自然整数的大小。当采用UEFI时,整数大小可以由“sizeof(INTN)”命令确定。整数大小可以决定OS类型,因为32位OS中的整数的大小小于64位OS中的大小。
然后可以在操作508中做出关于在设备100中是否存在对应于针对OS106确定的类型的内核的确定。如果在操作508中确定适当内核不存在于设备100中,则在操作510中可以中止引导操作并且可以报告错误。类似于上文,在报告错误时,可以显示报警消息和/或可以在设备100中生成可听警报,可能连同传输(例如,到设备100的制造商)的信息。如果在操作508中确定设备100中的至少一个内核兼容到OS106,则在操作512中可以引用兼容内核(例如通过FB模块108B)。在内核的加载之后,在操作514中OS引导操作可以继续。
图6图示了依照本公开的至少一个实施例的用于向OS提供引导配置表的位置的示例设备特定操作。一般而言,有时可能必要的是,使终端用户访问设备100中的引导配置设置。典型地通过中断设备100中的引导操作以提出初步用户接口来访问引导配置设置。虽然这种配置方式已经令人满意,但是在针对计算设备的竞争性市场中存在提高用户体验的持续努力。可改进用户体验的一种方式是通过更好的外观/功能用户接口。然而,再造由引导模块102提供的用户接口的能力受到诸如引导模块102中的NV存储器的有限大小、不“从事不必要的重复劳动”而同时还冒着侵犯涉及用户接口的其它方的知识产权的风险的期望等之类的各种因素的限制。
一种可能的解决方案是将引导配置操作移动到OS运行时应用。这将允许用户配置熟悉的环境中的引导操作,且因而改进用户体验。然而,关于将引导配置移动到运行时应用的至少一个问题在于引导配置信息典型地不暴露给OS106。与本公开一致地,可以通过向OS106告知引导配置信息在存储器中的位置将引导配置移动到OS运行时应用。使用UEFI作为示例,EFI系统表是封装EFI操作环境的状态信息的数据结构。EFI系统表可以包括引导服务函数指针、运行时服务函数指针、版本信息和全局唯一标识符(GUID)/指针对的可扩展集合。第一服务集合可以仅在希望在所述驱动器在OS环境中安装之前利用EFI服务和设备驱动器的预引导中介(例如操作系统加载器)之前是贴切的。下一服务集合可以是从OS运行时环境可调用的,但可以仅由OS内核直接可调用以便保证相互排除和受控访问。GUID/指针对是2元组的可扩展集合。存在可允许中介将这两个值向EFI核登记的引导服务应用编程接口(API)。已经被提供以经由该API支持OS106的记入文档的GUID可以包括但不限于指向高级配置和功率接口(ACPI)表的指针、指向系统管理BIOS(SMBIOS)的指针和指向系统抽象层(SAL)系统表的指针。但是由于该接口仅规定命名和指针,并且可能GUID的命名空间是无边际的,因而存在其它系统在该表(其还被称为EFI配置表)中登记域特定信息的机会。使EFI配置表对106来说可访问允许将ACPI操作区被调用到平台逻辑中,且进而允许检索向平台登记的内容的物理地址。以此方式向OS106暴露EFI配置表允许遵从ACPI的OS中介以标准方式询问“EFI配置表在哪里?”OS106然后可以自动充当对下层固件的代理。
在操作600中,可以将关键信息存储在引导配置表(例如EFI配置表)中。例如,应用、驱动器等可以在设备100的激活之后的系统初始化的预引导阶段中存储关键数据。在基于UEFI的引导模块102中,可以利用存储在EFI配置表中的GUID/指针对来记录该关键数据在存储器中的位置。虽然需要对关键数据的访问以支持运行时环境中的引导配置,但是现有计算设备架构不向非内核应用驱动器暴露EFI配置表。
为了规避该障碍,在操作602中可以将引导配置表的地址存储在NV变量(例如存储在引导模块102中的NV存储器中的变量)中。例如,FB模块108C可以使地址存储在NV变量中。然后可以在操作604中继续OS引导操作,接着,设备100在操作606中进入运行时环境。设备100可以在运行时环境中继续,直到在操作608中做出要求对引导配置表的访问的确定。操作608中的确定可以基于例如设备100的用户对引导配置应用的激活。在操作610中可以访问包含配置表的地址的变量。特别地,OS106必须通过OSAPI暴露对NV变量的访问。运行时应用可以利用API访问NV变量,并在操作612中可以基于NV变量的内容确定引导配置表的物理地址。在操作614中可以由运行时应用采用引导配置表的地址以访问引导配置表。访问引导配置表可以包括例如读取引导配置表的内容、编辑引导配置表的内容、在引导配置表中存储新值等。访问引导配置表可以伴随有用户接口相关活动,诸如向用户显示引导配置表的一些或全部内容、基于用户交互促进对引导配置表的内容的改变等。
图7图示了依照本公开的至少一个实施例的用于感测预加载目录中的引导变量的示例设备特定操作。一般而言,图7描述了其中感测110D可以由FB模块108D施行以确定是否针对存储在预加载目录中的引导变量要求得到/设置操作的操作。在现有系统中,可能合期望的是,将引导模块102中的物理地址映射到(例如在引导操作期间引用的)内核中的虚拟地址,使得OS106不需要在向引导模块102做出运行时调用时实现模式转变。当引导模块102基于UEFI时,可被用于执行以上映射的函数是SetVirtualAddress()(SetVA)。在一些实例中,可能有利的是执行映射多于一次。例如,Linux包括像“KEXEC”那样的函数,其中经加载的内核可以引用另一内核。由于SetVA不是等幂的(例如,SetVA不能被调用多于一次而不改变超出初始调用的结果),因此KEXEC对其它内核的引用将导致将破坏设备100的另外的SetVA调用。现有Linux内核采用KEXEC以用于恢复、供应、升级等。像KEXEC那样的函数的普遍使用对LinuxOS可能不是排他的,并且因而,不能使用像KEXEC那样的函数可能阻碍像UEFI那样的规范的接受。修复该问题已经证明是困难的,因为其已经存在了许多年。
与本公开一致地,较安全的方法可以是为OS106给出做出可能导致设备100崩溃的运行时调用(例如,依赖于SetVA)的可替换方案。在其中引导模块102基于UEFI的情形中,频繁使用的运行时调用是“Set/GetVariable()”,其经由Linux中的“efivars”接口而暴露。取代使efivars在运行时处引用“ST->RT->Get/SetVariable”以得到和/或设置引导模块102中的变量,所意图的UEFI变量名称和数据(针对设置)以及名称(针对得到)可以被拷贝到称为例如“/variable”的EFI系统分区(ESP)中的目录。OS106然后可以使设备100重启。当重启时,引导模块102中的UEFI固件可以应用变量更新或将变量的活跃内容拷贝到该目录。以此方式,OS106可以使用其目前的盘访问惯用语来分阶段进行与UEFI固件的通信而不必在运行时处共享机器,并因此冒着导致错误的风险。
最初,在操作700中可以做出关于变量是否存在于预加载目录(例如“/variables”)中的确定。变量在预加载目录中的存在可以指示在引导操作可以继续之前要求得到和/或设置操作。如果在操作700中确定没有变量存在于预加载目录中,则引导模块102可以在操作702中继续现有OS引导操作。如果在操作700中确定变量存在于预加载目录中,则在操作704中可以在设备100中安装引导分区。然后可以在操作706中做出关于是变量名称和数据(例如指示针对设置操作的需要)还是仅变量名称(例如指示针对得到操作的需要)存储在预加载目录中的确定。如果在操作704中确定预加载目录不包括变量名称和数据,则在操作708中可以施行得到操作以从引导分区获得变量的值,该值存储在对OS106来说可访问的设备100中的存储器中。然后,操作708可以后跟有返回到操作702,其中OS引导操作可以继续。
如果在操作706中确定预加载目录包括变量名称和数据二者,则在操作710中可以施行设置操作以将预加载目录中的数据设置成引导模块102中的对应变量。然后可以在操作712中做出关于设置操作是否成功的确定。如果在操作712中确定设置操作不成功,则在操作714中可以报告错误。设备100然后可以在操作702中继续现有OS引导操作(例如没有新数据被设置在引导模块102中)。如果在操作712中确定设置成功,则在操作716中可以向调用者返回设置的成功,并且在操作718中设备100可以继续经修改的OS引导(例如包括被设置在引导模块102中的直接来自预加载的新数据)。
虽然图3至7可能图示了根据不同实施例的操作,但是要理解的是,并非图3至7中描绘的所有操作对于其它实施例而言都是必要的。的确,在本文中完全设想到,在本公开的其它实施例中,图4至7中描绘的操作和/或本文描述的其它操作可以以未在任何图中具体示出的方式组合,但仍旧与本公开完全一致。因此,针对未在一幅图中确切示出的特征和/或操作的权利要求被视为在本公开的范围和内容内。
如本申请中和权利要求中所使用的,由术语“和/或”连结的项目的列表可以意指所列举的项目的任何组合。例如,短语“A、B和/或C”可以意指A;B;C;A和B;A和C;B和C;或A、B和C。如本申请中和权利要求中所使用的,由术语“……中的至少一个”连结的项目的列表可以意指所列举的项目的任何组合。例如,短语“A、B或C中的至少一个”可以意指A;B;C;A和B;A和C;B和C;或A、B和C。
如本文中的任何实施例中所使用的,术语“模块”可以是指被配置成施行前述操作中的任一个的软件、固件和/或电路。软件可以体现为在非暂时性计算机可读存储介质上记录的软件包、代码、指令、指令集和/或数据。固件可以体现为在(例如非易失性)存储器设备中硬编码的代码、指令或指令集和/或数据。“电路”,如本文中的任何实施例中所使用的,可以包括例如单个或以任何组合的硬连线电路、诸如包括一个或多个个体指令处理核的计算机处理器之类的可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。模块可以共同地或个体地体现为形成例如集成电路(IC)、片上系统(SoC)、台式计算机、膝上型计算机、平板计算机、服务器、智能电话等的较大系统的一部分的电路。
本文所描述的任何操作可以被实现在包括具有个体地或组合地存储在其上的指令的一个或多个存储介质(例如非暂时性存储介质)的系统中,所述指令在由一个或多个处理器执行时施行方法。在此,处理器可以包括例如服务器CPU、移动设备CPU和/或其它可编程电路。而且,意图在于,本文所描述的操作可以跨多个物理设备分布,诸如多于一个不同的物理位置处的处理结构。存储介质可以包括任何类型的有形介质,例如包括硬盘、软盘、光盘、压缩盘只读存储器(CD-ROM)、压缩盘可重写(CD-RW)和磁光盘的任何类型的盘、诸如只读存储器(ROM)、诸如动态和静态RAM之类的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器之类的半导体设备、固态盘(SSD)、嵌入式多媒体卡(eMMC)、安全数字输入/输出(SDIO)卡、磁或光卡、或适用于存储电子指令的任何类型的介质。其它实施例可以被实现为由可编程控制设备执行的软件模块。
因此,本公开针对灵活引导程序代码架构。设备可以包括用于操作设备的装置和用于操作装置的操作系统(OS)。引导模块也可以被包括在设备中以执行引导操作。引导模块中的至少一个灵活引导(FB)模块可以在引导操作期间与装置和/或OS交互以使引导操作变为设备特定的。示例引导模块可以包括多个FB模块。示例FB模块可以验证设备/芯片组标识并可以基于标识控制引导操作。其它示例FB模块可以基于OS类型选择要加载的资源,可以提供引导配置表位置以供OS运行时引导配置之用或者可以从预加载变量目录加载变量以供配置引导操作之用。
以下示例关于另外的实施例。本公开的以下示例可以包括诸如设备、方法、用于存储当被执行时使机器施行基于方法的动作的指令的至少一个机器可读介质、用于施行基于方法的动作的构件和/或用于灵活引导程序代码架构的系统之类的主题材料,如以下提供的那样。
示例1
根据该示例,提供了一种设备。该设备可以包括提供设备中的功能的装置、促进装置的操作的操作系统(OS)和在设备的激活之后执行引导操作的引导模块,引导模块包括在引导操作期间与装置或OS中的至少一个交互的至少一个灵活引导(FB)模块。
示例2
该示例包括示例1的元素,其中至少一个FB模块基于包括在引导模块中的字节码进行操作,字节码在引导操作期间被解释。
示例3
该示例包括示例2的元素,其中字节码以与可扩展固件接口(EFI)字节码解释器兼容的.efiPE/COFF格式存储。
示例4
该示例包括示例1至3中任一个的元素,其中至少一个FB模块与装置或OS中的至少一个交互包括至少一个FB模块感测与装置或OS中的至少一个相关联的特性。
示例5
该示例包括示例4的元素,其中特性包括从装置感测的设备标识或芯片组标识中的至少一个。
示例6
该示例包括示例5的元素,其中如果未识别到设备标识或芯片组标识中的至少一个,至少一个FB模块还使引导操作中止。
示例7
该示例包括示例6的元素,其中使操作中止包括经由可见或可听通知中的至少一个向设备的用户报告错误。
示例8
该示例包括示例4至7中任一个的元素,其中特性包括感测针对OS的类型,针对OS的类型至少包括OS是32位OS还是64位OS。
示例9
该示例包括示例8的元素,其中针对OS的类型是基于与OS相关联的字长度感测的。
示例10
该示例包括示例9的元素,其中字长度是基于在引导操作期间计算自然整数的大小感测的。
示例11
该示例包括示例9至10中任一个的元素,其中至少一个FB模块还基于字长度来使特定内核在引导操作期间加载在设备中。
示例12
该示例包括示例4至11中任一个的元素,其中特性包括存在于设备中的特定目录中的引导变量。
示例13
该示例包括示例12的元素,其中至少一个FB模块还导致在加载设备中的OS之前数据从引导模块拷贝到引导变量或者数据从引导变量拷贝到引导模块中的至少一个。
示例14
该示例包括示例1至13中任一个的元素,其中至少一个FB模块与装置或OS中的至少一个交互包括至少一个FB模块使引导模块中的信息对装置或OS中的至少一个来说可访问。
示例15
该示例包括示例14的元素,其中装置包括存储器,被使得可访问的信息包括指示与引导模块相关联的配置表在存储器中的位置的物理地址。
示例16
该示例包括示例15的元素,其中至少一个FB模块还使物理地址写入到存储器中的非易失性变量。
示例17
该示例包括示例16的元素,其中OS包括应用程序接口以允许OS访问存储器中的非易失性变量的内容。
示例18
该示例包括示例1至17中任一个的元素,其中引导模块基于统一可扩展固件接口(UEFI)规范。
示例19
该示例包括示例1至18中任一个的元素,其中如果未识别到从设备感测的设备标识或芯片组标识中的至少一个,至少一个FB模块还使引导操作中止。
示例20
该示例包括示例1至19中任一个的元素,其中至少一个FB模块还基于感测与OS相关联的字长度来使特定内核在引导操作期间加载在设备中。
示例21
该示例包括示例1至20中任一个的元素,其中,基于感测存在于设备中的特定目录中的引导变量,至少一个FB模块还导致在加载设备中的OS之前数据从引导模块拷贝到引导变量或者数据从引导变量拷贝到引导模块中的至少一个。
示例22
该示例包括示例1至21中任一个的元素,其中至少一个FB模块还通过使物理地址写入到设备中的存储器中的非易失性变量来使引导模块中的信息对装置或OS中的至少一个来说可访问,物理地址指示与引导模块相关联的配置表的位置。
示例23
根据该示例,提供了一种方法。该方法可以包括:在至少包括装置、操作系统(OS)和引导模块的设备中发起引导操作,确定引导模块是否包括在引导操作期间与装置或OS中的至少一个交互的至少一个灵活引导(FB)模块,以及基于引导模块是否包括至少一个灵活引导(FB)模块的确定来施行默认引导操作或设备特定引导操作。
示例24
该示例包括示例23的元素,其中与装置或OS中的至少一个交互包括感测与装置或OS中的至少一个相关联的特性。
示例25
该示例包括示例24的元素,其中特性包括从装置感测的设备标识或芯片组标识中的至少一个。
示例26
该示例包括示例25的元素,并且还包括如果未识别到设备标识或芯片组标识中的至少一个则使引导操作中止。
示例27
该示例包括示例26的元素,其中使操作中止包括经由可见或可听通知中的至少一个向设备的用户报告错误。
示例28
该示例包括示例24至27中任一个的元素,其中特性包括感测针对OS的类型,针对OS的类型至少包括OS是32位OS还是64位OS。
示例29
该示例包括示例28的元素,其中特性包括与OS相关联的字长度。
示例30
该示例包括示例29的元素,其中字长度是基于在引导操作期间计算自然整数的大小感测的。
示例31
该示例包括示例29至30中任一个的元素,并且还包括基于字长度来使特定内核在引导操作期间加载在设备中。
示例32
该示例包括示例24至31中任一个的元素,其中特性包括存在于设备中的特定目录中的引导变量。
示例33
该示例包括示例32的元素,并且还包括导致在加载设备中的OS之前数据从引导模块拷贝到引导变量或者数据从引导变量拷贝到引导模块中的至少一个。
示例34
该示例包括示例23至33中任一个的元素,其中与装置或OS中的至少一个交互包括使信息对装置或OS中的至少一个来说可访问。
示例35
该示例包括示例34的元素,其中装置包括存储器,信息包括指示与引导模块相关联的配置表在存储器中的位置的物理地址。
示例36
该示例包括示例35的元素,并且还包括使物理地址写入到存储器中的非易失性变量。
示例37
该示例包括示例36的元素,其中OS包括应用程序接口以允许OS访问存储器中的非易失性变量的内容。
示例38
该示例包括示例23至37中任一个的元素,其中引导模块基于统一可扩展固件接口(UEFI)规范。
示例39
该示例包括示例23至38中任一个的元素,并且还包括如果未识别到从设备感测的设备标识或芯片组标识中的至少一个则使引导操作中止。
示例40
该示例包括示例23至39中任一个的元素,并且还包括基于感测与OS相关联的字长度来使特定内核在引导操作期间加载在设备中。
示例41
该示例包括示例23至40中任一个的元素,并且还包括感测存在于设备中的特定目录中的引导变量并且导致在加载设备中的OS之前数据从引导模块拷贝到引导变量或者数据从引导变量拷贝到引导模块中的至少一个。
示例42
该示例包括示例23至41中任一个的元素,并且还包括通过使物理地址写入到设备中的存储器中的非易失性变量来使引导模块中的信息对装置或OS中的至少一个来说可访问,物理地址指示与引导模块相关联的配置表的位置。
示例43
根据该示例,提供了一种包括设备的系统,系统被布置成施行以上示例23至42中任一个的方法。
示例44
根据该示例,提供了一种被布置成施行以上示例23至42中任一个的方法的芯片组。
示例45
根据该示例,提供了包括多个指令的至少一个机器可读介质,所述多个指令响应于在计算设备上执行,使计算设备实施根据以上示例23至42中任一个的方法。
示例46
根据该示例,提供了一种被配置有灵活引导程序代码架构的设备,设备被布置成施行以上示例23至42中任一个的方法。
示例47
根据该示例,提供了一种具有施行以上示例23至42中任一个的方法的构件的设备。
本文中已采用的术语和表述被用作描述而非限制的术语,并且在使用这样的术语和表述时,不存在排除所示出和描述的特征(或其部分)的任何等同物的意图,并且认识到,各种修改在权利要求的范围内是可能的。相应地,权利要求意图覆盖所有这样的等同物。

Claims (24)

1.一种设备,包括:
提供设备中的功能的装置;
促进装置的操作的操作系统(OS);以及
在设备的激活之后执行引导操作的引导模块,引导模块包括至少一个灵活引导(FB)模块以:
在引导操作期间与装置或OS中的至少一个交互;并且
基于交互生成设备特定引导操作。
2.权利要求1的设备,其中至少一个FB模块基于包括在引导模块中的字节码进行操作,字节码在引导操作期间被解释。
3.权利要求1的设备,其中至少一个FB模块基于交互生成设备特定引导操作包括:如果未识别到设备标识或芯片组标识中的至少一个,则至少一个FB模块使引导操作中止。
4.权利要求1的设备,其中至少一个FB模块基于交互生成设备特定引导操作包括:至少一个FB模块基于与OS相关联的字长度来使特定内核在引导操作期间加载在设备中。
5.权利要求4的设备,其中字长度是基于在引导操作期间计算自然整数的大小来感测的。
6.权利要求1的设备,其中至少一个引导模块在引导操作期间与装置或OS中的至少一个交互包括:至少一个引导模块感测存在于设备中的特定目录中的引导变量。
7.权利要求6的设备,其中至少一个FB模块基于交互生成设备特定引导操作包括:至少一个FB模块导致在加载设备中的OS之前数据从引导模块拷贝到引导变量或者数据从引导变量拷贝到引导模块中的至少一个。
8.权利要求1的设备,其中至少一个FB模块基于交互生成设备特定引导操作包括:至少一个FB模块通过使物理地址写入到设备中的存储器中的非易失性变量来使引导模块中的信息对装置或OS中的至少一个来说可访问,物理地址指示与引导模块相关联的配置表在存储器中的位置。
9.权利要求8的设备,其中OS包括应用程序接口以允许OS访问存储器中的非易失性变量的内容。
10.权利要求1的设备,其中引导模块基于统一可扩展固件接口(UEFI)规范。
11.一种方法,包括:
在至少包括装置、操作系统(OS)和引导模块的设备中发起引导操作;
确定引导模块是否包括在引导操作期间与装置或OS中的至少一个交互的至少一个灵活引导(FB)模块;以及
基于引导模块是否包括至少一个灵活引导(FB)模块的确定来施行默认引导操作或设备特定引导操作。
12.权利要求11的方法,其中施行设备特定引导操作包括:如果未识别到从装置感测的设备标识或芯片组标识中的至少一个,则使引导操作中止。
13.权利要求11的方法,其中施行设备特定引导操作包括:基于与OS相关联的字长度来使特定内核在引导操作期间加载在设备中。
14.权利要求13的方法,其中字长度是基于在引导操作期间计算自然整数的大小来感测的。
15.权利要求11的方法,其中在引导操作期间与装置或OS中的至少一个交互包括:感测存在于设备中的特定目录中的引导变量。
16.权利要求15的方法,其中施行设备特定引导操作包括:导致在加载设备中的OS之前数据从引导模块拷贝到引导变量或者数据从引导变量拷贝到引导模块中的至少一个。
17.权利要求11的方法,其中施行设备特定引导操作包括:通过使物理地址写入到设备中的存储器中的非易失性变量来使引导模块中的信息对装置或OS中的至少一个来说可访问,物理地址指示与引导模块相关联的配置表在存储器中的位置。
18.权利要求17的方法,其中OS包括应用程序接口以允许OS访问存储器中的非易失性变量的内容。
19.权利要求11的方法,其中引导模块基于统一可扩展固件接口(UEFI)规范。
20.一种包括设备的系统,系统被布置成施行权利要求11至19中任一项的方法。
21.一种被布置成施行权利要求11至19中任一项的方法的芯片组。
22.包括多个指令的至少一个机器可读介质,所述多个指令响应于在计算设备上执行,使计算设备实施根据权利要求11至19中任一项的方法。
23.一种被配置有灵活引导程序代码架构的设备,设备被布置成施行权利要求11至19中任一项的方法。
24.一种具有施行权利要求11至19中任一项的方法的构件的设备。
CN201380079912.6A 2013-10-29 2013-10-29 灵活引导程序代码架构 Active CN105579953B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/067172 WO2015065323A1 (en) 2013-10-29 2013-10-29 Flexible bootstrap code architecture

Publications (2)

Publication Number Publication Date
CN105579953A true CN105579953A (zh) 2016-05-11
CN105579953B CN105579953B (zh) 2019-03-15

Family

ID=52996815

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380079912.6A Active CN105579953B (zh) 2013-10-29 2013-10-29 灵活引导程序代码架构

Country Status (4)

Country Link
US (1) US9411601B2 (zh)
EP (1) EP3063621A4 (zh)
CN (1) CN105579953B (zh)
WO (1) WO2015065323A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113918228A (zh) * 2021-09-15 2022-01-11 成都安恒信息技术有限公司 一种基于多cpu架构的内存文件系统启动方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201105765D0 (en) 2011-04-05 2011-05-18 Visa Europe Ltd Payment system
CN104679537A (zh) * 2013-11-28 2015-06-03 英业达科技有限公司 使用镜像建立可开机储存装置的系统及其方法
US9922322B2 (en) 2013-12-19 2018-03-20 Visa International Service Association Cloud-based transactions with magnetic secure transmission
CN105830107A (zh) 2013-12-19 2016-08-03 维萨国际服务协会 基于云的交易方法和系统
EP3146747B1 (en) 2014-05-21 2020-07-01 Visa International Service Association Offline authentication
US9582393B2 (en) * 2014-06-20 2017-02-28 Dell Products, Lp Method to facilitate rapid deployment and rapid redeployment of an information handling system
US9775029B2 (en) 2014-08-22 2017-09-26 Visa International Service Association Embedding cloud-based functionalities in a communication device
ES2862176T3 (es) 2014-12-12 2021-10-07 Univ California Reducción de los glucanos de la leche y sus productos de degradación en el intestino del recién nacido
US10176028B2 (en) 2015-09-25 2019-01-08 International Business Machines Corporation Upgrading a kernel or kernel module with a configured persistent memory unused by the kernel
US10922116B2 (en) * 2016-02-12 2021-02-16 Hewlett Packard Enterprise Development Lp Creating operating system volumes
EP3482337B1 (en) 2016-07-11 2021-09-29 Visa International Service Association Encryption key exchange process using access device
US10262158B1 (en) * 2017-07-27 2019-04-16 American Megatrends, Inc. Restricting the use of a firmware tool to a specific platform
US20190044809A1 (en) * 2017-08-30 2019-02-07 Intel Corporation Technologies for managing a flexible host interface of a network interface controller

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643772B1 (en) * 2000-07-13 2003-11-04 International Business Machines Corporation Universal boot code for a computer network
US20040268109A1 (en) * 2003-06-30 2004-12-30 Rothman Michael A. Platform-based optimization routines provided by firmware of a computer system
US20080172554A1 (en) * 2007-01-15 2008-07-17 Armstrong William J Controlling an Operational Mode for a Logical Partition on a Computing System
CN101438241A (zh) * 2006-03-09 2009-05-20 Lm爱立信电话有限公司 具有桥支持的平台引导

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430685B1 (en) * 1993-02-19 2002-08-06 Apple Computer, Inc. Method and apparatus for enabling a computer system
US5999952A (en) * 1997-08-15 1999-12-07 Xybernaut Corporation Core computer unit
US6321332B1 (en) * 1998-06-17 2001-11-20 Intel Corporation Flexible control of access to basic input/output system memory
US6601166B1 (en) * 1999-12-23 2003-07-29 Intel Corporation Mechanism for booting a computer through a network
US6668318B1 (en) * 2000-05-31 2003-12-23 Xybernaut Corp. System and method for loading one of a plurality of operating systems and adjusting the operating frequency accordingly using transferable core computer that recognizes a system environment
US20030126242A1 (en) * 2001-12-28 2003-07-03 Chang Albert H. Network boot system and method using remotely-stored, client-specific boot images created from shared, base snapshot image
US7080246B2 (en) * 2002-12-09 2006-07-18 Intel Corporation Firmware override handling system with default selection of a platform specific group or a customized group of hardware settings
US8316361B2 (en) * 2003-01-09 2012-11-20 Hewlett-Packard Development Company, L.P. Method of enabling a user to update one or more low-level resources of a computer system in a user-friendly manner
US7401332B2 (en) * 2003-01-09 2008-07-15 International Business Machines Corporation System and apparatus for eliminating user interaction during hardware configuration at system boot
US7107441B2 (en) * 2003-05-21 2006-09-12 Intel Corporation Pre-boot interpreted namespace parsing for flexible heterogeneous configuration and code consolidation
ATE478528T1 (de) * 2006-12-22 2010-09-15 Ericsson Telefon Ab L M Verfahren und system zum umladen eines kommunikationsgerätes
US20110010747A1 (en) * 2009-07-10 2011-01-13 Samsung Electronics Co., Ltd. Method and system for customized initialization of digital host device
US8868899B2 (en) * 2009-07-20 2014-10-21 Motorola Mobility Llc System and method for switching between environments in a multi-environment operating system
US8745366B2 (en) * 2011-03-31 2014-06-03 Nvidia Corporation Method and apparatus to support a self-refreshing display device coupled to a graphics controller

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643772B1 (en) * 2000-07-13 2003-11-04 International Business Machines Corporation Universal boot code for a computer network
US20040268109A1 (en) * 2003-06-30 2004-12-30 Rothman Michael A. Platform-based optimization routines provided by firmware of a computer system
CN101438241A (zh) * 2006-03-09 2009-05-20 Lm爱立信电话有限公司 具有桥支持的平台引导
US20080172554A1 (en) * 2007-01-15 2008-07-17 Armstrong William J Controlling an Operational Mode for a Logical Partition on a Computing System

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHARLES M.KOZIEROK: ""System Boot Sequence"", 《WWW.PCGUIDE.COM/REF/MBSYS/BIOS/BOOTSEQUENCE-C.HTML》 *
RAJA@ASUS: ""ASUS Rampage IV Extreme - UEFI Guide for Overclocking"", 《HTTPS://ROG.ASUS.COM/FORUM/SHOWTHREAD.PHP?5835-ASUS-RAMPAGE-IV-EXTREME-UEFI-GUIDE-FOR-OVERCLOCKING》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113918228A (zh) * 2021-09-15 2022-01-11 成都安恒信息技术有限公司 一种基于多cpu架构的内存文件系统启动方法
CN113918228B (zh) * 2021-09-15 2023-10-13 成都安恒信息技术有限公司 一种基于多cpu架构的内存文件系统启动方法

Also Published As

Publication number Publication date
EP3063621A1 (en) 2016-09-07
WO2015065323A1 (en) 2015-05-07
EP3063621A4 (en) 2017-07-12
CN105579953B (zh) 2019-03-15
US9411601B2 (en) 2016-08-09
US20150121055A1 (en) 2015-04-30

Similar Documents

Publication Publication Date Title
CN105579953A (zh) 灵活引导程序代码架构
CN101763279B (zh) 一种BootLoader架构设计方法
CN103207797B (zh) 基于通用可扩展固件接口固件系统的胶囊式定制更新方法
CN101432690B (zh) Bios配置更新技术
US10810017B2 (en) Systems and methods for handling firmware driver dependencies in host operating systems while applying updates from bootable image file
CN104185836A (zh) 用于在系统改变之后验证计算设备的适当操作的方法和系统
KR102485935B1 (ko) 전자 장치 및 그의 동작 방법
CN103493011A (zh) 与库操作系统的应用兼容性
CN107003864A (zh) 恢复片上系统设备
CN108509215B (zh) 一种系统软件的更换方法、装置、终端设备及存储介质
CN111813428A (zh) 终端固件的升级方法、装置、电子设备及存储介质
CN103514015A (zh) 一种从存储介质中启动操作系统的方法和装置
CN101169729A (zh) 嵌入式系统及其更新应用程序的方法
CN102707963A (zh) 设备标志
CN111176739A (zh) 一种系统启动方法、装置、设备及存储介质
CN106796521B (zh) 独立于产品发布的api版本控制
CN102446101A (zh) 固件强制升级的系统及其固件的强制升级方法
CN105159714B (zh) 一种pmic初始化方法和电子设备
US11137995B2 (en) Updating firmware of a microcontroller
US10303462B2 (en) Windows support of a pluggable ecosystem for universal windows application stores
TWI640869B (zh) 配置一積體電路無線電通訊裝置的方法及積體電路無線電通訊裝置
CN108052337A (zh) 一种eMMC量产工具的固件升级方法及装置
CN102460386B (zh) 用于在引导过程期间加载文件的方法和装置
CN116028100B (zh) 软件版本升级方法和电子设备
US11068276B2 (en) Controlled customization of silicon initialization

Legal Events

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