Slim Bootloader:专为物联网应用量身定制

  • 时间:
  • 浏览:0
  • 来源:图客团文章网

由于物联网设备的存储空间有限,成本要求苛刻,引导加载程序必须满足占用空间小、功能安全、启动速度快等要求。专为物联网用例设计的Intel Slim Bootloader是一个开源引导固件解决方案,它在系统开机时初始化系统的核心硬件组件,然后加载和启动所需的操作系统。从一开始,Slim Bootloader是安全的,轻量级的,高度优化的,并利用EDK II框架中强大的工具和库,可以隔离,配置和优化它,以满足您的系统的特定需求,提供良好的引导性能和最大限度地减少固件占用的空间。同时具有模块化、可扩展设计的优点,通过源版本实现产品质量参考,BSD许可证是开源的,实际产品可能会根据不同的许可证发布。英特尔物联网部门引导加载程序的架构原则是通过简单灵活的架构实现快速和广泛的采用,并利用内部和外部开发社区来确保设计和开发的安全性。Slim Boot Loader通过简单快速的线性执行流程实现可预测性,并灵活地将复杂的芯片初始化代码抽象(TempRamInit,FspMemoryInit,FspTempRamExit,FspSiliconInit,NotifyPhase等)分解为具有标准化接口的模块化阶段。Stage1A SRAM/Flash => Stage1B Flash/CAR => Stage2MEM,以及用于启动不同操作系统或应用程序的不同有效负载。可移植性,核心代码高度模块化,通过提供不同的静态库,不同的开发板/芯片可以使用钩子函数实现平台相关的初始化。配置支持多个开发板(内部或外部);利用经过验证的代码、FSP二进制文件和经过验证的BIOS的平台库(例如GPIO init)支持多个操作系统(Windows和Linux)和多个工具链的编译框架。安全性,Intel BootGuard基于硬件的引导提供完整性保护的安全引导,并支持验证引导和测量引导。Slim Bootloader的优点将分别在初始化阶段和启动阶段进行讨论。

系统初始化阶段,包括资源分配、GPIO、ACPI等,以及电路板和芯片初始化,如上图所示。有效载荷阶段包括通用媒体驱动程序、自定义功能和特定的操作系统负载协议。*OS Loader是默认的payload,其他payload也支持。启动阶段:

启动阶段包括阶段1A、阶段1B、阶段2和有效负载阶段,如图所示。在阶段1A中,程序集代码重置矢量阶段,并执行基本初始化,包括设置临时内存和调试输出。阶段1B初始化内存并加载配置数据。阶段2包括PostMemory、芯片初始化、ACPI、PCI枚举等。OsLoader / FWU payload包含操作系统启动逻辑和媒体驱动程序。Slim Bootloader使用EDK2构建基础架构,支持Windows和Linux环境,并支持多个平台和多个目标(D / R)您需要的工具包括Visual Studio(Windows)、GCC工具链(Linux)、NAMM、Python、iASL和OpenSSL。qemu是用pythonBuildLoader.py构建的,图像存储在Slimbootloader.bin。此外,payload提供了一个灵活的基础设施来扩展功能,而Intel SlimBootloader则执行基本的硬件初始化。payload执行特定的load/boot。有效载荷是模块化组件,默认有效载荷可以很容易地更改,并且可以高度定制以提供所需的精确功能。payload可以是通用的引导加载程序或用于特殊目的的特殊应用程序。