]>
Commit | Line | Data |
---|---|---|
9703e347 | 1 | From bda353ccfef6e63726352ab2bb15bea4798ea89b Mon Sep 17 00:00:00 2001 |
192039d7 | 2 | From: Olivier Martin <olivier.martin@arm.com> |
9703e347 | 3 | Date: Thu, 22 Sep 2011 20:40:01 +0100 |
4 | Subject: [PATCH] BaseTools/Conf: Contain all the changes added by the pending | |
5 | patches | |
192039d7 | 6 | |
7 | --- | |
9703e347 | 8 | BaseTools/Conf/build_rule.template | 12 +- |
9 | BaseTools/Conf/tools_def.template | 245 +++++++++++++++++++-------- | |
192039d7 | 10 | BaseTools/Source/C/GenFv/GenFv.c | 2 +- |
9703e347 | 11 | BaseTools/Source/C/GenFv/GenFvInternalLib.c | 39 +++-- |
12 | 4 files changed, 202 insertions(+), 96 deletions(-) | |
13 | mode change 100644 => 100755 BaseTools/Conf/build_rule.template | |
14 | mode change 100644 => 100755 BaseTools/Conf/tools_def.template | |
192039d7 | 15 | |
9703e347 | 16 | diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template |
17 | old mode 100644 | |
18 | new mode 100755 | |
19 | index ff5af1c..c54b091 | |
20 | --- a/BaseTools/Conf/build_rule.template | |
21 | +++ b/BaseTools/Conf/build_rule.template | |
22 | @@ -129,7 +129,7 @@ | |
23 | "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}\r | |
24 | "$(SYMRENAME)" $(SYMRENAME_FLAGS) ${dst}\r | |
25 | \r | |
26 | - <Command.ARMGCC>\r | |
27 | + <Command.ARMGCC, Command.ARMLINUXGCC>\r | |
28 | "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}\r | |
29 | \r | |
30 | \r | |
31 | @@ -217,7 +217,7 @@ | |
32 | <Command.RVCT>\r | |
33 | "$(SLINK)" $(SLINK_FLAGS) ${dst} --via $(OBJECT_FILES_LIST)\r | |
34 | \r | |
35 | - <Command.RVCTCYGWIN, Command.ARMGCC>\r | |
36 | + <Command.RVCTCYGWIN, Command.ARMGCC, Command.ARMLINUXGCC>\r | |
37 | # $(OBJECT_FILES_LIST) has wrong paths for cygwin\r | |
38 | "$(SLINK)" $(SLINK_FLAGS) ${dst} $(OBJECT_FILES)\r | |
39 | \r | |
40 | @@ -241,7 +241,7 @@ | |
41 | "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -\( $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) -\) $(DLINK2_FLAGS)\r | |
42 | "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst}\r | |
43 | \r | |
44 | - <Command.ARMGCC>\r | |
45 | + <Command.ARMGCC, Command.ARMLINUXGCC>\r | |
46 | "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -\( $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) -\) $(DLINK2_FLAGS)\r | |
47 | \r | |
48 | <Command.RVCT>\r | |
49 | @@ -271,7 +271,7 @@ | |
50 | <Command.GCC>\r | |
51 | "$(DLINK)" $(DLINK_FLAGS) -\( $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) -\) $(DLINK2_FLAGS)\r | |
52 | \r | |
53 | - <Command.ARMGCC>\r | |
54 | + <Command.ARMGCC, Command.ARMLINUXGCC>\r | |
55 | "$(DLINK)" $(DLINK_FLAGS) -\( $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) -\) $(DLINK2_FLAGS)\r | |
56 | \r | |
57 | <Command.RVCT>\r | |
58 | @@ -292,7 +292,7 @@ | |
59 | <OutputFile>\r | |
60 | $(DEBUG_DIR)(+)$(MODULE_NAME).efi\r | |
61 | \r | |
62 | - <Command.MSFT, Command.INTEL, Command.RVCT, Command.ARMGCC> \r | |
63 | + <Command.MSFT, Command.INTEL, Command.RVCT, Command.ARMGCC, Command.ARMLINUXGCC> \r | |
64 | "$(GENFW)" -e $(MODULE_TYPE) -o ${dst} ${src} $(GENFW_FLAGS)\r | |
65 | $(CP) ${dst} $(OUTPUT_DIR)\r | |
66 | $(CP) ${dst} $(BIN_DIR)\r | |
67 | @@ -536,7 +536,7 @@ | |
68 | "$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS)\r | |
69 | "$(RC)" $(RC_FLAGS) $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc ${dst}\r | |
70 | \r | |
71 | - <Command.XCODE, Command.RVCT, Command.ARMGCC> \r | |
72 | + <Command.XCODE, Command.RVCT, Command.ARMGCC, Command.ARMLINUXGCC> \r | |
73 | GenFw -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES)\r | |
74 | \r | |
75 | \r | |
597cb96f | 76 | diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template |
9703e347 | 77 | old mode 100644 |
78 | new mode 100755 | |
79 | index fe7900e..20c0033 | |
597cb96f | 80 | --- a/BaseTools/Conf/tools_def.template |
81 | +++ b/BaseTools/Conf/tools_def.template | |
9703e347 | 82 | @@ -161,8 +161,6 @@ DEFINE ICC_WIN_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcp |
83 | DEFINE ICC_WIN_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE /NODEFAULTLIB:libmmt /NODEFAULTLIB:libirc\r | |
597cb96f | 84 | \r |
9703e347 | 85 | DEFINE IPHONE_TOOLS = /Developer/Platforms/iPhoneOS.platform/Developer\r |
86 | -DEFINE RVCT31_TOOLS_PATH = c:/Program Files/ARM/RVCT/Programs/3.1/569/win_32-pentium\r | |
87 | -DEFINE RVCT31CYGWIN_TOOLS_PATH = /cygdrive/c/Program Files/ARM/RVCT/Programs/3.1/569/win_32-pentium\r | |
88 | \r | |
89 | DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G++ Lite/bin\r | |
90 | \r | |
91 | @@ -1976,6 +1974,7 @@ DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-strict-aliasing - | |
92 | DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe\r | |
93 | DEFINE GCC_X64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe\r | |
94 | DEFINE GCC_IPF_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -minline-int-divide-min-latency\r | |
95 | +DEFINE GCC_ARMGCC_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mword-relocations -mlittle-endian -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer\r | |
96 | DEFINE GCC_DLINK_FLAGS_COMMON = -nostdlib --pie\r | |
97 | DEFINE GCC_IA32_X64_DLINK_COMMON = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections\r | |
98 | DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)\r | |
99 | @@ -3985,97 +3984,145 @@ RELEASE_XCLANG_X64_CC_FLAGS = -ccc-host-triple x86_64-pc-win32-macho -c -Os | |
100 | \r | |
101 | \r | |
102 | ####################################################################################\r | |
103 | +# RVCT Common\r | |
597cb96f | 104 | +####################################################################################\r |
597cb96f | 105 | +\r |
9703e347 | 106 | +DEFINE RVCT_ALL_CC_FLAGS = --c90 -c --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --enum_is_int --preinclude AutoGen.h --diag_warning 167 --diag_style=ide\r |
107 | +DEFINE RVCT_ALL_DLINK_FLAGS = --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --diag_style=ide\r | |
597cb96f | 108 | +\r |
597cb96f | 109 | +\r |
9703e347 | 110 | +####################################################################################\r |
597cb96f | 111 | #\r |
112 | -# ARM Tools\r | |
9703e347 | 113 | +# ARM RealView Tools - Windows\r |
597cb96f | 114 | #\r |
115 | ####################################################################################\r | |
9703e347 | 116 | -# RVCT31 - Tools from ARM\r |
117 | +# RVCT - Tools from ARM\r | |
118 | \r | |
119 | -*_RVCT31_*_*_FAMILY = RVCT\r | |
120 | +*_RVCT_*_*_FAMILY = RVCT\r | |
597cb96f | 121 | \r |
597cb96f | 122 | #\r |
9703e347 | 123 | # Use default values, or override in DSC file\r |
597cb96f | 124 | #\r |
9703e347 | 125 | -*_RVCT31_ARM_ARCHCC_FLAGS = --thumb --cpu 7-A\r |
126 | -*_RVCT31_ARM_ARCHASM_FLAGS = --cpu 7-A\r | |
127 | -*_RVCT31_ARM_ARCHDLINK_FLAGS =\r | |
128 | -*_RVCT31_ARM_PLATFORM_FLAGS =\r | |
129 | +*_RVCT_ARM_ARCHCC_FLAGS = --thumb\r | |
130 | +*_RVCT_ARM_ARCHASM_FLAGS = \r | |
131 | +*_RVCT_ARM_ARCHDLINK_FLAGS = \r | |
132 | +*_RVCT_ARM_PLATFORM_FLAGS = --cpu 7-A\r | |
133 | \r | |
134 | - DEBUG_RVCT31_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --map --list $(DEST_DIR_DEBUG)/$(BASE_NAME).map --diag_style=ide\r | |
135 | -RELEASE_RVCT31_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --map --list $(DEST_DIR_DEBUG)/$(BASE_NAME).map --diag_style=ide\r | |
136 | + DEBUG_RVCT_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) DEF(RVCT_ALL_DLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --map --list $(DEST_DIR_DEBUG)/$(BASE_NAME).map \r | |
137 | +RELEASE_RVCT_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) DEF(RVCT_ALL_DLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --map --list $(DEST_DIR_DEBUG)/$(BASE_NAME).map \r | |
138 | \r | |
139 | \r | |
140 | -*_RVCT31_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) --apcs /interwork --diag_style=ide\r | |
141 | -*_RVCT31_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E --diag_style=ide\r | |
142 | -*_RVCT31_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -DVFRCOMPILE --preinclude $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r | |
143 | -*_RVCT31_ARM_MAKE_PATH = nmake\r | |
144 | -*_RVCT31_ARM_SLINK_FLAGS = --partial --diag_style=ide -o\r | |
145 | - DEBUG_RVCT31_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -g -Ospace -c --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --enum_is_int --preinclude AutoGen.h --diag_warning 167 --diag_style=ide\r | |
146 | -RELEASE_RVCT31_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -Ospace -c --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --enum_is_int --preinclude AutoGen.h --diag_warning 167 --diag_style=ide\r | |
147 | +*_RVCT_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) --apcs /interwork\r | |
148 | +*_RVCT_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E\r | |
149 | +*_RVCT_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -DVFRCOMPILE --preinclude $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r | |
150 | +*_RVCT_ARM_MAKE_PATH = nmake /NOLOGO\r | |
151 | +*_RVCT_ARM_SLINK_FLAGS = --partial -o\r | |
152 | + DEBUG_RVCT_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_CC_FLAGS) -O1 -g\r | |
153 | +RELEASE_RVCT_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_CC_FLAGS) -O2\r | |
154 | \r | |
155 | ##################\r | |
156 | # ARM definitions\r | |
157 | ##################\r | |
158 | -*_RVCT31_ARM_CC_PATH = DEF(RVCT31_TOOLS_PATH)/armcc\r | |
159 | -*_RVCT31_ARM_SLINK_PATH = DEF(RVCT31_TOOLS_PATH)/armlink\r | |
160 | -*_RVCT31_ARM_DLINK_PATH = DEF(RVCT31_TOOLS_PATH)/armlink\r | |
161 | -*_RVCT31_ARM_ASM_PATH = DEF(RVCT31_TOOLS_PATH)/armasm\r | |
162 | -*_RVCT31_ARM_PP_PATH = DEF(RVCT31_TOOLS_PATH)/armcc\r | |
163 | -*_RVCT31_ARM_VFRPP_PATH = DEF(RVCT31_TOOLS_PATH)/armcc\r | |
164 | -*_RVCT31_ARM_FROMELF_PATH = DEF(RVCT31_TOOLS_PATH)/fromelf\r | |
165 | +*_RVCT_ARM_CC_PATH = ENV(RVCT_TOOLS_PATH)armcc\r | |
166 | +*_RVCT_ARM_SLINK_PATH = ENV(RVCT_TOOLS_PATH)armlink\r | |
167 | +*_RVCT_ARM_DLINK_PATH = ENV(RVCT_TOOLS_PATH)armlink\r | |
168 | +*_RVCT_ARM_ASM_PATH = ENV(RVCT_TOOLS_PATH)armasm\r | |
169 | +*_RVCT_ARM_PP_PATH = ENV(RVCT_TOOLS_PATH)armcc\r | |
170 | +*_RVCT_ARM_VFRPP_PATH = ENV(RVCT_TOOLS_PATH)armcc\r | |
171 | +*_RVCT_ARM_FROMELF_PATH = ENV(RVCT_TOOLS_PATH)fromelf\r | |
597cb96f | 172 | \r |
173 | ####################################################################################\r | |
174 | #\r | |
9703e347 | 175 | -# ARM Tools & Cygwin\r |
176 | +# ARM RealView Tools - Linux\r | |
597cb96f | 177 | +#\r |
178 | +####################################################################################\r | |
9703e347 | 179 | +# RVCTLINUX - Tools from ARM in a Cygwin environment\r |
597cb96f | 180 | +\r |
9703e347 | 181 | +*_RVCTLINUX_*_*_FAMILY = RVCT\r |
182 | +*_RVCTLINUX_*_*_BUILDRULEFAMILY = RVCTLINUX\r | |
597cb96f | 183 | +\r |
184 | +#\r | |
185 | +# Use default values, or override in DSC file\r | |
186 | +#\r | |
9703e347 | 187 | +*_RVCTLINUX_ARM_ARCHCC_FLAGS = --thumb\r |
188 | +*_RVCTLINUX_ARM_ARCHASM_FLAGS = \r | |
189 | +*_RVCTLINUX_ARM_ARCHDLINK_FLAGS = \r | |
190 | +*_RVCTLINUX_ARM_PLATFORM_FLAGS = --cpu 7-A\r | |
597cb96f | 191 | +\r |
9703e347 | 192 | +DEBUG_RVCTLINUX_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) DEF(RVCT_ALL_DLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --map --list $(DEST_DIR_DEBUG)/$(BASE_NAME).map \r |
193 | +RELEASE_RVCTLINUX_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) DEF(RVCT_ALL_DLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --map --list $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r | |
597cb96f | 194 | +\r |
9703e347 | 195 | +*_RVCTLINUX_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) --apcs /interwork\r |
196 | +*_RVCTLINUX_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E\r | |
197 | +*_RVCTLINUX_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -DVFRCOMPILE --preinclude $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r | |
198 | +*_RVCTLINUX_ARM_MAKE_PATH = make\r | |
199 | +*_RVCTLINUX_ARM_SLINK_FLAGS = --partial -o\r | |
200 | + DEBUG_RVCTLINUX_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_CC_FLAGS) -O1 -g\r | |
201 | +RELEASE_RVCTLINUX_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_CC_FLAGS) -O2\r | |
597cb96f | 202 | +\r |
203 | +##################\r | |
204 | +# ARM definitions\r | |
205 | +##################\r | |
9703e347 | 206 | +*_RVCTLINUX_ARM_CC_PATH = ENV(RVCT_TOOLS_PATH)armcc\r |
207 | +*_RVCTLINUX_ARM_SLINK_PATH = ENV(RVCT_TOOLS_PATH)armlink\r | |
208 | +*_RVCTLINUX_ARM_DLINK_PATH = ENV(RVCT_TOOLS_PATH)armlink\r | |
209 | +*_RVCTLINUX_ARM_ASM_PATH = ENV(RVCT_TOOLS_PATH)armasm\r | |
210 | +*_RVCTLINUX_ARM_PP_PATH = ENV(RVCT_TOOLS_PATH)armcc\r | |
211 | +*_RVCTLINUX_ARM_VFRPP_PATH = ENV(RVCT_TOOLS_PATH)armcc\r | |
212 | +*_RVCTLINUX_ARM_FROMELF_PATH = ENV(RVCT_TOOLS_PATH)fromelf\r | |
597cb96f | 213 | +\r |
214 | +####################################################################################\r | |
215 | +#\r | |
9703e347 | 216 | +# ARM RealView Tools - Cygwin\r |
217 | #\r | |
218 | ####################################################################################\r | |
219 | # ARMCYGWIN - Tools from ARM in a Cygwin environment\r | |
220 | \r | |
221 | -*_RVCT31CYGWIN_*_*_FAMILY = RVCT\r | |
222 | -*_RVCT31CYGWIN_*_*_BUILDRULEFAMILY = RVCTCYGWIN\r | |
597cb96f | 223 | +*_RVCTCYGWIN_*_*_FAMILY = RVCT\r |
224 | +*_RVCTCYGWIN_*_*_BUILDRULEFAMILY = RVCTCYGWIN\r | |
9703e347 | 225 | \r |
226 | -*_RVCT31CYGWIN_ARM_CCPATH_FLAG = DEF(RVCT31CYGWIN_TOOLS_PATH)/armcc\r | |
227 | -*_RVCT31CYGWIN_ARM_SLINKPATH_FLAG = DEF(RVCT31CYGWIN_TOOLS_PATH)/armlink\r | |
228 | -*_RVCT31CYGWIN_ARM_DLINKPATH_FLAG = DEF(RVCT31CYGWIN_TOOLS_PATH)/armlink\r | |
229 | -*_RVCT31CYGWIN_ARM_ASMPATH_FLAG = DEF(RVCT31CYGWIN_TOOLS_PATH)/armasm\r | |
230 | -*_RVCT31CYGWIN_ARM_PPPATH_FLAG = DEF(RVCT31CYGWIN_TOOLS_PATH)/armcc\r | |
231 | -*_RVCT31CYGWIN_ARM_VFRPPPATH_FLAG = DEF(RVCT31CYGWIN_TOOLS_PATH)/armcc\r | |
232 | -*_RVCT31CYGWIN_ARM_FROMELFPATH_FLAG = DEF(RVCT31CYGWIN_TOOLS_PATH)/fromelf\r | |
597cb96f | 233 | +*_RVCTCYGWIN_ARM_CCPATH_FLAG = ENV(RVCT_TOOLS_PATH)armcc\r |
234 | +*_RVCTCYGWIN_ARM_SLINKPATH_FLAG = ENV(RVCT_TOOLS_PATH)armlink\r | |
235 | +*_RVCTCYGWIN_ARM_DLINKPATH_FLAG = ENV(RVCT_TOOLS_PATH)armlink\r | |
236 | +*_RVCTCYGWIN_ARM_ASMPATH_FLAG = ENV(RVCT_TOOLS_PATH)armasm\r | |
237 | +*_RVCTCYGWIN_ARM_PPPATH_FLAG = ENV(RVCT_TOOLS_PATH)armcc\r | |
238 | +*_RVCTCYGWIN_ARM_VFRPPPATH_FLAG = ENV(RVCT_TOOLS_PATH)armcc\r | |
239 | +*_RVCTCYGWIN_ARM_FROMELFPATH_FLAG = ENV(RVCT_TOOLS_PATH)fromelf\r | |
9703e347 | 240 | \r |
241 | \r | |
242 | #\r | |
243 | # Use default values, or override in DSC file\r | |
244 | #\r | |
245 | -*_RVCT31CYGWIN_ARM_ARCHCC_FLAGS = --thumb --cpu 7-A\r | |
246 | -*_RVCT31CYGWIN_ARM_ARCHASM_FLAGS = --cpu 7-A\r | |
247 | -*_RVCT31CYGWIN_ARM_ARCHDLINK_FLAGS =\r | |
248 | -*_RVCT31CYGWIN_ARM_PLATFORM_FLAGS =\r | |
249 | +*_RVCTCYGWIN_ARM_ARCHCC_FLAGS = --thumb\r | |
250 | +*_RVCTCYGWIN_ARM_ARCHASM_FLAGS =\r | |
597cb96f | 251 | +*_RVCTCYGWIN_ARM_ARCHDLINK_FLAGS = \r |
9703e347 | 252 | +*_RVCTCYGWIN_ARM_PLATFORM_FLAGS = --cpu 7-A\r |
253 | \r | |
254 | - DEBUG_RVCT31CYGWIN_ARM_DLINK_FLAGS = "$(DLINKPATH_FLAG)" $(ARCHDLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --map --list `cygpath -m $(DEST_DIR_DEBUG)/$(BASE_NAME).map` --diag_style=ide\r | |
255 | -RELEASE_RVCT31CYGWIN_ARM_DLINK_FLAGS = "$(DLINKPATH_FLAG)" $(ARCHDLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --map --list `cygpath -m $(DEST_DIR_DEBUG)/$(BASE_NAME).map` --diag_style=ide\r | |
256 | + DEBUG_RVCTCYGWIN_ARM_DLINK_FLAGS = "$(DLINKPATH_FLAG)" $(ARCHDLINK_FLAGS) DEF(RVCT_ALL_DLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --map --list `cygpath -m $(DEST_DIR_DEBUG)/$(BASE_NAME).map` \r | |
257 | +RELEASE_RVCTCYGWIN_ARM_DLINK_FLAGS = "$(DLINKPATH_FLAG)" $(ARCHDLINK_FLAGS) DEF(RVCT_ALL_DLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --map --list `cygpath -m $(DEST_DIR_DEBUG)/$(BASE_NAME).map` \r | |
258 | \r | |
259 | -*_RVCT31CYGWIN_ARM_ASM_FLAGS = "$(ASMPATH_FLAG)" $(ARCHASM_FLAGS) --apcs /interwork --diag_style=ide\r | |
260 | -*_RVCT31CYGWIN_ARM_PP_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E --diag_style=ide\r | |
261 | -*_RVCT31CYGWIN_ARM_VFRPP_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -DVFRCOMPILE --preinclude `cygpath -m $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h`\r | |
262 | -*_RVCT31CYGWIN_ARM_MAKE_PATH = make\r | |
263 | -*_RVCT31CYGWIN_ARM_SLINK_FLAGS = "$(SLINKPATH_FLAG)" --partial --diag_style=ide -o\r | |
264 | - DEBUG_RVCT31CYGWIN_ARM_CC_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -c -g -Ospace --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --preinclude AutoGen.h --diag_warning 167 --diag_style=ide\r | |
265 | -RELEASE_RVCT31CYGWIN_ARM_CC_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -c -Ospace --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --preinclude AutoGen.h --diag_warning 167 --diag_style=ide\r | |
266 | +*_RVCTCYGWIN_ARM_ASM_FLAGS = "$(ASMPATH_FLAG)" $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) --apcs /interwork\r | |
597cb96f | 267 | +*_RVCTCYGWIN_ARM_PP_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E\r |
268 | +*_RVCTCYGWIN_ARM_VFRPP_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -DVFRCOMPILE --preinclude `cygpath -m $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h`\r | |
269 | +*_RVCTCYGWIN_ARM_MAKE_PATH = make\r | |
270 | +*_RVCTCYGWIN_ARM_SLINK_FLAGS = "$(SLINKPATH_FLAG)" --partial -o\r | |
9703e347 | 271 | + DEBUG_RVCTCYGWIN_ARM_CC_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_CC_FLAGS) -O1 -g\r |
272 | +RELEASE_RVCTCYGWIN_ARM_CC_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_CC_FLAGS) -O2\r | |
273 | \r | |
274 | ##################\r | |
275 | # ARM definitions\r | |
276 | ##################\r | |
277 | -*_RVCT31CYGWIN_ARM_CC_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py\r | |
278 | -*_RVCT31CYGWIN_ARM_SLINK_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py\r | |
279 | -*_RVCT31CYGWIN_ARM_DLINK_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py\r | |
280 | -*_RVCT31CYGWIN_ARM_ASM_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py\r | |
281 | -*_RVCT31CYGWIN_ARM_PP_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py\r | |
282 | -*_RVCT31CYGWIN_ARM_VFRPP_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py\r | |
283 | -*_RVCT31CYGWIN_ARM_FROMELF_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py\r | |
597cb96f | 284 | +*_RVCTCYGWIN_ARM_CC_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py\r |
285 | +*_RVCTCYGWIN_ARM_SLINK_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py\r | |
286 | +*_RVCTCYGWIN_ARM_DLINK_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py\r | |
287 | +*_RVCTCYGWIN_ARM_ASM_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py\r | |
288 | +*_RVCTCYGWIN_ARM_PP_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py\r | |
289 | +*_RVCTCYGWIN_ARM_VFRPP_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py\r | |
290 | +*_RVCTCYGWIN_ARM_FROMELF_PATH = ENV(WORKSPACE)/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py\r | |
9703e347 | 291 | \r |
292 | ####################################################################################\r | |
293 | #\r | |
294 | -# ARM GCC (www.codesourcery.com)\r | |
295 | +# ARM EABI GCC (www.codesourcery.com)\r | |
597cb96f | 296 | #\r |
297 | ####################################################################################\r | |
9703e347 | 298 | # ARMGCC - ARM version of the GCC cross compiler\r |
299 | @@ -4089,12 +4136,12 @@ RELEASE_RVCT31CYGWIN_ARM_CC_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM | |
300 | ##################\r | |
301 | # ASL definitions\r | |
302 | ##################\r | |
303 | -*_ARMGCC_*_ASL_PATH = DEF(UNIX_IASL_BIN)\r | |
304 | -*_ARMGCC_*_ASL_FLAGS = DEF(IASL_FLAGS)\r | |
305 | -*_ARMGCC_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)\r | |
306 | -*_ARMGCC_*_ASLPP_FLAGS = -x c -E -P\r | |
307 | -*_ARMGCC_*_ASLCC_FLAGS = -x c\r | |
308 | -*_ARMGCC_*_ASLDLINK_FLAGS = DEF(GCC_DLINK_FLAGS_COMMON) --entry _ReferenceAcpiTable\r | |
309 | +*_ARMGCC_*_ASL_PATH = DEF(UNIX_IASL_BIN)\r | |
310 | +*_ARMGCC_*_ASL_FLAGS = DEF(IASL_FLAGS)\r | |
311 | +*_ARMGCC_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)\r | |
312 | +*_ARMGCC_*_ASLPP_FLAGS = -x c -E -P\r | |
313 | +*_ARMGCC_*_ASLCC_FLAGS = -x c\r | |
314 | +*_ARMGCC_*_ASLDLINK_FLAGS = DEF(GCC_DLINK_FLAGS_COMMON) --entry _ReferenceAcpiTable\r | |
315 | \r | |
316 | ##################\r | |
317 | # ARM definitions\r | |
318 | @@ -4114,22 +4161,80 @@ RELEASE_RVCT31CYGWIN_ARM_CC_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM | |
319 | #\r | |
320 | # Use default values, or override in DSC file\r | |
321 | #\r | |
322 | -*_ARMGCC_ARM_ARCHCC_FLAGS = -march=armv7-a -mthumb\r | |
323 | -*_ARMGCC_ARM_ARCHASM_FLAGS = -march=armv7-a\r | |
324 | +*_ARMGCC_ARM_ARCHCC_FLAGS = -mthumb\r | |
325 | +*_ARMGCC_ARM_ARCHASM_FLAGS = \r | |
326 | *_ARMGCC_ARM_ARCHDLINK_FLAGS =\r | |
327 | *_ARMGCC_ARM_PLATFORM_FLAGS = -march=armv7-a\r | |
328 | \r | |
329 | - DEBUG_ARMGCC_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) -mlittle-endian -g\r | |
330 | -RELEASE_ARMGCC_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) -mlittle-endian\r | |
331 | + DEBUG_ARMGCC_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -mlittle-endian -g\r | |
332 | +RELEASE_ARMGCC_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -mlittle-endian\r | |
333 | \r | |
334 | -*_ARMGCC_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h\r | |
335 | -*_ARMGCC_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r | |
336 | +*_ARMGCC_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h\r | |
337 | +*_ARMGCC_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r | |
338 | \r | |
597cb96f | 339 | *_ARMGCC_ARM_SLINK_FLAGS = -rc\r |
192039d7 | 340 | *_ARMGCC_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) --oformat=elf32-littlearm --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r |
597cb96f | 341 | \r |
342 | - DEBUG_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mlittle-endian -g -O0 -mabi=aapcs -mapcs -fno-short-enums -save-temps -combine -fsigned-char -fshort-wchar -fno-strict-aliasing -ffunction-sections -fdata-sections -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h\r | |
343 | -RELEASE_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mlittle-endian -Os -mabi=aapcs -mapcs -fno-short-enums -save-temps -combine -fsigned-char -fshort-wchar -fno-strict-aliasing -ffunction-sections -fdata-sections -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h\r | |
9703e347 | 344 | + DEBUG_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -combine -O0\r |
345 | +RELEASE_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -combine -Wno-unused\r | |
346 | +\r | |
347 | +####################################################################################\r | |
348 | +#\r | |
349 | +# ARM GNU/Linux GCC\r | |
350 | +#\r | |
351 | +####################################################################################\r | |
352 | +# ARMLINUXGCC - ARM version of the GCC cross compiler\r | |
353 | +\r | |
354 | +*_ARMLINUXGCC_*_*_FAMILY = GCC\r | |
355 | +*_ARMLINUXGCC_*_*_BUILDRULEFAMILY = ARMLINUXGCC\r | |
356 | +\r | |
357 | +*_ARMLINUXGCC_*_MAKE_PATH = make\r | |
358 | +*_ARMLINUXGCC_*_MAKE_FLAGS = --no-print-directory\r | |
359 | +\r | |
360 | +##################\r | |
361 | +# ASL definitions\r | |
362 | +##################\r | |
363 | +*_ARMLINUXGCC_*_ASL_PATH = DEF(UNIX_IASL_BIN)\r | |
364 | +*_ARMLINUXGCC_*_ASL_FLAGS = DEF(IASL_FLAGS)\r | |
365 | +*_ARMLINUXGCC_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)\r | |
366 | +*_ARMLINUXGCC_*_ASLPP_FLAGS = -x c -E -P\r | |
367 | +*_ARMLINUXGCC_*_ASLCC_FLAGS = -x c\r | |
368 | +*_ARMLINUXGCC_*_ASLDLINK_FLAGS = DEF(GCC_DLINK_FLAGS_COMMON) --entry _ReferenceAcpiTable\r | |
369 | +\r | |
370 | +##################\r | |
371 | +# ARM definitions\r | |
372 | +##################\r | |
373 | +\r | |
374 | +*_ARMLINUXGCC_ARM_ASLCC_PATH = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-gcc\r | |
375 | +*_ARMLINUXGCC_ARM_ASLDLINK_PATH = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-ld\r | |
376 | +*_ARMLINUXGCC_ARM_ASLPP_PATH = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-gcc\r | |
377 | +\r | |
378 | +*_ARMLINUXGCC_ARM_CC_PATH = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-gcc\r | |
379 | +*_ARMLINUXGCC_ARM_SLINK_PATH = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-ar\r | |
380 | +*_ARMLINUXGCC_ARM_DLINK_PATH = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-ld\r | |
381 | +*_ARMLINUXGCC_ARM_ASM_PATH = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-as\r | |
382 | +*_ARMLINUXGCC_ARM_PP_PATH = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-gcc\r | |
383 | +*_ARMLINUXGCC_ARM_VFRPP_PATH = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-gcc\r | |
384 | +\r | |
385 | +#\r | |
386 | +# Use default values, or override in DSC file\r | |
387 | +#\r | |
388 | +*_ARMLINUXGCC_ARM_ARCHCC_FLAGS = -mthumb\r | |
389 | +*_ARMLINUXGCC_ARM_ARCHASM_FLAGS = \r | |
390 | +*_ARMLINUXGCC_ARM_ARCHDLINK_FLAGS =\r | |
391 | +*_ARMLINUXGCC_ARM_PLATFORM_FLAGS = -march=armv7-a\r | |
392 | +\r | |
393 | + DEBUG_ARMLINUXGCC_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -mlittle-endian -g\r | |
394 | +RELEASE_ARMLINUXGCC_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -mlittle-endian\r | |
395 | +\r | |
396 | +*_ARMLINUXGCC_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h\r | |
397 | +*_ARMLINUXGCC_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r | |
398 | +\r | |
399 | +*_ARMLINUXGCC_ARM_SLINK_FLAGS = -rc\r | |
400 | +*_ARMLINUXGCC_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) --oformat=elf32-littlearm --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r | |
401 | +\r | |
402 | + DEBUG_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -Wno-address -O0\r | |
403 | +RELEASE_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -Wno-address -Wno-unused-but-set-variable\r | |
597cb96f | 404 | \r |
405 | #################\r | |
406 | # ASM 16 linker defintions\r | |
407 | diff --git a/BaseTools/Source/C/GenFv/GenFv.c b/BaseTools/Source/C/GenFv/GenFv.c | |
9703e347 | 408 | index 8f452c7..a095220 100644 |
597cb96f | 409 | --- a/BaseTools/Source/C/GenFv/GenFv.c |
410 | +++ b/BaseTools/Source/C/GenFv/GenFv.c | |
e291948c | 411 | @@ -597,7 +597,7 @@ Returns: |
597cb96f | 412 | );\r |
413 | } else {\r | |
414 | VerboseMsg ("Create Fv image and its map file");\r | |
415 | - if (mFvDataInfo.BaseAddress != 0) {\r | |
416 | + if (mFvDataInfo.BaseAddressSet) {\r | |
417 | VerboseMsg ("FvImage Rebase Address is 0x%llX", (unsigned long long) mFvDataInfo.BaseAddress);\r | |
418 | }\r | |
419 | //\r | |
420 | diff --git a/BaseTools/Source/C/GenFv/GenFvInternalLib.c b/BaseTools/Source/C/GenFv/GenFvInternalLib.c | |
9703e347 | 421 | index d86909b..5aa1a08 100644 |
597cb96f | 422 | --- a/BaseTools/Source/C/GenFv/GenFvInternalLib.c |
423 | +++ b/BaseTools/Source/C/GenFv/GenFvInternalLib.c | |
424 | @@ -209,6 +209,7 @@ Returns: | |
425 | DebugMsg (NULL, 0, 9, "rebase address", "%s = %s", EFI_FV_BASE_ADDRESS_STRING, Value);\r | |
426 | \r | |
427 | FvInfo->BaseAddress = Value64;\r | |
428 | + FvInfo->BaseAddressSet = TRUE;\r | |
429 | }\r | |
430 | }\r | |
431 | \r | |
432 | @@ -505,6 +506,7 @@ Returns: | |
433 | \r | |
434 | EFI_STATUS\r | |
435 | AddPadFile (\r | |
436 | + IN FV_INFO *FvInfo,\r | |
437 | IN OUT MEMORY_FILE *FvImage,\r | |
438 | IN UINT32 DataAlignment,\r | |
439 | IN VOID *FvEnd,\r | |
440 | @@ -536,6 +538,8 @@ Returns: | |
441 | {\r | |
442 | EFI_FFS_FILE_HEADER *PadFile;\r | |
443 | UINTN PadFileSize;\r | |
444 | + UINTN PadFileOffset;\r | |
445 | + UINTN ExtHeaderSize;\r | |
446 | \r | |
447 | //\r | |
448 | // Verify input parameters.\r | |
449 | @@ -558,32 +562,29 @@ Returns: | |
450 | // This is the earliest possible valid offset (current plus pad file header\r | |
451 | // plus the next file header)\r | |
452 | //\r | |
453 | - PadFileSize = (UINTN) FvImage->CurrentFilePointer - (UINTN) FvImage->FileImage + (sizeof (EFI_FFS_FILE_HEADER) * 2);\r | |
454 | + // The padding is added into its own FFS file (which requires a header) added before the aligned file:\r | |
455 | + // | ... FV data before AlignedFile ... | Pad File FFS Header | Padding | AlignedFile FFS Header (+ ExtHeader) | AlignedData\r | |
456 | \r | |
457 | //\r | |
458 | - // Add whatever it takes to get to the next aligned address\r | |
459 | + // Calculate the Offset of the Pad File from the beginning of the FV file\r | |
460 | //\r | |
461 | - while ((PadFileSize % DataAlignment) != 0) {\r | |
462 | - PadFileSize++;\r | |
463 | - }\r | |
464 | - //\r | |
465 | - // Subtract the next file header size\r | |
466 | - //\r | |
467 | - PadFileSize -= sizeof (EFI_FFS_FILE_HEADER);\r | |
468 | -\r | |
469 | - //\r | |
470 | - // Subtract the starting offset to get size\r | |
471 | - //\r | |
472 | - PadFileSize -= (UINTN) FvImage->CurrentFilePointer - (UINTN) FvImage->FileImage;\r | |
473 | + PadFileOffset = (UINTN) FvImage->CurrentFilePointer - (UINTN) FvImage->FileImage;\r | |
474 | \r | |
475 | //\r | |
476 | - // Append extension header size\r | |
477 | + // Get the size of the extension header if exists\r | |
478 | //\r | |
479 | if (ExtHeader != NULL) {\r | |
480 | - PadFileSize = PadFileSize + ExtHeader->ExtHeaderSize;\r | |
481 | + ExtHeaderSize = ExtHeader->ExtHeaderSize;\r | |
482 | + } else {\r | |
483 | + ExtHeaderSize = 0;\r | |
484 | }\r | |
485 | \r | |
486 | //\r | |
487 | + // Calculate the Size of the Padding to ensure the alignment of the data of the Next file\r | |
488 | + //\r | |
489 | + PadFileSize = DataAlignment - ((FvInfo->BaseAddress + PadFileOffset + sizeof (EFI_FFS_FILE_HEADER) + ExtHeaderSize) & (DataAlignment - 1));\r | |
490 | +\r | |
491 | + //\r | |
492 | // Verify that we have enough space for the file header\r | |
493 | //\r | |
494 | if (((UINTN) FvImage->CurrentFilePointer + PadFileSize) > (UINTN) FvEnd) {\r | |
e291948c | 495 | @@ -1114,7 +1115,7 @@ Returns: |
597cb96f | 496 | //\r |
497 | // Add pad file if necessary\r | |
498 | //\r | |
499 | - Status = AddPadFile (FvImage, 1 << CurrentFileAlignment, *VtfFileImage, NULL);\r | |
500 | + Status = AddPadFile (FvInfo, FvImage, 1 << CurrentFileAlignment, *VtfFileImage, NULL);\r | |
501 | if (EFI_ERROR (Status)) {\r | |
502 | Error (NULL, 0, 4002, "Resource", "FV space is full, could not add pad file for data alignment property.");\r | |
503 | free (FileBuffer);\r | |
e291948c | 504 | @@ -2303,7 +2304,7 @@ Returns: |
597cb96f | 505 | //\r |
506 | // Add FV Extended Header contents to the FV as a PAD file\r | |
507 | //\r | |
508 | - AddPadFile (&FvImageMemoryFile, 4, VtfFileImage, FvExtHeader);\r | |
509 | + AddPadFile (&mFvDataInfo, &FvImageMemoryFile, 4, VtfFileImage, FvExtHeader);\r | |
510 | \r | |
511 | //\r | |
512 | // Fv Extension header change update Fv Header Check sum\r | |
e291948c | 513 | @@ -2828,7 +2829,7 @@ Returns: |
597cb96f | 514 | //\r |
515 | // Don't need to relocate image when BaseAddress is not set.\r | |
516 | //\r | |
517 | - if (FvInfo->BaseAddress == 0) {\r | |
518 | + if (FvInfo->BaseAddressSet == FALSE) {\r | |
519 | return EFI_SUCCESS;\r | |
520 | }\r | |
521 | XipBase = FvInfo->BaseAddress + XipOffset;\r | |
192039d7 | 522 | -- |
523 | 1.7.5.1 | |
524 |