我正在使用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>
这里遗漏的是什么?