ArmPlatformPkg: bring DS-5 scripts in line with linker script changes

The ARM and AARCH64 linker scripts have recently been updated so that
the memory layouts of the ELF and PE/COFF versions of each module are
identical. In particular, this means that the ELF images now have a
hole before the first section rather than starting at offset 0x0, which
means we no longer have to correct for this difference when loading the
ELF image into the debugger.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18775 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Ard Biesheuvel 2015-11-12 07:29:21 +00:00 committed by abiesheuvel
parent b3535ab4ef
commit 0ce8410ed7
1 changed files with 3 additions and 23 deletions

View File

@ -94,9 +94,7 @@ class EfiSectionTE:
stripped_size = struct.unpack("<H", self.ec.getMemoryService().read(self.base_te + 0x6, 2, 32))[0]
stripped_size -= EfiSectionTE.SIZEOF_EFI_TE_IMAGE_HEADER
base_of_code = self.ec.getMemoryService().readMemory32(self.base_te + 0xC)
return self.base_te + base_of_code - stripped_size
return self.base_te - stripped_size
class EfiSectionPE32:
def __init__(self, ec, base_pe32):
@ -131,16 +129,7 @@ class EfiSectionPE32:
return filename[0:string.find(filename,'\0')]
def get_debug_elfbase(self):
# Offset from dos hdr to PE file hdr
pe_file_header = self.base_pe32 + self.ec.getMemoryService().readMemory32(self.base_pe32 + 0x3C)
base_of_code = self.base_pe32 + self.ec.getMemoryService().readMemory32(pe_file_header + 0x28)
base_of_data = self.base_pe32 + self.ec.getMemoryService().readMemory32(pe_file_header + 0x2C)
if (base_of_code < base_of_data) and (base_of_code != 0):
return base_of_code
else:
return base_of_data
return self.base_pe32
class EfiSectionPE64:
def __init__(self, ec, base_pe64):
@ -176,16 +165,7 @@ class EfiSectionPE64:
return filename[0:string.find(filename,'\0')]
def get_debug_elfbase(self):
# Offset from dos hdr to PE file hdr
pe_file_header = self.base_pe64 + self.ec.getMemoryService().readMemory32(self.base_pe64 + 0x3C)
base_of_code = self.base_pe64 + self.ec.getMemoryService().readMemory32(pe_file_header + 0x28)
base_of_data = self.base_pe64 + self.ec.getMemoryService().readMemory32(pe_file_header + 0x2C)
if (base_of_code < base_of_data) and (base_of_code != 0):
return base_of_code
else:
return base_of_data
return self.base_pe64
class FirmwareFile:
EFI_FV_FILETYPE_RAW = 0x01