热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

EFI资料翻译EFI概述2

UEFIuefi关键内容1.Objects-管理系统(包括IO设备,memory,events)的状态。2.TheUEFIS

UEFI
uefi关键内容
1. Objects-管理系统(包括I/O设备,memory,events)的状态。
2. The UEFI System Table-data structure with data in-formation tables to interface with the systems
3. .Handle database and protocols- callable interfaces that are registered
4. UEFI Image-the executable content format.
5. Events-the software can be signed in response to some other activity.(软件可以被信号通知以做出一些反应)
6. Device paths-a data structure that describes the hardware location of an entity

什么是GUID?
1. GUID—guaranteed(Globally) Unique Identifiers(设定的唯一标识符),总共128个bit。
2. Used to identify protocols-用于去识别协议。
3. Regulate extension mechanism-控制扩展机制。
–Documented in the spec
–Added through drivers
3bf1ca7aa6d0a9d22f73b3eb.jpg

Handles:
.所有的协议都有一个Handles和其联系在一起的。
. Every device and executable image in EFI has a handle protocol in the handle database.
675db6ed501868ebb21cb1f2.jpg

What is the UEFI System Table?
.Firmware implementation information
-外围设备只能读取Table数据。
-Spec version。
-UEFI protocols的接口。
-其他标准的接口。
05705501c0848d391c9583d3.jpg

Device path protocol:
-一个描述一个设备在platform中位置的数据结构。
-ALL boot device,logical devices and images 都必须被一个device path所描述。
-device path的6types:
.Hardware
.Acpi-uid/hid of device of in AMI
.Message-例如:LAN, Fiber Channel, ATAPI, SCSI, USB.
   .Media-HD, Floppy,CD-ROM.
.EDD 3.0 boot device—see EDD 3.0 SPEC INT13 48.
.End of hardware-marks end of device path。
What are UEFI Boot services?
.Events and notifications
-polled(轮询) devices,no interrupts
.watchdog timer
- Elegant recovery
.Memory allocation(内存分配)
.Handle location ––for finding protocols
.Image loading
-Drivers, application, OS loader

UEFI Runtime Services:
.Services available at both boot time and runtime.
.Timer, wakeup alarm
-Allow system to wake up or power on at a set time.
.Variables
-boot manager handshake.
.System reset.

UEFI Driver Design
. Modular chunks(大块的) of code run in pre-boot。
-manage devices or services.
-..they are NOT OS-present drivers!.(他们不是使OS出现的驱动)。
.Drivers export(输出) protocol(协议) interfaces
-protocol=instance(实例) data + access methods.
- Like C++ classes but more code space efficient(效率)。
- Identified by GUID to avoid collisions(冲突)。
- Version numbers and signatures provide means to manage driver management policy
.Drivers may consume(占用) protocol interfaces。
-self-describing the dependencies.
-E.g. memory initialization may depend on SMBUS service

UEFI Driver Model:
.Used for devices on industry standard bus.
-“boot devices”
.Structured model of device/bus hierarchy(层次).
-device drivers and bus drivers。
-Device drivers are topology(拓扑结构) agnostic.
.Benefits(好处)
-simpler device drivers
   -把复杂性都移进入BUS drivers 和core services
   -Smaller drivers footprint(占用?)。
-通过platform来确定性的选择驱动
   -which driver controls which device。
-Describes 复杂的bus hierarchies(层次)。
-Embedded, Desktop, Workstation, Server
-Extensible to future bus types

BUS DRIVER:
. Consumes(消耗) Parent Bus I/O Abstraction(s)。
.initializes bus controller(初始化bus控制器).
.Allocates Resources for child controllers.-分配资源给子控制器
.Creates Handles for child controllers.
. Loads drivers from Option ROMs if present-从option ROM载入驱动。
68d04a00f066d9b8e850cda4.jpg

DEVICE DRIVER:

.Consumes(消耗) bus i/o abstraction(s)。

.initializes device controller

.produces device abstraction(s)

-Block i/o protocol

-simple text output protocol.

-simple Network protocol.

.Does not create any child handles.

.can still be a “parent” controller.

DEIVER Initialization:

.EFI Driver handoff state.

.Not allowed to touch hardware resources.

Installs driver binding on driver image handle.

3bf1ca7aa62ea9d22f73b3a1.jpg

阅读全文
类别:Efi 查看评论

转:https://www.cnblogs.com/kuwoyidai/archive/2010/07/12/1777532.html



推荐阅读
  • 本文介绍了在go语言中利用(*interface{})(nil)传递参数类型的原理及应用。通过分析Martini框架中的injector类型的声明,解释了values映射表的作用以及parent Injector的含义。同时,讨论了该技术在实际开发中的应用场景。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • Java 11相对于Java 8,OptaPlanner性能提升有多大?
    本文通过基准测试比较了Java 11和Java 8对OptaPlanner的性能提升。测试结果表明,在相同的硬件环境下,Java 11相对于Java 8在垃圾回收方面表现更好,从而提升了OptaPlanner的性能。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
author-avatar
何霞2502856453_910
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有