当前位置: 首页 > news >正文

bios开发:从Insyde到AMI

一、编译

AMI统一使用VEB编译 选择rebuild all

Insyde在VSCODE中手动编译

二、文件格式

elink在AmiCrbPkg.sdl中有;elink是一种高速串行接口技术,用于芯片内部或芯片间的通信。elink通常会在:平台初始化模块(

AmiCrbPkg.sdl由TOKEN,一串ELINK,一些FFS_FILE,还有LibraryMapping构成

AMI .sdlINSYDE .dsc
来源AMI 专有格式EDKII 标准格式
核心功能定义Token,组件条件,FFS布局定义模块包含,编译选项,PCD值
条件编译SDL 对象可以通过Token = "Name" "=" "1"这样的条件来控制是否启用。使用 !if !else 宏
布局在 .sdl 中定义在 .fdf 中定义

Token、eLink、InfComponent 等对象都存储在 SDL 文件中

三、AMI Aptio 5.x 类似于INSYDE H2O

对比维度AMI Aptio 5.xINSYDE H2O / H2O UEFI
构建系统基础GNU make + EDKII,深度集成 AMI 自定义工具(AMISDL, FontTool)基于 EDKII 或自家脚本,较少暴露复杂工具链
配置方式图形化(Visual eBIOS)编辑 SDL 文件,配置集中存储在.sdl中。支持复杂的 Token 依赖和条件逻辑主要基于 EDK II 原生文件(.dsc,.fdf,.inf
抽象层次通过 eLink 和 Token 实现了高层次的抽象:例如,一个 IRQLINK 对象可同时生成 ACPI _PRT、MP Table、PIR 表等多种输出通常需要手动维护多个表(ACPI)缺乏像 SDL 这样的统一描述语言
模块化与复用强调 eLink 对象、InfComponent、LibraryMapping,模块间依赖关系明确;INFCOMPONENT+LIBRARYMAPPING+PCDMAPPING完整描述 EDK II 模块,支持自动预处理 INF 文件中的宏导入模块需手动修改 DSC 文件
ROM 布局配置FD_INFO,FD_AREA,FFS_FILE对象,支持复杂的偏移量(Auto、Top_FV)、属性(PEI、DXE、BDS、签名、测量等)使用 EDK II 标准 FDF 文件,布局控制较直接,高级功能需手工编写
构建选项override通过BuildOptionseLink 的Override字段和ReplaceStandardFlags,可以精确替换或追加特定模块的编译标志需要在 INF 节或 DSC 中手动添加
打包与布局控制通过FFS_FILE、FDF 规则、ROM Layout Wizard 灵活控制也支持 FDF 规则
学习曲线较陡,需理解 SDL、eLink、AMISDL、Visual eBIOS 等专有概念相对平缓,更贴近原生 EDKII,但部分高级功能仍需 Insyde 专有工具
文档与社区文档详细但属 NDA 内容,社区支持有限文档相对开放,Insyde 也提供 NDA 资料,但部分客户反馈其工具链不如 AMI 灵活

FFS_FILE是固件文件布局配置,告诉构建系统如何组织bios固件中的各个模块;运行时,bios通过解析EFI_FFS_FILE_HEADER来找到并加载对应的模块

FFS_FILE

Name = "FwKeyHobPei" //该 FFS 文件的逻辑名称,用于内部引用和调试,不影响最终二进制内容

FD_AREA = "FV_BB" //指定将此模块打包到FV_BB这个 Firmware Volume 中。
在 AMI 默认布局中,FV_BB通常是PEI 阶段的 Boot Block,存放早期初始化的驱动(PEIM、SEC 等)

INFComponent = "AmixxxPkg.FwKeyHobPei" //这里表示将FwKeyHobPei这个 PEIM 打包进FV_BB

Apriori_Index = "1" //将该模块放入 PEI 阶段的Apriori 列表1表示其在列表中的顺序索引。
Apriori 列表中的模块会在 PEI 阶段最早被调度执行,常用于关键初始化(如密码服务、HOB 生产)。数值越小越靠前,1通常意味着较高的优先级。

End

四、Visual eBIOS —— 图形化 SDL 编辑器

Visual eBIOS 是 AMI 提供的 Windows GUI 工具,Using VeB for importing EDKII modules,

用于:

  • 以树形视图编辑 SDL 对象(PCIDEVICE、TOKEN、ELINK 等)

  • 通过向导快速添加新设备、模块、ROM 布局

  • 管理项目中的 SDL 文件层次结构

  • 调用构建过程(编译、打包)

  • 查看构建日志和错误

Visual eBIOS是操作 SDL 的工具。

http://www.zskr.cn/news/1357026.html

相关文章:

  • 宽频精准・性能标杆|OM-T 台式频谱分析仪,支撑交通通信高质量运维
  • 奥哲重构电建新范式!AI赋能电力建设全场景智能化升级
  • 终极大麦抢票指南:告别手速焦虑,用Python自动化锁定心仪演出
  • OpenCV图像处理:5种Padding方式实战对比(附Python代码)
  • Taotoken 平台在应对单一模型服务波动时的容灾与自动路由体验
  • 手把手教你用STM32和电位器,临时搭建一个TTL转485数据监听器(附电路图)
  • 为Hermes Agent配置自定义供应商指向Taotoken平台
  • 联想工程师没搞定的Win11 Edge断线问题,我是怎么通过修改一个网络协议设置解决的?
  • CentOS 7/8 安装 ncurses-devel 踩坑记:从‘未找到包’到成功编译贪吃蛇
  • 终极指南:如何免费快速将STL转STEP,打通3D打印与CAD设计桥梁 [特殊字符]
  • 终极指南:快速掌握UI-TARS智能助手完整配置与实战部署
  • 长春轻钢别墅公司实测评测:7大核心维度全对比 - 奔跑123
  • LR(0)、SLR(1)、LR(1)傻傻分不清?一张对比图+三个实战例题帮你彻底理清
  • EgoWalk数据集:多模态视觉导航研究的新基准
  • 长春固特科地热代理服务评测:核心维度与行业基准解析 - 奔跑123
  • 先觉生物培养的GFP-IPSC-MSC P0D3-2
  • 贴吧Lite:如何打造极简高效的第三方贴吧客户端终极指南
  • F3工具深度解析:开源存储设备容量检测与反欺诈技术
  • DBSwitch迁移踩坑记:当PostgreSQL的TRUNCATE语法遇上openGauss,我这样改源码
  • 为什么92%的媒体AI项目半年内停滞?深度拆解3个被隐瞒的技术断点与1套可立即启用的轻量级Agent启动框架
  • 长春松下新风代理全维度评测:资质与服务的硬核对比 - 奔跑123
  • 新手怎么理解GEO搜索优化
  • 终极资源下载器:3分钟掌握跨平台资源捕获的完整方案
  • 为什么你的AI招聘Agent总被业务部门拒用?(埋藏在Prompt工程底层的3个组织适配断点)
  • STM32F103硬件I2C驱动OLED屏实战:从初始化到显示汉字,标准库代码全解析
  • 海外代理实战干货:类型拆解、参数标准、场景选型与避坑全指南
  • 在 Taotoken 平台管理账单与下载历史消费记录的便利性
  • 5分钟完成Windows 11终极优化:开源神器Win11Debloat完全指南
  • 终极免费方案:cursor-vip完全指南,让AI编程助手触手可及
  • Claude ROI模型失效预警:当LTV/CAC比值跌破1.8、上下文token损耗超阈值时的自动干预机制详解