系统固件优化与新架构支持全解析
1. 引导固件 coreboot 的变革
在 x86 架构的现有模型中,大部分高级芯片组初始化工作在 DRAM 初始化后的引导阶段完成,也就是在 ramstage 阶段,此阶段主要有以下职责:
- CPU 多处理器初始化 :coreboot 依据英特尔软件开发手册(SDM)准则,负责进行多处理器初始化,将所有可能的应用处理器(AP)从复位状态中唤醒。它具备基础架构,可基于 APIC ID 在所有 AP 或单个 AP 上执行特定功能。
- PCI 枚举 :ramstage 还负责为 PCI 设备进行资源分配并启用这些资源。由于 Depthcharge 作为惰性负载,不具备执行资源启用的能力,所以这一步骤对负载来说是必不可少的,以确保能访问各种引导设备及相关设备。
- 移交至负载 :Depthcharge 是 Chrome 设备的特定负载,它依赖 coreboot 来获取平台的某些信息。coreboot 向 Depthcharge 传递的任何信息都将以 sysinfo 表的形式呈现。
为了在多线程环境下将早期存储控制器和设备初始化(SDHC 控制器和 eMMC 设备)纳入 ramstage,进行了以下更改:
- 添加 API 让 AP 与 BSP 并行操作 :通常,coreboot 支持在多个核心上迭代执行单个操作,但这里的思路是创建一个调度器,以便根据 APIC ID 将独立任务分配给逻辑处理器。
- 创建通用 eMMC IP 初始化块
超级会员免费看
订阅专栏 解锁全文
1327

被折叠的 条评论
为什么被折叠?



