summaryrefslogtreecommitdiff
path: root/Board/EM/Pfat/PfatPubKeysAndBuildPSL/BuildPSL.bat
blob: 8337d0ce3195237c4ba15164fc001ba8ced0155d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
echo off
Set AMI_PFAT_FLASH_CONFIGURATIONS=Flash.ini
echo AMI_PFAT_Flash_Configurations>%AMI_PFAT_FLASH_CONFIGURATIONS%
Set FITC_OUTIMAGE_MAP=%1
Set BuildBIOSMap=%2
Set WORKING_PATH=%3
Set BIOS_SVN=%4
Set /a FlashSectionSize=%5
if not exist %FITC_OUTIMAGE_MAP% (
    echo Error:OutImage.map isn't found, please check the eModule of RomImgae
    goto END
)
if not exist %BuildBIOSMap% (
    echo Error:BuildBIOS.map isn't found, please check the PfatPubKeysAndBuildPSL.sdl
    goto END
)
if not exist ForPfatName.txt (
    echo Error:ForPfatName.txt isn't found, please check the eModule of RomImgae
    goto END
)
FOR /F "usebackq tokens=1" %%G IN ("ForPfatName.txt") DO (
    Set INPUT_BIOS_IMAGE=%%G
)
del ForPfatName.txt
FOR /F "skip=2 usebackq tokens=1,2,3,4-6" %%G IN ("%FITC_OUTIMAGE_MAP%") DO (
    if "%%J %%K %%L" EQU "Flash Image " (
        Set /a TOTAL_ROM_SIZE=0x%%I
    )else if "%%J %%K %%L" EQU "Descriptor Region " (
        Set /a DescriptorRegionStartingAddress=0x%%G
        Set /a DescriptorRegionLength=0x%%I
    )else if "%%J %%K %%L" EQU "GbE Region " (
        Set /a GbERegionStartingAddress=0x%%G
        Set /a GbERegionLength=0x%%I
    )else if "%%J %%K %%L" EQU "ME Region " (
        Set /a MERegionStartingAddress=0x%%G
        Set /a MERegionLength=0x%%I
    )else if "%%J %%K %%L" EQU "BIOS Region " (
        Set /a BIOSRegionStartingAddress=0x%%G
        Set /a BIOSRegionLength=0x%%I
    )
)
goto Define_Flash_Type

:Define_Flash_Type
Set MeType=0
Set BiosType=1
Set EcType=2
Set OthersType=3
goto Prepare_Definitions

:Prepare_Definitions
Set DESCRIPTOR_REGION_ROM=DescriptorRegion.bin
Set GBE_REGION_ROM=GbERegion.bin 
Set ME_REGION_ROM=MERegion.bin
Set PUBLIC_KEY_FILENAME=%WORKING_PATH%\PfatPublic.key
Set PRIVATE_KEY_FILENAME=%WORKING_PATH%\PfatPrivate.key
Set PFAT_VKEY_EXP=%WORKING_PATH%\.VkeyExp
Set PUBLIC_KEY_FILENAME_HASH=%WORKING_PATH%\PubKeyhash.bin
Set PFATCRYPTCON=%WORKING_PATH%\PfatCryptoCon.exe
Set KEYGEN=%WORKING_PATH%\Keygen.exe
Set CUTROM=%WORKING_PATH%\CutRom.exe
Set PSL2BIN=%WORKING_PATH%\psl2bin.exe
Set PPB=%WORKING_PATH%\PPB.exe
Set PSL_FILE=AmiPfatBiosPSL
Set PFAT_SCRIPT_HDR=%WORKING_PATH%\PfatCertHeader.bin
Set PFAT_UPDATEPKG_FILENAME=UpdatePkg.pfat
Set PFAT_SIGNATURE_FILENAME=.out_PfatCer
Set PFAT_INTREGRATION_ROM=AMIPFAT.bin
Set AMI_PFAT_HEADER=%WORKING_PATH%\AMIPFATHeader.bin
%WORKING_PATH%\BuildAmiPfatHeader.exe /Empty %AMI_PFAT_HEADER%
copy %AMI_PFAT_HEADER% %PFAT_INTREGRATION_ROM%
goto BUILD_DESCRIPTOR_REGION_ROM

:BUILD_DESCRIPTOR_REGION_ROM
    Set ROM_PRIORITY=%DESCRIPTOR_REGION_ROM%
    Set /a FV_StartingAddress=%DescriptorRegionStartingAddress%
    Set /a FV_Length=%DescriptorRegionLength%
    goto SETUP_PARAMETERS

:BUILD_GBE_REGION_ROM
    Set ROM_PRIORITY=%GBE_REGION_ROM%
    Set /a FV_StartingAddress=%GbERegionStartingAddress%
    Set /a FV_Length=%GbERegionLength%
    goto SETUP_PARAMETERS

:BUILD_ME_REGION_ROM
    Set ROM_PRIORITY=%ME_REGION_ROM%
    Set /a FV_StartingAddress=%MERegionStartingAddress%
    Set /a FV_Length=%MERegionLength%
    goto SETUP_PARAMETERS

:BUILD_BIOS_REGION_ROM_FIRST_FV
    Set /a BIOS_FV_Number=0
    FOR /F "usebackq tokens=1-4" %%G IN ("%BuildBIOSMap%") DO (
        Set ROM_PRIORITY=%%G
        Set FlashCMD=%%H
        Set /a FV_StartingAddress=%BIOSRegionStartingAddress%+%%I
        Set /a FV_Length=%%J
        goto SETUP_PARAMETERS
    )
    goto BuildAmiPfatHeader

:BUILD_BIOS_REGION_ROM_REMAINDER
    Set /a BIOS_FV_Number+=1
    FOR /F "skip=%BIOS_FV_Number% usebackq tokens=1-4" %%G IN ("%BuildBIOSMap%") DO (
        Set ROM_PRIORITY=%%G
        Set FlashCMD=%%H
        Set /a FV_StartingAddress=%BIOSRegionStartingAddress%+%%I
        Set /a FV_Length=%%J
        goto SETUP_PARAMETERS
    )
    goto BuildAmiPfatHeader

:SETUP_PARAMETERS
    %CUTROM% %INPUT_BIOS_IMAGE% %ROM_PRIORITY% %FV_StartingAddress% %FV_Length%
    Set /a FlashRemainderSize=%FV_Length%%%FlashSectionSize%
    Set /a SUBTRACT_BLOCK_SIZE_FROM_DATA_SIZE=%FlashSectionSize%-0x1000
    Set /a START_COUNT=0
    Set /a NoRemainderCount=%FV_Length%/%FlashSectionSize%
    if %NoRemainderCount% GTR 0 (
        Set /a NoRemainderCount-=1
        Set /a SKIP_CUT_ROM=1
    ) else (
        Set /a SKIP_CUT_ROM=0
    )
    if %FlashRemainderSize% EQU 0 (
        Set /a END_COUNT=%FV_Length%/%FlashSectionSize%-1
    ) else (
        Set /a END_COUNT=%FV_Length%/%FlashSectionSize%
    )
    Set /a END_OF_SIZE=%FV_StartingAddress%+%FV_Length%
    goto AutoBuildPSL

:AutoBuildPSL
    Set /a START_FLASH_SECTION=%START_COUNT%*%FlashSectionSize%
    Set /a START_FLASH_SECTION_IN_MB=%START_FLASH_SECTION%/%FlashSectionSize%
    Set FLASH_ROM=AMI_%START_FLASH_SECTION_IN_MB%M.rom
    Set PSL_OUT_FILENAME=AmiPfatBiosPSLOutput_%START_FLASH_SECTION_IN_MB%M.bin
    Set FLASH_ROM_OUTPUT_FILENAME=APFAT%START_FLASH_SECTION_IN_MB%M.bin
    Set /a SUBTRACT_BLOCK_SIZE_FROM_TOTAL_ROM_SIZE=%FV_StartingAddress%
    Set /a CURRENT_SIZE=%START_COUNT%+1
    Set /a CURRENT_SIZE*=%FlashSectionSize%
    Set /a CURRENT_SIZE-=0x1000
    if %SKIP_CUT_ROM% EQU 1 (
         if %NoRemainderCount% GEQ %START_COUNT% (
             %CUTROM% %ROM_PRIORITY% %FLASH_ROM% %START_FLASH_SECTION% %FlashSectionSize%
             Set /a SUBTRACT_BLOCK_SIZE_FROM_TOTAL_ROM_SIZE+=%CURRENT_SIZE%
         ) else (
             %CUTROM% %ROM_PRIORITY% %FLASH_ROM% %START_FLASH_SECTION% %FlashRemainderSize%
             Set /a SUBTRACT_BLOCK_SIZE_FROM_TOTAL_ROM_SIZE=%END_OF_SIZE%-0x1000
             Set /a SUBTRACT_BLOCK_SIZE_FROM_DATA_SIZE=%FlashRemainderSize%-0x1000
        )
    ) else (
         Set FLASH_ROM=%ROM_PRIORITY%
         Set /a SUBTRACT_BLOCK_SIZE_FROM_TOTAL_ROM_SIZE=%END_OF_SIZE%-0x1000
         Set /a SUBTRACT_BLOCK_SIZE_FROM_DATA_SIZE=%FlashRemainderSize%-0x1000
    )
    echo begin > %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo // Set up initial values for update process >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo set F0 %SUBTRACT_BLOCK_SIZE_FROM_TOTAL_ROM_SIZE%; Total ROM size >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo set B0 %SUBTRACT_BLOCK_SIZE_FROM_DATA_SIZE%; Data size >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo set I0 0; the offset count >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo set I1 0x1000; the FLASH BLOCK SIZE >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo set I2 0; Erase error count >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo set I3 0; Write error count >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo set I4 3; Max errors >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo set I5 0; Error Code Buffer >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo set I6 0; Read error count >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo jmp _read; >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl

    echo.>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo _read_retry_label:  >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo add I6 1; increment the read retries count >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo compare I6 I4; compare read retries count to max retries >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo jge _read_error_label >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo jmp _read; if error START_COUNT is smaller than Max errors jump to read>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl

    echo.>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo _erase_retry_label:  >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo add I2 1; increment the erase retries count >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo compare I2 I4; compare erase retries count to max retries >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo jge _erase_error_label >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo jmp _erase; if error START_COUNT is smaller than Max errors jump to erase >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl

    echo.>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo _write_retry_label: >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo add I3 1; increment the write retries count >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo compare I3 I4; compare write retries count to max retries >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo jge _write_error_label >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo jmp _write; if error START_COUNT is smaller than Max errors jump to weite>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl

    echo.>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo _loop: >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl

    echo.>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo _read: >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo read B1 F0 I1; read block 4KB >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo rdsts I5; read the HW status into I5 >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo compare I5 0; >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo jne _read_retry_label; if HW status != 0 jump to retry >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo compare B0 B1 I1; compare B0 vs B1 >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl    
    echo je _skip_erase_and_write; if B0 == B1 skip erase and write >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl  

    echo.>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo _erase: >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo eraseblk F0; erase block 4KB >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo rdsts I5; read the HW status into I5 >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo compare I5 0; >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo jne _erase_retry_label; if HW status != 0 jump to retry >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl

    echo.>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo _write: >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo write F0 B0 I1; write block >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo rdsts I5; read the HW status into I5 >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo compare I5 0; >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo jne _write_retry_label; if HW status != 0 jump to retry  >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl

    echo.>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo _skip_erase_and_write: >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo add I0 I1; increment offset >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl

    echo.>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo // check if we reached the end of the buffer. We can't increment F0.offset and B0.offset to be more than BIOS size. >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    if %SKIP_CUT_ROM% EQU 1 (
        if %NoRemainderCount% GEQ %START_COUNT% (
            echo compare I0 %FlashSectionSize%; compare count with BIOS image size >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
            echo jge _end; if the count is greater or equal to %FlashSectionSize% then complete  >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl        
        ) else (
            echo compare I0 %FlashRemainderSize%; compare count with BIOS image size >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
            echo jge _end; if the count is greater or equal to %FlashRemainderSize% then complete  >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
        )
    ) else (
        echo compare I0 %FlashRemainderSize%; compare count with BIOS image size >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
        echo jge _end; if the count is greater or equal to %FlashRemainderSize% then complete  >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    )
    echo.>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo //Sub 4KB to offsets >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo sub F0 I1; Decrement flash offset >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo sub B0 I1; Decrement buffer offset >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo jmp _loop; work on the next block >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl

    echo.>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo _read_error_label: >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo set If 1; set error in If >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo jmp _end; >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl

    echo.>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo _erase_error_label: >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo set If 2; set error in If >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo jmp _end; >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl

    echo.>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo _write_error_label: >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo set If 3; set error in If >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl

    echo.>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo _end: >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo set If 0; set error = 0 if success >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl

    echo.>> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl
    echo end >> %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl

    %PSL2BIN%  %PSL_FILE%_%START_FLASH_SECTION_IN_MB%M.psl  %PSL_OUT_FILENAME%
    %PPB% -script %PSL_OUT_FILENAME% -data %FLASH_ROM% -package %PFAT_UPDATEPKG_FILENAME% -use_sfam true -bios_svn %BIOS_SVN%
    %PFATCRYPTCON% -z -k %PRIVATE_KEY_FILENAME% -f %PFAT_UPDATEPKG_FILENAME% -s
    copy /b %PFAT_UPDATEPKG_FILENAME% + %PFAT_SCRIPT_HDR% + %PFAT_SIGNATURE_FILENAME% %FLASH_ROM_OUTPUT_FILENAME%
    if exist .out_key (
        del .out_key
    )
    del .out_PfatCer
    del %PFAT_UPDATEPKG_FILENAME%
    if %START_COUNT% EQU %END_COUNT% goto FinishedAutoBuildPSL
    Set /a START_COUNT+=1
    goto AutoBuildPSL

:FinishedAutoBuildPSL
    Set /a START_COUNT=0
:IntegrateAllROMs
    Set /a START_FLASH_SECTION=%START_COUNT%*%FlashSectionSize%
    Set /a START_FLASH_SECTION_IN_MB=%START_FLASH_SECTION%/%FlashSectionSize%
    copy /b %PFAT_INTREGRATION_ROM%+APFAT%START_FLASH_SECTION_IN_MB%M.bin %PFAT_INTREGRATION_ROM%
    del APFAT%START_FLASH_SECTION_IN_MB%M.bin
    del AmiPfatBiosPSLOutput_%START_FLASH_SECTION_IN_MB%M.bin
    if exist AMI_%START_FLASH_SECTION_IN_MB%M.rom (
        del AMI_%START_FLASH_SECTION_IN_MB%M.rom
    )
    if %START_COUNT% EQU %END_COUNT% goto FinishedIntegrateAllROMs
    Set /a START_COUNT+=1
    goto IntegrateAllROMs

:FinishedIntegrateAllROMs
    del *.psl
    Set /a END_COUNT+=1
    del %ROM_PRIORITY%
    if "%ROM_PRIORITY%" EQU "%DESCRIPTOR_REGION_ROM%" (
        echo %MeType% /DESC %END_COUNT% ;%ROM_PRIORITY%>>%AMI_PFAT_FLASH_CONFIGURATIONS%
        goto BUILD_GBE_REGION_ROM
    )
    if "%ROM_PRIORITY%" EQU "%GBE_REGION_ROM%" (
        echo %MeType% /GBE  %END_COUNT% ;%ROM_PRIORITY%>>%AMI_PFAT_FLASH_CONFIGURATIONS%
        goto BUILD_ME_REGION_ROM
    )
    if "%ROM_PRIORITY%" EQU "%ME_REGION_ROM%" (
        echo %MeType% /ME   %END_COUNT% ;%ROM_PRIORITY%>>%AMI_PFAT_FLASH_CONFIGURATIONS%
        goto BUILD_BIOS_REGION_ROM_FIRST_FV
    )
    echo %BiosType% %FlashCMD% %END_COUNT% ;%ROM_PRIORITY%>>%AMI_PFAT_FLASH_CONFIGURATIONS%
    goto BUILD_BIOS_REGION_ROM_REMAINDER

:BuildAmiPfatHeader
    %WORKING_PATH%\BuildAmiPfatHeader.exe %AMI_PFAT_FLASH_CONFIGURATIONS% %AMI_PFAT_HEADER%
    copy /b %AMI_PFAT_HEADER%+%PFAT_INTREGRATION_ROM% AMIPFAT_%INPUT_BIOS_IMAGE%
    del %AMI_PFAT_HEADER%
    del %PFAT_INTREGRATION_ROM%
:END