This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Invalid entry - mmu page tables

Hi,

I'm pretty much new to this. I have Level 2 table (for ARMv8 - 64KB granule) with multiple 512MB block entries inside.
Some of those blocks are not valid (belong to the reserved/not accessible memory).

Instead of them I've put INVALID entry with descriptor: 0x0000000000000002
Problem is that when this invalid entry is hit (mis-predicted), VA address is translated to PA = 0x0 and cpu will try to read from 0x0.
I thought it will dismiss this translation.

Is there a way to declare this invalid entry to dismiss/not translate this address when it is hit?

Thanks

  • With  a 64K granule you should be having 3x lookup levels, namely level1, level2 and level3 and shouldn't be setting 0x2 at level3.

    0, Reserved, invalid
    Behaves identically to encodings with bit[0] set to 0.
    This encoding must not be used in level 3 translation table