I am trying to understand how page table translation happens in ARM64. I found this answer to be very enlightening: Understanding AArch64 Translation Tables.
However, one part I don’t understand is how the SMMU determines the width of a given virtual address during translation, as it needs this information to identify which bits to use for indexing the page table.
Can some explain how is this width determined?