We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello Experts,
In section G5.5.1 " Overview of VMSAv8-32 address translation using Long-descriptor translation tables" of ARM ARM and also in the code which I got from repository, I can see bits [31:30] of VA are used to index level 1 table.
Code:
//Traverse the virtual-address in 1st level pagetable //Only bit 31:30 use for 1st level addressing addr_1stLevel = (virtualAddress & 0xC0000000);
//Get the index from virtual address addr_1stLevel = (addr_1stLevel >> 30);
//Get the address on the address addr_1stLevel = (addr_1stLevel << 3) + baseAddress;
ARM ARM:
I am trying to understand why VA[31:30] are used to index level 1 table ? And bits 29:21 are used to index level 2 table ?
I was considering ARM ARM as a general example. But I could see the same is implemented in code.
Can anyone explain the logic behind indexing tables with these specific bits of VA ?
Regards,
Amitra