memory-management - ARM 内存重映射

标签 memory-management linux-kernel arm embedded-linux mmu

ARM 页表条目有 TEX 重映射位。我读过类似 TEX 重映射与页表条目的 AP 位一起用于访问保护的内容。

  1. 有人帮我弄清楚这些位是什么以及它们代表什么

  2. 是否与内存重映射有关?

    一个。如果是这样,它与普通内存重映射寄存器和主内存重映射寄存器有什么关系。

  3. Linux 内核是否正在使用这些。

    一个。如果是这样,linux 内核以何种方式使用这些。请给我一些用例。

最佳答案

简而言之,页表中的 TEX 位是类型扩展位。它们可用于在细粒度级别控制页面缓存,但通常用作 HW 忽略的纯软件上下文。

参见:

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0211k/Babgahdc.html

Linux 使用这些位作为各种内存管理功能的软件上下文:

#define PMD_SECT_MINICACHE     (PMD_SECT_TEX(1) | PMD_SECT_CACHEABLE)
#define PMD_SECT_WBWA          (PMD_SECT_TEX(1) | PMD_SECT_CACHEABLE | PMD_SECT_BUFFERABLE)
#define PMD_SECT_NONSHARED_DEV (PMD_SECT_TEX(2))

参见:http://lxr.free-electrons.com/source/arch/arm/include/asm/pgtable

关于memory-management - ARM 内存重映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12348564/

相关文章:

c++ - 将数组动态分配到具有指针参数的函数中

c++ - 释放指针 vector 的两种不同方法——为什么一种方法不起作用?

c++ - 关于手动内存管理和深度复制的新手问题

debugging - 如何使用 gdb 转储 ARM 协处理器寄存器?

c - Tiva 2 上的 I2C 接口(interface)

ios - CGDataProvider 在 Swift 4 中返回 null

linux-kernel - drmDropMaster 需要 root 权限?

memory-management - Linux 页面中毒

linker - 了解 GNU 链接描述文件的位置计数器

c - 如何在 Linux 内核中为 char* 类型的字符串分配内存?