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

UEFI设备路径数据库:常见设备路径示例与说明

UEFI设备路径数据库:常见设备路径示例与说明

【免费下载链接】edk2EDK II项目地址: https://gitcode.com/gh_mirrors/ed/edk2

UEFI(统一可扩展固件接口)设备路径是UEFI系统中用于标识硬件设备的标准化方法,它通过结构化的路径描述来唯一确定设备在系统中的位置。本文将详解UEFI设备路径的核心概念、常见类型及实际应用示例,帮助开发者和用户快速理解这一关键技术。

一、UEFI设备路径基础

UEFI设备路径通过EFI_DEVICE_PATH_PROTOCOL结构体实现,定义于MdePkg/Include/Protocol/DevicePath.h。每个设备路径由多个节点(Node)组成,每个节点包含:

  • 类型(Type):区分硬件、ACPI、消息传递等设备类别
  • 子类型(SubType):定义具体设备类型(如PCI、USB、SATA等)
  • 长度(Length):节点数据大小

设备路径以结束节点(End of Device Path)标识结束,结构上类似文件系统路径,但面向硬件设备定位。

二、设备路径类型与示例

2.1 硬件设备路径(Type=0x01)

2.1.1 PCI设备路径

子类型(SubType=0x01),用于标识PCI总线上的设备:

typedef struct { EFI_DEVICE_PATH_PROTOCOL Header; UINT8 Function; // 功能号 UINT8 Device; // 设备号 } PCI_DEVICE_PATH;

示例PCI(0x01,0x00)表示PCI总线0、设备1、功能0。

2.1.2 USB设备路径

子类型(SubType=0x05),通过端口和接口号定位USB设备:

typedef struct { EFI_DEVICE_PATH_PROTOCOL Header; UINT8 ParentPortNumber; // 父端口号 UINT8 InterfaceNumber; // 接口号 } USB_DEVICE_PATH;

示例USB(0x0,0x0)/USB(0x1,0x0)表示根 hub 端口0连接的设备,其端口1连接的子设备。

2.2 消息传递设备路径(Type=0x03)

2.2.1 SATA设备路径

子类型(SubType=0x12),用于SATA存储设备:

typedef struct { EFI_DEVICE_PATH_PROTOCOL Header; UINT16 HBAPortNumber; // HBA端口号 UINT16 PortMultiplierPortNumber; // 端口倍增器端口号 UINT16 Lun; // 逻辑单元号 } SATA_DEVICE_PATH;

示例SATA(0x0,0xFFFF,0x0)表示直接连接到HBA端口0的LUN 0设备。

2.2.2 网络设备路径

包括MAC地址、IPv4/IPv6等子类型,例如MAC地址路径:

typedef struct { EFI_DEVICE_PATH_PROTOCOL Header; EFI_MAC_ADDRESS MacAddress; // MAC地址 UINT8 IfType; // 接口类型(如802.3) } MAC_ADDR_DEVICE_PATH;

2.3 ACPI设备路径(Type=0x02)

通过ACPI _HID(硬件ID)和_UID(唯一ID)定位设备:

typedef struct { EFI_DEVICE_PATH_PROTOCOL Header; UINT32 HID; // 硬件ID UINT32 UID; // 唯一ID } ACPI_HID_DEVICE_PATH;

示例ACPI(PNP0A03,0x0)表示ACPI设备HID为PNP0A03(PCI根桥)。

三、设备路径的实际应用

3.1 固件卷结构与设备路径

UEFI固件通常以固件卷(FV)形式组织,设备路径可用于定位卷内文件。下图展示固件卷的层次结构:

UEFI固件卷由卷头、文件系统和多个文件组成,设备路径可精确定位卷内文件位置

3.2 设备路径树结构

设备路径可组合形成树状结构,反映系统硬件拓扑。例如:

根节点下包含多个固件卷(FV),每个FV包含文件系统(FS)和具体文件节(Section)

3.3 常见复合路径示例

  • 硬盘路径PCI(0x1,0x0)/SATA(0x0,0xFFFF,0x0)/HD(1,MBR,0x80000000,0x200000,0x200000)

    • 解析:PCI设备(1,0) → SATA端口0 → 硬盘1(MBR分区,起始扇区0x80000000)
  • USB键盘路径USB(0x0,0x0)/USB(0x1,0x0)/HID(0x1,0x0)

    • 解析:根USB端口0 → 子USB端口1 → HID设备接口0

四、设备路径工具与库

EDK2提供多个库函数简化设备路径操作:

  • DevicePathLib:路径创建、解析、比较(MdePkg/Library/BaseDevicePathLib/)
  • DevicePathFromText:文本格式与二进制路径互转(MdePkg/Include/Protocol/DevicePathFromText.h)

示例代码

// 将文本路径转换为二进制设备路径 EFI_DEVICE_PATH_PROTOCOL* TextToDevicePath(CHAR16 *TextPath) { EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL *DevicePathFromText; gBS->LocateProtocol(&gEfiDevicePathFromTextProtocolGuid, NULL, (VOID**)&DevicePathFromText); return DevicePathFromText->ConvertTextToDevicePath(TextPath); }

五、总结

UEFI设备路径是硬件识别的核心机制,通过标准化的节点结构实现跨平台设备定位。掌握设备路径的类型、格式及工具库,有助于开发者调试硬件驱动、优化启动流程。实际应用中,可结合EDK2提供的库函数快速处理设备路径,提升系统兼容性与可靠性。

如需深入学习,建议参考EDK2源码中MdePkg/Include/Protocol/DevicePath.h定义及相关示例。

【免费下载链接】edk2EDK II项目地址: https://gitcode.com/gh_mirrors/ed/edk2

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/513748/

相关文章:

  • 嵌入式硬件开源项目技术文章输入规范说明
  • SUPER COLORIZER实战:利用Anaconda快速创建独立Python环境
  • 简单指南:如何在Linux上使用Waydroid快速运行Android应用
  • ESP32驱动BLE112模块的BGAPI通信实践指南
  • 基于STM32的博物馆展柜四维环境监控终端设计
  • 如何快速搭建Shenyu网关分布式追踪系统:整合Zipkin完整指南
  • DAMO-YOLO惊艳效果集:80类COCO目标在复杂光照下的识别作品展
  • WinFsp终极指南:Windows用户态文件系统的10个高性能优化技巧
  • 5-顶刊复现:基于Lyapunov的MPC方法与水下机器人AUV路径跟踪trajectory ...
  • SPI ENC硬件加密驱动设计与存储安全适配
  • 【2026年最新600套毕设项目分享】基于web的数学库组卷系统(14215)
  • Qwen-Image-Edit真实案例分享:看看这些“一句话修图”的惊艳效果
  • fd输出模块深度解析:终极格式化输出与颜色渲染指南 [特殊字符]
  • Keyviz在教育领域的终极应用:如何为培训机构打造定制化教学解决方案
  • Qwen3-ASR-0.6B效果实测:复杂环境语音识别,依然清晰
  • 终极指南:如何使用Skia实现惊艳的图像运动模糊效果
  • 基于PI+重复控制的三相APF仿真系统:特点与应用
  • 人工智能应用- 预测新冠病毒传染性:06. M-H 模型:从基因预测传播能力
  • 2026检测机构推荐:资质验证与服务响应速度双重考核四川成都两家机构深度评测 - 速递信息
  • STM32CubeMonitor与J-Link联调实战:变量曲线可视化全解析
  • 告别配置灾难:Guice多环境隔离的5个实战技巧
  • 2026宜宾工业搬迁服务优质推荐榜 诚信可靠之选 - 优质品牌商家
  • 如何让Botty为你自动刷取暗黑破坏神2极品装备?告别重复 farming 的智能脚本全攻略
  • 终极指南:Spinnaker与SaltStack Salt Cloud集成实现云资源管理新范式
  • 混凝土这玩意儿在工程界真是让人又爱又恨。今天咱们聊聊用CDP模型做双轴压-压的细观模拟,特别是骨料、砂浆、界面过渡区这三兄弟全用上损伤塑性模型的骚操作
  • 数据库知识点梳理(二):从基础操作到底层原理
  • SDL2播放器开发必看:解决FFmpeg解码音频格式不兼容的三种方案
  • 远程工作平台性能优化:如何高效处理851家公司的大数据分页加载
  • 2026年浙江3+2化妆学校评测:助你开启美妆之路,国内专业的3+2厂商分析宁三技校专注行业多年经验,口碑良好 - 品牌推荐师
  • Qwen-Image-2512-ComfyUI保姆级教程:5分钟快速部署,新手也能轻松上手