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

建设厅投诉网站建网站什么赚钱

建设厅投诉网站,建网站什么赚钱,网站备案名称修改,深圳沙井做网站公司从事UEFI开发的人员#xff0c;对UEFI Device Path的概念都有一定了解#xff0c;但未必都建立了比较系统而深刻的认识。UEFI Device Path的认知仅限于: 1)它是用来表示系统中设备的路径#xff1b;2) 在UEFI SPEC中定义了它的数据结构和若干操作它的UEFI Protocol。除此以外…从事UEFI开发的人员对UEFI Device Path的概念都有一定了解但未必都建立了比较系统而深刻的认识。UEFI Device Path的认知仅限于: 1)它是用来表示系统中设备的路径2) 在UEFI SPEC中定义了它的数据结构和若干操作它的UEFI Protocol。除此以外, 我对它的相关方面似乎没有更多更深的了解, 包括 UEFI为什么要提出Device Path的设计? Device Path可以表示哪些设备? 是如何表示的 Device Path有哪些实际应用? 最为常见的一个应用就是进入UEFI Shell后会自动提示如下 Mapping Table, 其中每个FSx或BLKx下面都对应一行Device Path, 如何解读它们呢? 这两天趁着春节的空闲我重新翻看了UEFI SPEC并下载EDK2 Source Code进行相关编程实验从理论和实践方面加深了对Device Path的一些认识。这些认识基本围绕上述3个方面来展开在此汇总成篇。 1.UEFI为什么要提出Device Path的设计? 这里援引UEFI SPEC中关于Device Path用途说明的几个关键句子 The primary purpose of a Device Path is to allow an application, such as an OS loader, to determine the physical device that the interfaces are abstracting. A collection of device paths is usually referred to as a name space. However, the ACPI name space was designed for usage at operating system runtime and does not fit well in platform firmware or OS loaders. Given this, EFI defines its own name space, called a Device Path. A Device Path is designed to make maximum leverage of the ACPI name space. 对此我个人的理解和认识是 Device Path用来在UEFI环境中标识系统中的设备(物理设备或者逻辑设备)类似于在ACPI中用Name Space来标识各个Object。 这就意味1)Device Path也具有层级结构2)众多Device Path集合起来构成了1个UEFI环境下的设备命名空间。 OS或者UEFI应用根据Device Path来知道它代表的设备。 举个例子UEFI SPEC中定义了与Console相关的3个variablesConIn, ConOut, and ErrOut。每个variable的内容都包含1个Device Path这个Device Path表示每次开机默认使用的用于该种用途(ConIn,ConOut, ErrOut)的Console DeviceUEFI应用可以通过这个Device Path来确定对应的Console Device。 Device Path在设计上充分利用了已有的ACPI Name Space的命名设计。关于这一点参考下面“Device Path与ACPI的联系”一节。 2.Device Path可以表示哪些设备? 是如何表示的 Device Path的组织结构 Device Path以Device Path Node为基本单位来依次串接而成其结束标志是End of Hardware Device Path类型的Device Path Node。下图展示了Device Path Node的基本结构 每个Device Path Node代表某一层级的域/设备或者设备属性(比如MAC地址/IPv4地址/IPv6地址等)。通常来说它们会按照各自所处的Subsystem的拓扑结构至顶向下来排列形成最终Device Path从而代表了设备的拓扑路径。下面以开篇的UEFI Shell下的Device Path为例来说明。 Example 1Removable USB HDD with MBR partition PciRoot(0x0)/Pci(0x14,0x0)/USB(0x0,0x0)/HD(1,MBR,0x01EDBE02,0x800,0x1004800) PciRoot(0x0) 代表Pci Root Bridge扩展出来的Pci总线域这个是PCI设备的最顶层域在台式机和笔记本上通常只有1个其编号为0。 Pci(0x14,0x0) 代表USB XHCI Controller其PCI Device0x14PCI Function0x00。PCI Bus因为是会变动的(比如有PCI设备Hot-Plug或者下次启动有PCI设备添加/移除)UEFI SPEC规定其值不纳入Device Path Node通常结合平台信息可以推断出来PCI Bus的值。 USB(0x0,0x0) 代表Removable USB HDD, 其接在USB Port 0上。 HD(1,MBR,0x01EDBE02,0x800,0x1004800) 代表Removable USB HDD上的第1个硬盘分区为MBR格式。 Example 2NVMe SSD with GPT partition PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)/NVMe(0x1,C3-70-00-00-02-0D-08-00)/HD(1,GPT,425EAA1B-B401-4960-BEFC-5248CA7BCF28,0x800,0x82000) PciRoot(0x0) 意义同上。 Pci(0x1C,0x4) 代表NVMe SSD所在的PCIe Root Port其PCI Device0x1CPCI Function0x04。 Pci(0x0,0x0) 代表NVMe SSD Controller, 其PCI Device0x0PCI Function0x0。 NVMe(0x1,C3-70-00-00-02-0D-08-00) 代表NVMe的Name Space, 用该Name Space来标识NVMe SSD设备。 HD(1,GPT,425EAA1B-B401-4960-BEFC-5248CA7BCF28,0x800,0x82000) 代表NVMe SSD上的第1个硬盘分区为GPT格式。 Device Path的类别 UEFI SPEC一共定义了6个大类(Type)的Device Path Node每个大类下面又分不同的子类(Sub-Type)。大类划分参考下面表格子类的划分比较繁杂不便一一展开请直接参考UEFI SPEC。 大类 可表示的典型设备/对象 Hardware Device Path PCI设备Vendor自定义设备BMC ACPI Device Path PCI总线域(如上面的PciRoot(0x0)) 显示输出设备ACPI设备比如鼠标/键盘等) Messaging Device Path IDE设备USB设备SATA设备SAS设备SCSI设备UART设备Vendor自定义对象MAC地址IPv4/IPv6地址其他新兴设备 Media Device Path 硬盘分区CDROM分区Vendor自定义Media文件路径UEFI固件分区UEFI固件文件RAM Disk BIOS Boot Specification Device Path 传统的BIOS启动设备 End of Hardware Device Path Device Path终结符 Device Path的文本表示形式 UEFI定义了相关的Protocol来将Device Path的数据结构转换为可视化的文本形式。下面给出几种常见Devie Path Node类型的文本形式。 EDK2给出了将各种Device Path Node转换成文本形式的实现具体参考mUefiDevicePathLibToTextTable[] defined in edk2\MdePkg\Library\UefiDevicePathLib\DevicePathToText.c. Device Path Node类型 文本格式 示例 PCI设备 Pci(Dev,Func) Dev-PCI Device NumberFunc-PCI Function Number Pci(0x1C,0x4) Vendor自定义设备 VenHw(GUID[,Data]) GUID为Vendor GUID,Data为对应的数据(如存在) VenHw(480B3204-C23C-4AE1-BB16-A73FADDA475F) ACPI设备 - PCI总线域 PciRoot(UID) UID为PCI总线域编号 PciRoot(0) ACPI设备 - 通用形式 Acpi(HID,UID) HID,UID定义参考ACPI SPEC Acpi(PNP0303,0x0) IDE设备 Ata([PriSec,SlaveMaster,]LUN) 相关参数参考UEFI SPEC说明 Ata(Primary,Master,0) USB设备 USB(ParentPort,InterfaceNumber) 相关参数参考UEFI SPEC说明 USB(0x5,0x0) SATA设备 Sata(HBAPort,PortMultiplierPort,LUN) 相关参数参考UEFI SPEC说明 Sata(0x1,0x0,0x0) NVMe设备 NVMe(NSID,EUI-64) 相关参数参考UEFI SPEC说明 NVMe(0x1,C3-70-00-00-02-0D-08-00) 硬盘分区 HD(PartitionNumber,PartitionFormat,PartitionSig, PartitionStartLBA,PartitionSize)相关参数参考UEFI SPEC说明 HD(1,MBR,0x01EDBE02,0x800,0x1004800) HD(1,GPT,425EAA1B-B401-4960-BEFC-5248CA7BCF28,0x800,0x82000) CD-ROM分区 CDROM(BootEntry[,PartitionStartRBA,PartitionSize]) 相关参数参考UEFI SPEC说明 MAC地址 MAC(MACAddr,NICInterface) 相关参数参考UEFI SPEC说明 MAC(54E1AD76ACEB,0x0) IPv4地址 IPv4(RemoteIPAddr[,Protocol,Static/DHCP,LocalIPAddr,GatewayIPAddr,SubnetMask]) 相关参数参考UEFI SPEC说明 IPv4(0.0.0.0) IPv6地址 IPv6(RemoteIPAddr[,Protocol,IpAddressOrigin,LocalIPAddr,GatewayIPAddr,SubnetMask]) 相关参数参考UEFI SPEC说明 IPv6(0000:0000:0000:0000:0000:0000:0000:0000) UEFI固件分区 Fv(FvGUID) 相关参数参考UEFI SPEC说明 Fv(A881D567-6CB0-4EEE-8435-2E72D33E45B5) Device Path与ACPI的联系 从上一节可以看到ACPI Device Path类别的Device Path Node是沿用ACPI命名设计的。在Acpi(HID,UID)形式中HID是APCI定义的UUUNNNN形式的HID字符串UID也与APCI定义完全相同。 3.如何解读UEFI Shell下Mapping Table中的Device Path? 在“Device Path的组织结构”一节中已经解析过开篇提到的UEFI Shell下的Device Path了这里补充说一下我对FSx和BLKx是如何进行映射的理解。 具体实现可以参考UEFI Shell在EDK2中的源码ShellCommandCreateInitialMappingsAndPaths() defined in edk2\ShellPkg\Library\UefiShellCommandLib\UefiShellCommandLib.c. 详细的代码实现逻辑非常复杂,这里只挑几个要点陈述如下: FSx的映射 1.先找到Support EFI_SIMPLE_FILE_SYSTEM_PROTOCOL的所有Device Handle每个Device Handle代表1个File System会被分配1个FSx:。 2.对上述每个Device Handle Locate到其Device Path转换为Device Path Text按Text String由小到大的顺序进行排序对应的Device Handle的FSx从0开始依次编号。 BLKx的映射 1.先找到Support EFI_BLOCK_IO_PROTOCOL的所有Device Handle每个Device Handle代表1个Block设备会被分配1个BLKx:。 2.对上述每个Device Handle Locate到其Device Path转换为Device Path Text 按Text String由小到大的顺序进行排序对应的Device Handle的BLKx从0开始依次编号。 3.如上述Device Handle与FSx映射中的Device Handle是同1个则在对应的FSx:右侧标注对应的BLKx:。
http://www.hkea.cn/news/14485818/

相关文章:

  • 网页制作怎么建站点建网站找那家好
  • 经销商自己做网站合适吗网站建站域名解析最后做
  • 网站建设公司应该怎么转型凡客旗下app
  • 九一制作网站普通人做电商赚钱吗
  • 服装设计资源网站移动网站程序
  • 支付宝手机网站签约网页游戏交易网站
  • 网站建设哪些是需要外援的问题网站流量地址评价是什么意思
  • 做百度移动网站快速黑龙江网架公司
  • 白酒网站定制开发怎么用nas做网站服务器
  • 广州市网站建设在哪里平顶山工程造价信息网
  • 网站建设捌金手指下拉一安徽网页设计培训
  • 微信公众号绑定网站河津市城乡建设局网站
  • 宜昌网站设计公司自我介绍ppt模板免费下载
  • 文档共享网站建设网站开发人员名片
  • 电子商务网站建设与电子支付wordpress开发视频网站模板
  • 邹城网站建设多少钱可免费下载的ppt模板
  • 顺德品牌网站建设公司自助建站软件排行榜
  • 长春火车站在哪个街道企业网站的特点是什么
  • 设计网站的公司名称软件开发属于什么行业类别
  • 朔州怀仁网站建设网站被镜像 站长学院
  • 北京商城网站建设报价平面设计排版
  • 重庆网站seo推广公司市场监督管理局官网查询系统
  • 公司网站实名认证企业信用信息查询系统
  • 北京通州区网站制作热搜榜上2023年热门话题
  • 网站后台编辑器wordpress 替代
  • 百度小程序跟做网站外贸网站的特点
  • 企业网站备案在哪个部门福州网站建设索q479185700
  • 网站建设免费的网站建设合同 售后维护期
  • 中科时代建设官方网站网站广告尺寸
  • 网站建设上机考试题目discuz 做家教网站