diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2012-08-10 14:48:06 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-09-16 15:09:40 -0500 |
commit | 2f50c376a718ea6542b42e029a6735f719a8f407 (patch) | |
tree | f54c4c46d71f1a3226a3e12e69664614ce4db138 /src/build/debug/Hostboot/VirtToPhys.pm | |
parent | a0206bc94f427a1a4e3913fa9122b5530c5500ad (diff) | |
download | talos-hostboot-2f50c376a718ea6542b42e029a6735f719a8f407.tar.gz talos-hostboot-2f50c376a718ea6542b42e029a6735f719a8f407.zip |
Support for Non-zero HRMOR
Changes to kernel code to support detection and use of HRMOR
offset in memory
Changes to tooling to handle the real memory offset
New interface to retrieve the physical address that
corresponds to a virtual address
To test, run these commands before starting up Hostboot:
system_cmp0.cpu0_0_05_0.write-reg HRMOR 0x8000000
proc_venicechip_cmp0.phys_mem.del-map p8Proc0.l3_cache_ram 0 0
RTC: 46032
Change-Id: I50ab248f941218a3a14a8f0fc12a551b56dc7cf3
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1553
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/build/debug/Hostboot/VirtToPhys.pm')
-rw-r--r-- | src/build/debug/Hostboot/VirtToPhys.pm | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/src/build/debug/Hostboot/VirtToPhys.pm b/src/build/debug/Hostboot/VirtToPhys.pm index 8a55c53d5..9a0dbdb39 100644 --- a/src/build/debug/Hostboot/VirtToPhys.pm +++ b/src/build/debug/Hostboot/VirtToPhys.pm @@ -47,7 +47,7 @@ sub main } - if (defined $args->{"showSPTE"}) + if( (defined $args->{"SPTE"}) || (defined $args->{"spte"}) ) { $displaySPTE = 1; } @@ -55,20 +55,30 @@ sub main # Parse 'vaddr' argument. if (not defined $args->{"vaddr"}) { - ::userDisplay "ERROR.. Did not pass in Virtual Address.\n"; - die; + ::userDisplay "ERROR.. Did not pass in Virtual Address.\n"; + die; } my $vaddr = hex($args->{"vaddr"}); if ($debug) { - ::userDisplay (sprintf "\n Virtual Address = %X\n" , $vaddr); + ::userDisplay (sprintf "\n Virtual Address = %X\n" , $vaddr); } - - $phyAddr = Hostboot::_DebugFrameworkVMM::getPhysicalAddr($vaddr, $debug, $displaySPTE); - - return $phyAddr; + + $phyAddr = Hostboot::_DebugFrameworkVMM::getPhysicalAddr($vaddr, $debug, $displaySPTE); + + if (($phyAddr eq Hostboot::_DebugFrameworkVMM::NotFound) || + ($phyAddr eq Hostboot::_DebugFrameworkVMM::NotPresent)) + { + ::userDisplay ("The Physical Address = $phyAddr\n"); + } + else + { + ::userDisplay (sprintf "The Physical Address = 0x%X\n" , $phyAddr); + } + + return $phyAddr; } @@ -80,7 +90,7 @@ sub helpInfo options => { "vaddr=<number>" => ["Virtual Address "], "debug" => ["More debug output."], - "displaySPTE" => ["Display the SPTE for the VA passed in"], + "SPTE" => ["Display the SPTE for the VA passed in"], }, ); |