[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]
Kernel Extensions and Device Support Programming Concepts

Address Translation Subcommands for the KDB Kernel Debugger and kdb Command


tr and tv Subcommands

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.

Example

   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.

Example

   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)> 

[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]