我使用memmap=8G$4G
linux内核启动参数保留内存块。
是否需要ioremap
这段记忆?
ioremap
手册页说:
ioremap执行特定于平台的操作序列 总线内存CPU可通过readb / readw / readl / writeb /访问 writew / writel函数和其他mmio助手。归来了 地址不保证可以直接用作虚拟地址。
因此,如果我不能将ioremap
的返回地址用作直接寻址内存的虚拟地址,那么更广泛的问题是我们何时应该ioremap
内存?
答案 0 :(得分:1)
是的,您必须ioremap
此区域才能访问它。当您指示内核忽略此区域时,内核不会为此内存区域设置页面目录条目。
如果您重新映射ioremap
地址空间的地址,则io-port
返回的地址可能无法直接使用。当您重新映射memory
地址空间中的地址时,可以直接使用它们。
答案 1 :(得分:0)
根据我保留(或阻止)的经验,记忆如下。
如果您尝试保留特定的内存容量,则可能需要重新映射BIOS提供的现有内存映射。
如果您的系统不允许您这样做,那么您必须确定BIOS提供的内存映射中哪个区域是空闲的,并且只能保留。