《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > Slim Bootloader:专为物联网应用量身定制

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

2018-11-06
关键词: 物联网 SlimBootloader

  由于物联网设备存储空间有限,成本要求严苛,因此Bootloader需要满足占用空间小、功能安全、极速启动等需求。英特尔Slim Bootloader 就是专为物联网应用案例量身定制,是一款开源的启动固件解决方案,当系统上电时负责初始化系统的核心硬件组件,然后加载和启动所需要的操作系统。

  从构建之初,Slim Bootloader就考虑了安全性、轻量级和高度优化,可以利用EDK II框架中的强大工具和库,可以根据系统的特殊需求进行隔离、配置和优化,从而达到优异的启动性能,并最大限度地减少固件所占用的空间。同时具有模块化、可扩展设计的优点,根据源版本实现产品质量参考,BSD许可证开源,实际产品可能会根据不同的许可证发布。

  Intel物联网部门 Bootloader 的架构原则是通过简单灵活的架构实现快速广泛的采用,并利用内部和外部开发社区,以安全为基础进行设计和开发。

  在设计中,Slim Bootloader具有几大优势:

  简单快速,线性执行流程实现可预测性,通过FSP API将复杂的芯片初始化代码进行抽象,包括TempRamInit, FspMemoryInit, FspTempRamExit, FspSiliconInit, NotifyPhase;

  具有灵活性,将初始化代码分成具有标准化接口的模块化阶段:– Stage1A (SRAM/Flash) => Stage1B (Flash/CAR) => Stage2 (MEM),且不同的Payload用于引导不同的OS或应用程序;

  可移植性,核心代码高度模块化,通过提供不同的静态库,不同的开发板/芯片可以用过hook函数实现平台相关的初始化;配置(内置或外置)支持多种开发板;

  利用经过验证的代码,FSP二进制文件,以及已被验证的BIOS中的平台库(例如:GPIO init);

  编译框架,支持多种OS(Windows 和 Linux)和多种工具链;

  安全性,通过Intel?BootGuard实现基于硬件的启动完整性保护的安全启动,支持verified boot和Measured boot。

  下面针对初始化阶段和启动阶段分别讲述Slim Bootloader的优势:

  初始化阶段

5bdffd9d72b9d-thumb.png

  高级架构

  如上图所示,系统的初始化阶段,电路板和芯片初始化,包括资源分配,GPIO、ACPI等。Payload阶段包括通用媒介驱动、自定义功能、特定的OS加载协议等。其中*OS loader是默认Payload,也支持使用其他的payload。

  启动阶段:

5bdffd9d42fa5-thumb.png

  启动阶段

  如图所示,启动阶段包括第1A阶段、第1B阶段、第2阶段、有效负载阶段。在第1A阶段,通过汇编代码重置矢量阶段,进行基本初始化,包括设置临时存储器、调试输出;在第1B阶段,进行内存初始化,加载配置数据;在第2阶段,进行PostMemory,芯片初始化、ACPI,PCI枚举等;OsLoader / FWU 有效负载包括操作系统启动逻辑和媒体驱动程序。

  Slim Bootloader可以利用EDK2构建基础架构,支持Windows和Linux环境,支持多种平台,支持多个目标(D / R);必备工具包括VisualStudio(Windows)、GCC工具链(Linux)、NAMM、Python、iASL、OpenSSL;由pythonBuildLoader.py构建qemu,图片存放于Slimbootloader.bin中。

  另外,Payload提供灵活的基础架构来扩展功能,英特尔SlimBootloader执行基础硬件初始化;有效负载执行特定的加载/引导。可以看出,Payload是一个模块化组件,能够轻松更改默认有效负载,有效负载可以高度定制,以提供所需的确切功能;Payload可以是通用引导加载程序或特殊用途的特殊应用程序。


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。