The tr and tv subcommands may be used to decode the MMU translation. tr is a short format, tv gives all information.
The following example applies on POWER PC achitecture, see POWER PC Operating Environment Architecture book III to have more information.
On tv subcommand, all double hashed entries are dumped, when the entry matches the specified effective address, corresponding physical address and protections are displayed. Page protection (K and PP bits) is given according to current segment register value and current machine state register value.
KDB(0)> tr @iar physical address of current instruction Physical Address = 001C5BA0 KDB(0)> tv @iar physical mapping of current instruction vaddr 1C5BA0 sid 0 vpage 1C5 hash1 1C5 pte_cur_addr B0007140 valid 1 vsid 0 hsel 0 avpi 0 rpn 1C5 refbit 1 modbit 1 wim 1 key 0 ____ 001C5BA0 ____ K = 0 PP = 00 ==> read/write pte_cur_addr B0007148 valid 1 vsid 101 hsel 0 avpi 0 rpn 3C4 refbit 0 modbit 0 wim 1 key 0 vaddr 1C5BA0 sid 0 vpage 1C5 hash2 1E3A Physical Address = 001C5BA0 KDB(0)> tv __ublock physical mapping of current U block vaddr 2FF3B400 sid 9BC vpage FF3B hash1 687 ppcpte_cur_addr B001A1C0 valid 1 sid 300 hsel 0 avpi 1 rpn 13F4 refbit 1 modbit 1 wimg 2 key 1 ppcpte_cur_addr B001A1C8 valid 1 sid 9BC hsel 0 avpi 3F rpn BFD refbit 1 modbit 1 wimg 2 key 0 ____ 00BFD400 ____ K = 0 PP = 00 ==> read/write vaddr 2FF3B400 sid 9BC vpage FF3B hash2 978 ppcpte_cur_addr B0025E08 valid 1 sid 643 hsel 0 avpi 3F rpn 18D3 refbit 1 modbit 1 wimg 2 key 0 Physical Address = 00BFD400 KDB(0)> tv fffc1960 physical mapping thru BATs BAT mapping for FFFC1960 DBAT0 FFC0003A FFC0005F bepi 7FE0 brpn 7FE0 bl 001F v 1 wim 3 ks 1 kp 0 pp 2 s 0 eaddr = FFC00000, paddr = FFC00000 size = 4096 KBytes KDB(0)> tv abcdef00 invalid mapping Invalid Sid = 007FFFFF KDB(0)> tv eeee0000 invalid mapping vaddr EEEE0000 sid 505 vpage EEE0 hash1 BE5 vaddr EEEE0000 sid 505 vpage EEE0 hash2 141A Invalid Address EEEE0000 !!! On 620 machine KDB(0)> set 11 64 bits printing 64_bit is true KDB(0)> tv 2FF3AC88 physical mapping of a stack address eaddr 2FF3AC88 sid F9F vpage FF3A hash1 A5 p64pte_cur_addr B0005280 sid_h 0 sid_l 0 avpi 0 hsel 0 valid 1 rpn_h 0 rpn_l A5 refbit 1 modbit 1 wimg 2 key 0 p64pte_cur_addr B0005290 sid_h 0 sid_l 81 avpi 0 hsel 0 valid 1 rpn_h 0 rpn_l 824 refbit 1 modbit 0 wimg 2 key 0 p64pte_cur_addr B00052A0 sid_h 0 sid_l 285 avpi 0 hsel 0 valid 1 rpn_h 0 rpn_l 5BE refbit 1 modbit 1 wimg 2 key 0 p64pte_cur_addr B00052B0 sid_h 0 sid_l F9F avpi 1F hsel 0 valid 1 rpn_h 0 rpn_l 1EC2 refbit 1 modbit 1 wimg 2 key 0 ____ 0000000001EC2C88 ____ K = 0 PP = 00 ==> read/write eaddr 2FF3AC88 sid F9F vpage FF3A hash2 F5A Physical Address = 0000000001EC2C88
The following example applies on POWER RS1 architecture.
KDB(0)> tr __ublock physical address of current U block Physical Address = 0779F000 KDB(0)> tv __ublock physical mapping of current U block vaddr 2FF98000 sid 4008 vpage FF98 hash BF90 hat_addr B102FE40 pft_cur_addr B00779F0 nfr 779F sidpno 20047 valid 1 refbit 1 modbit 1 key 0 Physical Address = 0779F000 K = 0 PP = 00 ==> read/write KDB(0)>