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.
Hi all - I'm trying to understand stage 1 translation.
Assuming that the translation is starting at level 2, how do you determine the number of page table entries in the level 2 table? The documnetation says it can have up to 512 for 4kb granule size. I guess the same question goes for starting at level 1...is there a formula to finding this out?
I have a stage 1 translation that appears to have the following and I'm trying to make sense of it.
T0SZ - 38
1ea level 2 table with 32 entries2ea level 3 tables each with 512 entriesDocument reference: Arm Architecture Reference Manual Armv8, Table D5-19 Properties of the address lookup levels, 4KB granule size, page D5-2577
Fro the Armv8-A, each translation table descriptor uses 8-byte ( 64-bit).For Level 2 table of 4KB granule size, 512 entry x 8 byte = 4096 bytes = one 4K page. That's the reason you can see 512 entries for this case.
When T0SZ=38, the valid VA bits = 64 -38 = 26.
So Level 1 table has 5 bits. The entry number will be 2^5 = 32 entries.