当前位置: 首页 > 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.jsqmd.com/news/871535/

相关文章:

  • 深度解析Pycdc:C++实现的Python字节码反编译器架构设计与技术实现
  • SG90舵机控制ESP8266开关灯?小心烧板子!分享我的硬件连接避坑与电源管理心得
  • 别再被投稿系统坑了!Elsevier+Overleaf从模板到提交的完整避雷清单
  • Mali-C78AE自动色阶功能原理与调优指南
  • 01-当模型能力趋同产品壁垒在哪里(系列四-AI产品战略)
  • 终极小说阅读器:Uncle小说如何一站式解决你的数字阅读需求
  • 初创团队如何借助Taotoken的Token Plan有效控制AI开发成本
  • ESP32终极音频录制指南:如何打造专业级便携录音设备
  • 用LTC6268-10这颗4GHz FET运放,搞定你的高阻抗传感器信号放大难题
  • 如何轻松备份微信聊天记录?这个开源工具让你告别数据丢失焦虑
  • 2026北京婚纱照星级排名:高端质感与性价比全面解析 - 江湖评测
  • Markdown Here:如何用Markdown语法轻松写邮件,告别格式烦恼?
  • 终极大麦抢票指南:告别手速焦虑,用Python自动化锁定心仪演出
  • Taotoken 平台在应对单一模型服务波动时的容灾与自动路由体验
  • OpenCV图像处理:5种Padding方式实战对比(附Python代码)
  • 2026年4月消费机厂商推荐,校园餐监管系统/食材进销存系统/留样冰箱/晨检机/后厨进销存系统,消费机品牌推荐 - 品牌推荐师
  • 终极免费方案:cursor-vip完全指南,让AI编程助手触手可及
  • 金相设备选型指南:实验室制样必备攻略
  • 京东e卡回收秒到账靠谱方法盘点,四种变现渠道全方位对比 - 京回收小程序
  • 毕业答辩PPT救星来了!百考通AI助你高效搞定学术汇报
  • 7个高效PDF处理技巧:PDF补丁丁完全指南
  • 5分钟完成Windows 11终极优化:开源神器Win11Debloat完全指南
  • 告别手动计算!FPGA UART波特率参数BAUD_MAX的快速配置方法与验证技巧
  • 联想工程师没搞定的Win11 Edge断线问题,我是怎么通过修改一个网络协议设置解决的?
  • CentOS 7/8 安装 ncurses-devel 踩坑记:从‘未找到包’到成功编译贪吃蛇
  • 终极指南:快速掌握UI-TARS智能助手完整配置与实战部署
  • EgoWalk数据集:多模态视觉导航研究的新基准
  • 25个创新性AI开发资源:技术验证与原型构建的终极解决方案
  • 为什么92%的OTA试水AI Agent后6个月内放弃?——头部旅行社CTO亲述3大技术断层
  • LR(0)、SLR(1)、LR(1)傻傻分不清?一张对比图+三个实战例题帮你彻底理清