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 experts,
I am new in ARM and I am trying to understand the theory behind address translation in order to generate an address size fault at different levels. I know that during the process from virtual address to physical address translation the Long-descriptor translation table format descriptors are involved. Observing the formats "Block" and "Table" for level 1 and 2 and the format "Page" for level 3, if bits [47:40] are not zero then a translation that uses the descriptor will generate an Address size fault.
What I don't understand is why the bits [47:40] will not be zero, that is, if I am working in C and a page of RAM need to be allocaded, what possible reason would cause those bits to be set to a non-zero value?
I appreciate your help, thanks.