]> git.proxmox.com Git - mirror_edk2.git/blame - EmbeddedPkg/Scripts/LauterbachT32/EfiProcessPeImage.cmm
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / EmbeddedPkg / Scripts / LauterbachT32 / EfiProcessPeImage.cmm
CommitLineData
98790d81 1;\r
2; Copyright (c) 2011, Hewlett-Packard Company. All rights reserved.<BR>\r
3; \r
878b807a 4; SPDX-License-Identifier: BSD-2-Clause-Patent\r
98790d81 5; \r
6\r
7 LOCAL &imgstart &filehdrstart &debugdirentryrva &debugtype &debugrva &dwarfsig &baseofcode &baseofdata &elfbase &elfpath &pathoffset\r
8 ENTRY &imgstart\r
9\r
10 &imgstart=&imgstart\r
11 print "PE32 image found at &imgstart"\r
12\r
13 ; offset from dos hdr to PE file hdr\r
14 &filehdrstart=&imgstart+Data.Long(c:&imgstart+0x3C)\r
15\r
16 ; offset to debug dir in PE hdrs\r
17 &debugdirentryrva=Data.Long(c:&filehdrstart+0xA8)\r
18 if &debugdirentryrva==0\r
19 (\r
20 print "no debug dir for image at &imgstart"\r
21 enddo\r
22 )\r
23 \r
24 &debugtype=Data.Long(c:&imgstart+&debugdirentryrva+0xc)\r
25 if (&debugtype!=0xdf)&&(&debugtype!=0x02)\r
26 (\r
27 print "debug type is not dwarf for image at &imgstart, it's &debugtype"\r
28 enddo\r
29 )\r
30 \r
31 &debugrva=Data.Long(c:&imgstart+&debugdirentryrva+0x14)\r
32 &dwarfsig=Data.Long(c:&imgstart+&debugrva)\r
33 \r
34 if &dwarfsig==0x66727764\r
35 (\r
36 &pathoffset=0xc\r
37 )\r
38 else\r
39 (\r
40 if &dwarfsig==0x3031424E\r
41 (\r
42 &pathoffset=0x10\r
43 )\r
44 else\r
45 (\r
46 print "debug signature not found for image at &imgstart, its &dwarfsig"\r
47 enddo\r
48 )\r
49 )\r
50\r
51 &elfpath=Data.String(c:&imgstart+&debugrva+&pathoffset)\r
52\r
53 &baseofcode=&imgstart+Data.Long(c:&filehdrstart+0x28)\r
54 &baseofdata=&imgstart+Data.Long(c:&filehdrstart+0x2c)\r
55 \r
56 if (&baseofcode<&baseofdata)&&(&baseofcode!=0)\r
57 (\r
58 &elfbase=&baseofcode;\r
59 )\r
60 else\r
61 (\r
62 &elfbase=&baseofdata;\r
63 )\r
64\r
65 print "found path &elfpath"\r
66 ON ERROR GOSUB\r
67 return\r
68 data.load.elf &elfpath &elfbase /NOCODE /NOCLEAR\r
69 ON error\r
70\r
71enddo\r