]> git.proxmox.com Git - mirror_edk2.git/blob - DuetPkg/CreateBootDisk.bat
Separate IA32/X64 architecture into two DSC file to avoid the their output mixup.
[mirror_edk2.git] / DuetPkg / CreateBootDisk.bat
1 @REM ## @file
2 @REM #
3 @REM # Copyright (c) 2010 Intel Corporation. All rights reserved.<BR>
4 @REM #
5 @REM # This program and the accompanying materials
6 @REM # are licensed and made available under the terms and conditions of the BSD License
7 @REM # which accompanies this distribution. The full text of the license may be found at
8 @REM # http://opensource.org/licenses/bsd-license.php
9 @REM # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 @REM # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11 @REM #
12 @REM #
13 @REM ##
14
15 @REM Set up environment at fisrt.
16
17 @set BASETOOLS_DIR=%WORKSPACE_TOOLS_PATH%\Bin\Win32
18 @set BOOTSECTOR_BIN_DIR=%WORKSPACE%\DuetPkg\BootSector\bin
19 @set DISK_LABEL=DUET
20 @set PROCESSOR=""
21
22 @echo on
23
24 @if "%1"=="" goto Help
25 @if "%2"=="" goto Help
26 @if "%3"=="" goto Help
27 @if "%4"=="" goto NoArch
28 @set EFI_BOOT_DISK=%2
29 @if "%4"=="IA32" set PROCESSOR=IA32
30 @if "%4"=="X64" set PROCESSOR=X64
31 @if %PROCESSOR%=="" goto WrongArch
32 @set BUILD_DIR=%WORKSPACE%\Build\DuetPkg%PROCESSOR%\DEBUG_MYTOOLS
33
34 @if "%1"=="floppy" goto CreateFloppy
35 @if "%1"=="file" goto CreateFile
36 @if "%1"=="usb" goto CreateUsb
37 @if "%1"=="ide" goto CreateIde
38
39 goto Help
40
41 :CreateFloppy
42 @if NOT "%3"=="FAT12" goto WrongFATType
43 @echo Start to create floppy boot disk ...
44 @echo Format %EFI_BOOT_DISK% ...
45 @echo.> FormatCommandInput.txt
46 @echo.n>> FormatCommandInput.txt
47 @format /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL
48 @del FormatCommandInput.txt
49 @echo Create boot sector ...
50 %BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o FDBs.com
51 %BASETOOLS_DIR%\Bootsectimage.exe -g FDBs.com %BOOTSECTOR_BIN_DIR%\Bootsect.com -f
52 @REM @del FDBS.com
53 %BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Bootsect.com
54 @echo Done.
55 copy %BUILD_DIR%\FV\EfiLdr %EFI_BOOT_DISK%
56 mkdir %EFI_BOOT_DISK%\efi\boot
57 @if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32
58 @if "%PROCESSOR%"=="X64" goto CreateBootFileForX64
59 @goto end
60
61 :CreateFile
62 @if NOT "%3"=="FAT12" goto WrongFATType
63 @echo Start to create file boot disk ...
64 @echo Create boot sector ...
65 %BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o FDBs.com
66 %BASETOOLS_DIR%\Bootsectimage.exe -g FDBs.com %BOOTSECTOR_BIN_DIR%\Bootsect.com -f
67 @REM @del FDBS.com
68 %BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Bootsect.com
69 @echo Done.
70 @goto end
71
72 :CreateUsb
73 @echo Start to create usb boot disk ...
74 @if "%3"=="FAT16" goto CreateUsb_FAT16
75 @if "%3"=="FAT32" goto CreateUsb_FAT32
76 @if "%3"=="FAT12" goto WrongFATType
77
78 :CreateUsb_FAT16
79 @if "%5"=="step2" goto CreateUsb_FAT16_step2
80 @echo Format %EFI_BOOT_DISK% ...
81 @echo.> FormatCommandInput.txt
82 @format /FS:FAT /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL
83 @del FormatCommandInput.txt
84 @echo Create boot sector ...
85 @%BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o UsbBs16.com
86 @%BASETOOLS_DIR%\Bootsectimage.exe -g UsbBs16.com %BOOTSECTOR_BIN_DIR%\Bs16.com -f
87 @%BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Bs16.com
88 @%BASETOOLS_DIR%\Genbootsector.exe -m -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Mbr.com
89 @echo Done.
90 @echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN!
91 @goto end
92
93 :CreateUsb_FAT16_step2
94 @copy %BUILD_DIR%\FV\EfiLdr16 %EFI_BOOT_DISK%
95 @mkdir %EFI_BOOT_DISK%\efi\boot
96 @if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32
97 @if "%PROCESSOR%"=="X64" goto CreateBootFileForX64
98 @goto end
99
100 :CreateUsb_FAT32
101 @if "%5"=="step2" goto CreateUsb_FAT32_step2
102 @echo Format %EFI_BOOT_DISK% ...
103 @echo.> FormatCommandInput.txt
104 @format /FS:FAT32 /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL
105 @del FormatCommandInput.txt
106 @echo Create boot sector ...
107 @%BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o UsbBs32.com
108 @%BASETOOLS_DIR%\Bootsectimage.exe -g UsbBs32.com %BOOTSECTOR_BIN_DIR%\Bs32.com -f
109 @del UsbBs32.com
110 @%BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Bs32.com
111 @%BASETOOLS_DIR%\Genbootsector.exe -m -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Mbr.com
112 @echo Done.
113 @echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN!
114 @goto end
115
116 :CreateUsb_FAT32_step2
117 @copy %BUILD_DIR%\FV\EfiLdr20 %EFI_BOOT_DISK%
118 @mkdir %EFI_BOOT_DISK%\efi\boot
119 @if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32
120 @if "%PROCESSOR%"=="X64" goto CreateBootFileForX64
121 @goto end
122
123 :CreateIde
124 @goto end
125
126 :CreateBootFileForIA32
127 copy %WORKSPACE%\EdkShellBinPkg\MinimumShell\IA32\Shell.efi %EFI_BOOT_DISK%\efi\boot\bootia32.efi /y
128 @goto end
129
130 :CreateBootFileForX64
131 copy %WORKSPACE%\EdkShellBinPkg\MinimumShell\X64\Shell.efi %EFI_BOOT_DISK%\efi\boot\bootx64.efi /y
132 @goto end
133
134 :WrongFATType
135 @echo Wrong FAT type %3 for %1
136 @goto end
137
138 :NoArch
139 @echo Error! Please specific the architecture.
140 @goto Help
141
142 :WrongArch
143 @echo Error! Wrong architecture.
144 @goto Help
145
146 :Help
147 @echo "Usage: CreateBootDisk [usb|floppy|ide] DiskNumber [FAT12|FAT16|FAT32] [IA32|X64]"
148 :end
149 @echo on