【发布时间】:2021-06-02 23:34:36
【问题描述】:
当我在 UEFI shell 中调用 memmap 时,我得到了两个不同的属性,如下所示:
Shell> memmap
Type Start End # Pages Attributes
Available 0000000080000000-00000000CFFFFFFF 0000000000050000 000000000000000E
Available 0000002000000000-000000237FFFFFFF 0000000000380000 000000000000000F
问题是我不能使用属性标记为000000000000000F 的第二个内存区域。我已经将那部分内存注册到我的页表中。但是,当我将该区域的物理地址转换为虚拟地址时,我的操作系统会崩溃。
所以,我的问题是:
- 属性是什么意思?
- 如何更改属性以使用这部分内存?
【问题讨论】:
-
属性值显示在内核源代码“include/linux/efi.h”中的
EFI_MEMORY_...宏中。 -
属性定义可以在 UEFI 规范第 7.2 节或UEFI spec 2.8 Errata A 的 P166 中找到
标签: linux-kernel arm embedded uefi