三哥编程分享
这个作者很懒,什么都没留下…
展开
-
飞腾UEFI电源控制选择代码解析
以D2000打工工具为例,下图打包工具中有选择主板电源管理方式,这里可以选择CPLD、EC、和SE,其中SE代表为X100控制上下电时序。为什么打包工具中要加入这一项配置呢,这是因为不同的电源控制方式,开关机的提示方式有所不同,比如CPLD是通过PWR_CTR0/1发脉冲,EC是通过LPC总线修改ECRAM的值。CPU关机,PWR_CTR0拉高,在拉高期间,PWR_CTR1产生12个脉冲,再将PWR_CTR0拉低,这样来指示CPU完成了关机,需要CPLD在检测到该信号后对主板的各路电源按时序要求进行下电。原创 2024-04-16 22:17:17 · 105 阅读 · 0 评论 -
飞腾UEFI配置GPIO—飞腾FT2000/4 (D2000/8) GPIO引脚配置及使用
讲解了在飞腾UEFI代码中如何添加GPIO配置相关代码,并以GPIO1_B0—B7为例,将这8个引脚配置为GPIO工作模式并默认输出低电平原创 2023-05-09 17:16:03 · 2879 阅读 · 2 评论 -
解决FT2000-4及D2000-8内存容量信息系统下显示和实际不一致问题
解决FT2000-4及D2000-8内存容量信息系统下显示和实际不一致问题,在飞腾提供的edk-3.3.x、edk-3.4.x及edk-3.5.x所编译的出的BIOS,都会存在内存容量信息及DIMM个数与实际不一致问题,具体表现如下:在下图左边的内存信息是操作系统内核读取出来的,内存容量是正确的,但是下图右边内存容量显示与左边容量不一致,即使更换不通厂家不通容量的内存条,下图右边读出来的信息也不会有任何的变化,经过排查为飞腾提供的UEFI源码存在问题导致。原创 2022-10-26 15:31:04 · 1067 阅读 · 1 评论 -
UEFI实战 图像输出(基于EFI_GRAPHICS_OUTPUT_PROTOCOL)
这里写目录标题前言1. Blt Buffer2.EFI_GRAPHICS_OUTPUT_PROTOCOL的定义3. EFI_GRAPHICS_OUTPUT_PROTOCOL.QueryMode()4. EFI_GRAPHICS_OUTPUT_PROTOCOL.SetMode()5. EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt()的定义6. EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt()的使用运行效果:前言为了支持现代固件特性,图形输出在预引导空间中非常重要。这原创 2021-09-13 15:31:45 · 2214 阅读 · 0 评论 -
UEFI 串口的使用(基于EFI_SERIAL_IO_PROTOCOL)
文章目录前言1、EFI_SERIAL_IO_PROTOCOL介绍2、EFI_SERIAL_IO_PROTOCOL定义3、EFI_SERIAL_IO_PROTOCOL的使用前言串行I/O协议用于与uart风格的串行设备通信。这些端口可以是PC-AT系统中的标准UART串行端口,连接到USB接口的串行端口,或者可能是任何基于字符的I/O设备。串行I/O协议可以从通用设备控制字节I/O样式的设备,到具有UART等特性的设备。因此,许多串行I/O特性都是可选的,以允许没有UART控制的设备的情况。这些选项中的原创 2021-09-09 21:07:33 · 2169 阅读 · 0 评论 -
UEFI 数据输出(基于EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL)
前言Simple Text Output protocol定义了基于文本输出设备的最小需求,UEFI规范要求EFI_SIMPLE_TEXT_INPUT_PROTOCOL和EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL支持一直的语言。1.EFI_SIMPLE_TEXT_OUTPUT_PROTOCOLSummary(总结):该协议用于控制基于文本的输出设备。GUID:#define EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID \{0x387477c2,原创 2021-09-08 22:04:00 · 826 阅读 · 0 评论 -
UEFI HelloWorld的两种输出方式
文章目录1.使用gST->ConOut->OutputString输出2.使用Print输出HelloWorld.inf[Defines]INF_VERSION = 0x00010005BASE_NAME = HelloWorldFILE_GUID = 2d61d1f1-52c5-3617-85c4-39d5edc02bb7MODULE_TYPE = UEFI_APPLICATI原创 2021-09-08 20:25:36 · 497 阅读 · 0 评论 -
UEFI 键盘数据的读取(基于EFI_SIMPLE_TEXT_INPUT_PROTOCOL)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、EFI_SIMPLE_TEXT_INPUT_PROTOCOL二、EFI_SIMPLE_TEXT_INPUT_PROTOCOL.Reset()三、EFI_SIMPLE_TEXT_INPUT_PROTOCOL.ReadKeyStroke()四、EFI_SIMPLE_TEXT_INPUT_PROTOCOL.WaitForKey()五、EFI_SIMPLE_TEXT_INPUT_PROTOCOL的定义六、EFI_SIMPLE_TEX原创 2021-09-08 16:57:36 · 1816 阅读 · 0 评论 -
UEFI实战 gST、gBS和gImageHandle
文章目录一、gST、gBS和gImageHandle是什么?二、使用步骤1.变量定义2.变量的初始化3.gST、gBS和gImageHandle的使用一、gST、gBS和gImageHandle是什么?gST:globalSystemTable,指向SystemTable,EFI系统表的缓存指针;gBS:globalBootServices,指向SystemTable->BootServices,EFI引导服务表的缓存指针;gImageHandle:ImageHandle,Image句柄的原创 2021-09-05 19:49:17 · 689 阅读 · 0 评论 -
Host是如何与EC通信的(BIOS通过ACPI协议对EC RAM进行读写)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、EC RAM是什么?二、使用步骤1.高级配置和电源接口(ACPI)规范2.EC RAM读写过程总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、EC RAM是什么?EC提供256字节的可被系统读写的RAM空间,EC的资源(包括电池信息、EC版本原创 2021-08-28 21:17:21 · 7198 阅读 · 4 评论 -
UEFI驱动和DXE驱动的区别
UEFI驱动符合UEFI驱动模型DXE驱动不遵循UEFI驱动模型原创 2021-06-24 19:05:15 · 1067 阅读 · 0 评论 -
使用qemu运行银河麒麟操作系统
下载UEFIhttp://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/QEMU_EFI.fd假定:虚拟机硬盘文件位置: D:\VirtualBox_VMs\arm64-centos7UEFI下载后的位置: D:\VirtualBox_VMs\arm64-centos7\QEMU_EFI.fdCENTOS的ISO文件位置: D:\backup\iso\CentOS\CentOS-7-aar...转载 2021-06-21 19:53:31 · 3183 阅读 · 0 评论 -
Execute In Place (XIP)
Execute In Place,即芯片内执行,指应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。flash内执行是指nor flash 不需要初始化,可以直接在flash内执行代码。但往往只执行部分代码,比如初始化RAM....原创 2021-03-15 11:26:08 · 940 阅读 · 0 评论 -
CAR(Cache As Ram)
CAR(Cache As Ram),在计算机CPU启动的初始阶段,各种外部设备和内存设备都还没有初始化,当系统需要一些ram来存储代码和数据时,可以利用CPU的cache来充当临时RAM,即将cache配置为no-eviction模式,读命中返回cache中的数据,读缺失时不向主存产生缺页中断;写命中时数据将写入cache中,写缺失时不会向主存发送缺页中断。...原创 2021-03-15 09:56:19 · 855 阅读 · 0 评论