X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ArmPlatformPkg%2FArmRealViewEbPkg%2FDebugger_scripts%2FEfiFuncs.inc;h=82a32884c4c591b655bbc1d7dc38b29a9d978ee5;hb=3402aac7d985bf8a9f9d3c639f3fe93609380513;hp=0bbe045a960abfbd122adbd18527b47183f7df0f;hpb=1d5d0ae92d95410f20bc6daab7a47e129fb2547a;p=mirror_edk2.git diff --git a/ArmPlatformPkg/ArmRealViewEbPkg/Debugger_scripts/EfiFuncs.inc b/ArmPlatformPkg/ArmRealViewEbPkg/Debugger_scripts/EfiFuncs.inc index 0bbe045a96..82a32884c4 100644 --- a/ArmPlatformPkg/ArmRealViewEbPkg/Debugger_scripts/EfiFuncs.inc +++ b/ArmPlatformPkg/ArmRealViewEbPkg/Debugger_scripts/EfiFuncs.inc @@ -11,7 +11,7 @@ define /r GetMaxMem() define /r GetWord(Addr) { unsigned long data; - + if( (Addr & 0x2) == 0 ) { data = dword(Addr); @@ -68,7 +68,7 @@ unsigned long imgstart; $printf "debug type is %x",debugtype$; return; } - + debugrva = dword(imgstart + debugdirentryrva + 0x14); dwarfsig = dword(imgstart + debugrva); if(dwarfsig != 0x66727764) @@ -81,7 +81,7 @@ unsigned long imgstart; baseofcode = imgstart + dword(filehdrstart + 0x28); baseofdata = imgstart + dword(filehdrstart + 0x2c); - + if( (baseofcode < baseofdata) && (baseofcode != 0) ) { elfbase = baseofcode; @@ -132,7 +132,7 @@ unsigned long imgstart; $printf "debug type is %x",debugtype$; return; } - + debugrva = dword(imgstart + debugdirentryrva + 0x14); debugrva = debugrva - strippedsize; dwarfsig = dword(imgstart + debugrva); @@ -142,16 +142,16 @@ unsigned long imgstart; $printf "found %x", dwarfsig$; return; } - + if( dwarfsig == 0x66727764 ) { elfpath = (char *)(imgstart + debugrva + 0xc); - $printf "looking for elf path at 0x%x", elfpath$; + $printf "looking for elf path at 0x%x", elfpath$; } - else + else { elfpath = (char *)(imgstart + debugrva + 0x10); - $printf "looking for elf path at 0x%x", elfpath$; + $printf "looking for elf path at 0x%x", elfpath$; } // elf base is baseofcode (we hope that for TE images it's not baseofdata) @@ -181,7 +181,7 @@ unsigned long secstart; } else if(sectiontype == 0x12) // TE { - ProcessTE(secstart+0x4); + ProcessTE(secstart+0x4); } } . @@ -247,7 +247,7 @@ define /r LoadPeiSec() $fopen 50, 'C:\loadfiles.inc'$; fvlen = dword(fvbase + 0x20); - + // first ffs file is after fv header, use headerlength field //ffsoffset = (dword(fvbase + 0x30) & 0xffff0000) >> 16; ffsoffset = (dword(fvbase + 0x30) & 0xffff0000) / 0x10000; @@ -257,21 +257,21 @@ define /r LoadPeiSec() while(ffsoffset < (fvbase+fvlen)) { // process ffs file and increment by ffs file size field - ProcessFfsFile(ffsoffset); + ProcessFfsFile(ffsoffset); ffsfilesize = (dword(ffsoffset + 0x14) & 0x00ffffff); if(ffsfilesize == 0) { break; } ffsoffset = ffsoffset + ffsfilesize; - + // align to next 8 byte boundary if( (ffsoffset & 0x7) != 0 ) { ffsoffset = ffsoffset + (0x8 - (ffsoffset & 0x7)); } - + } // end fv ffs loop $vclose 50$; @@ -283,21 +283,21 @@ define /r FindSystemTable(TopOfRam) unsigned long TopOfRam; { unsigned long offset; - + $printf "FindSystemTable"$; $printf "top of mem is %x",TopOfRam$; - + offset = TopOfRam; - + // align to highest 4MB boundary offset = offset & 0xFFC00000; - + // start at top and look on 4MB boundaries for system table ptr structure while(offset > 0) { //$printf "checking %x",offset$; //$printf "value is %x",dword(offset)$; - + // low signature match if(dword(offset) == 0x20494249) { @@ -314,13 +314,13 @@ unsigned long TopOfRam; } } } - + } - + if(offset < 0x400000) break; - offset = offset - 0x400000; + offset = offset - 0x400000; } - + return 0; } . @@ -344,15 +344,15 @@ unsigned long SystemTable; unsigned long dbgptr; unsigned long dbginfo; unsigned long loadedimg; - + $printf "FindDebugInfo"$; - + dbgentries = 0; CfgTableEntries = dword(SystemTable + 0x40); ConfigTable = dword(SystemTable + 0x44); - + $printf "config table is at %x (%d entries)", ConfigTable, CfgTableEntries$; - + // now search for debug info entry with guid 49152E77-1ADA-4764-B7A2-7AFEFED95E8B // 0x49152E77 0x47641ADA 0xFE7AA2B7 0x8B5ED9FE for(i=0; i