7 Star 70 Fork 41

luobing4365/uefi-practical-programming

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
勘误.md 6.50 KB
一键复制 编辑 原始数据 按行查看 历史
luobing4365 提交于 2024-03-04 21:23 . update 勘误.md 20240304

《UEFI编程实践》勘误记录

第1章 UEFI的世界

:memo: 第2页 原始:“图1-1展示了4Mb Award BIOS的镜像结构”以及“图1-1 4Mb Award BIOS镜像图”
更正为:“图1-1展示了2Mb Award BIOS的镜像结构”以及“图1-1 2Mb Award BIOS镜像图”

:memo: 第3页 原始:“我们以上述4Mb的Award BIOS为例,讲解BIOS文件加载流程,一窥Legacy BIOS的启动流程”
更正为:“我们以上述2Mb的Award BIOS为例,讲解BIOS文件加载流程,一窥Legacy BIOS的启动流程”

原始:“BIOS ROM一般会映射到内存可寻址范围的高端地址,比如4Mb的BIOS,占用内存范围为0FFF80000h ~ 0FFFFFFFFh。”
更正为:“BIOS ROM一般会映射到内存可寻址范围的高端地址,比如2Mb的BIOS,占用内存范围为0FFFC0000h ~ 0FFFFFFFFh。”

:memo: 第4页 原始:“Legacy BIOS主要运行在实模式下,可寻址空间限制在1Mb以内。”
更正为:“Legacy BIOS主要运行在实模式下,可寻址空间限制在1MB以内。”

:memo: 第5页 原始:“Legacy BIOS的中代码一般都属于静态链接”
更正为:“Legacy BIOS中的代码一般都属于静态链接”

:memo: 第6页 原始:
“UEFI的应用程序和驱动可以从任何UEFI规范支持的设备和文件系统中加载,而决定加载顺序的就是启动管理器。”
更正为:
“操作系统或UEFI Shell等可以在任何符合规范的设备中加载,而决定加载顺序的就是启动管理器(Boot Manager)。”

作者说明:原描述不准确,请参考UEFI Spec第3章 Boot Manager。

第2章 UEFI开发和调试环境搭建

:memo: 第35页 原始:
(前略,步骤3)

~/UEFIWorkspace$ mkdir _ovmf_dbg 
~/UEFIWorkspace$ cd _ovmf_dbg  
~/UEFIWorkspace/_ovmf_dbg$ cp Build/OvmfIa32/DEBUG_GCC5/FV/OVMF.fd ./

更正为:

~/UEFIWorkspace$ mkdir _ovmf_dbg  
~/UEFIWorkspace$ cd _ovmf_dbg  
~/UEFIWorkspace/_ovmf_dbg$cp ../Build/OvmfIa32/DEBUG_GCC5/FV/OVMF.fd ./

原始:
(前略,步骤4)运行如下命令启动QEMU。

$qemu-system-x86_64 -s -pflash OVMF.fd -hadfat:rw:hda-contents/ -net none -debugcon file:debug.log -global isa-debugcon.iobase=0x402 

更正为:运行如下命令启动QEMU。

$qemu-system-x86_64 -s -pflash OVMF.fd -hda fat:rw:hda-contents/ -net none -debugcon file:debug.log -global isa-debugcon.iobase=0x402 

:memo: 第37页 原始:
“安装完成后,执行文件/opt/intel/udkdebugger/bin。”

更正为: “安装完成后,执行文件位于文件夹/opt/intel/udkdebugger/bin下。”

第3章 构建UEFI应用

:memo: 第46页 原始(表3-2,SKUID_IDENTIFIER处):“一般为Default,否则必须是[Skuids]中的值”
更正为:“一般为DEFAULT,否则必须是[Skuids]中的其他值”

:memo: 第52页 原始:“需要注意的是,同一个源文件,不置于COMMON架构(也即对所有架构通用)但又置于指定的架构(比如IA32)下,这种做法是禁止的”
更正为:“需要注意的是,同一个源文件,不能同时置于common和指定架构。”

:memo: 第67页 原始:
RETURN_STATUS EFIAPI MyLibDestructor (VOID)//回收资源用库函数
{
Print(L"MyLibConstructor() is called!\n");
}
更正为:
RETURN_STATUS EFIAPI MyLibDestructor (VOID)//回收资源用库函数
{
Print(L"MyLibDestructor() is called!\n");
}

:memo: 第67页 原始:“SET PcdNmae = VALUE”
更正为:“SET PcdName = VALUE”

:memo: 第85页 原始:“它不需要指定参数AgentHandel、”
更正为:“它不需要指定参数AgentHandle、”

第6章 GUI开发与移植

:memo: 第175页 原始为:“EFI_EVENT_NOTIFY)NotifyWaitFunc, //通知函数”
更正为:“(EFI_EVENT_NOTIFY)NotifyWaitFunc, //通知函数”

:memo: 第177页 原始:“如果事件类型为EVT_NOTIFY_FIGNAL”
更正为:“如果事件类型为EVT_NOTIFY_SIGNAL”

第7章 UEFI环境下访问外设

:memo: 第224页 原始:“一般采用扩展的ASII码,值的范围为”
更正为:“一般采用扩展的ASCII码,值的范围为”

第8章 UEFI驱动与Option ROM

:memo: 第234页 原始:“UEFI的启动服务中提供了InstallProcotocolInterface()和InstallMultipleProtocolInterfaces()函数”
更正为:“UEFI的启动服务中提供了InstallProtocolInterface()和InstallMultipleProtocolInterfaces()函数”

第10章 UEFI与网络

:memo: 第311页 原始:
“GitHub 上有官方的参考文档,网址为 https://github.com/tianocore/tianocore.github.io/wiki/Network-io。根据文档介绍,Nt32 模拟器的网络设置,可以参考 UEFI Network Stack Getting Started Guid。”
更正为:“可以参考官方提供的文档UEFI Network Stack for EDK Getting Started Guide。”

作者说明:GitHub上提供的此文档链接已经失效了,我把文档放在了/chap10下。

:memo: 第333页 原始: “printf("Message form server: %s\n", RecvBuffer);”
更正为: “printf("Message from server: %s\n", RecvBuffer);”

:memo: 第336页 原始: “printf("Message form server: %s\n", recvStr);”
更正为: “printf("Message from server: %s\n", recvStr);”

:memo: 第342页 原始: “printf("Message form server: %s\n", recvStr);”
更正为: ”printf("Message from server: %s\n", recvStr);“

第12章 飞腾平台上开发UEFI程序

:memo: 第365页 原始: “git submodule update -init”
更正为: “git submodule update --init”

感谢名单

每次收到读者来信,不免惴惴不安,总觉得受到大家过度的善意关怀。特别是认真帮忙指正错误的朋友,在此深表谢意! 感谢以下朋友的指正,名单如下(排名不分先后)。

老狼(知乎)

bios菜鸟(微信BIOS群)

Iversu(微信BIOS群)

一柯南571870829@qq.com

cshinexsc@sina.com

Jones Tseng289606637@qq.com

zhouby_cn@126.com

houchengf@163.com

zhangpeng_lx@qq.com

yanfengzhao@163.com

热爱@@@ (CSDN网友)

uefi_explorer@163.com

lizic0228@foxmail.com

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/luobing4365/uefi-practical-programming.git
git@gitee.com:luobing4365/uefi-practical-programming.git
luobing4365
uefi-practical-programming
uefi-practical-programming
master

搜索帮助

A270a887 8829481 3d7a4017 8829481