ARMv7-A的LPAE

时间:2016-10-12 03:38:25

标签: arm virtual u-boot

我正在使用TI Keystone II设备,其中ARMv7-A架构适用于ARM内核。

当我尝试使用大型物理地址扩展(LPAE)时,我使用长描述符转换表格式。这是我用于页面表的行,这是用于超过2GB DDR3A访问的U-Boot补丁:

pgd_table[0] = 0x000000000000071dULL;
pgd_table[1] = 0x000000004000071dULL;
pgd_table[2] = 0x000000008000071dULL;
pgd_table[3] = 0x00000000c000071dULL;  

线条表示从VA到PA的1:1映射。 我要做的是将32位VA映射到36位PA,如下所示:

pgd_table[0] = 0x000000000000071dULL;
pgd_table[1] = 0x00000008C000071dULL; <= modified from 0x0 40000000 to 0x8 C0000000
pgd_table[2] = 0x000000008000071dULL;
pgd_table[3] = 0x00000000c000071dULL;`

我发现跳转到pgd_table [1]的VA映射到0x0 C0000000区域,而不是0x8 C0000000。

这似乎意味着虽然根据ARMv7参考手册[39:30]位长描述符转换格式的[39:30]位是36位输出物理地址,但[39:32]位不会产生任何影响。< / p>

这里遗漏的是什么?

0 个答案:

没有答案