]> git.proxmox.com Git - mirror_edk2.git/blob - DuetPkg/CreateBootDisk.bat
bd611ee00a7ff6ad1e7a66e938c5e4751a056f49
[mirror_edk2.git] / DuetPkg / CreateBootDisk.bat
1 @REM ## @file
2 @REM #
3 @REM # Copyright (c) 2010 - 2011, 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 first.
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 @set STEP=1
22 @call %WORKSPACE%\DuetPkg\GetVariables.bat
23
24 @echo on
25
26 @if "%1"=="" goto Help
27 @if "%2"=="" goto Help
28 @if "%3"=="" goto Help
29 @if "%4"=="" goto Set_BootDisk
30 @if "%4"=="step2" (@set STEP=2) else @set TARGET_ARCH=%4
31 @if "%5"=="step2" @set STEP=2
32 :Set_BootDisk
33 @set EFI_BOOT_DISK=%2
34 @if "%TARGET_ARCH%"=="IA32" set PROCESSOR=IA32
35 @if "%TARGET_ARCH%"=="X64" set PROCESSOR=X64
36 @if %PROCESSOR%=="" goto WrongArch
37 @set BUILD_DIR=%WORKSPACE%\Build\DuetPkg%PROCESSOR%\%TARGET%_%TOOL_CHAIN_TAG%
38
39 @if "%1"=="floppy" goto CreateFloppy
40 @if "%1"=="file" goto CreateFile
41 @if "%1"=="usb" goto CreateUsb
42 @if "%1"=="ide" goto CreateIde
43
44 goto Help
45
46 :CreateFloppy
47 @if NOT "%3"=="FAT12" goto WrongFATType
48 @echo Start to create floppy boot disk ...
49 @echo Format %EFI_BOOT_DISK% ...
50 @echo.> FormatCommandInput.txt
51 @echo.n>> FormatCommandInput.txt
52 @format /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL
53 @del FormatCommandInput.txt
54 @echo Create boot sector ...
55 %BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o FDBs.com
56 @copy %BOOTSECTOR_BIN_DIR%\Bootsect.com FDBs-1.com
57 %BASETOOLS_DIR%\Bootsectimage.exe -g FDBs.com FDBs-1.com -f
58 @REM @del FDBS.com
59 %BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i FDBs-1.com
60 @del FDBs-1.com
61 @echo Done.
62 copy %BUILD_DIR%\FV\EfiLdr %EFI_BOOT_DISK%
63 mkdir %EFI_BOOT_DISK%\efi\boot
64 @if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32
65 @if "%PROCESSOR%"=="X64" goto CreateBootFileForX64
66 @goto end
67
68 :CreateFile
69 @if NOT "%3"=="FAT12" goto WrongFATType
70 @echo Start to create file boot disk ...
71 @echo Create boot sector ...
72 %BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o FDBs.com
73 copy %BOOTSECTOR_BIN_DIR%\Bootsect.com FDBs-1.com
74 %BASETOOLS_DIR%\Bootsectimage.exe -g FDBs.com FDBs-1.com -f
75 @REM @del FDBS.com
76 %BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i FDBs-1.com
77 @del FDBs-1.com
78 @echo Done.
79 @goto end
80
81 :CreateUsb
82 @echo Start to create usb boot disk ...
83 @if "%3"=="FAT16" goto CreateUsb_FAT16
84 @if "%3"=="FAT32" goto CreateUsb_FAT32
85 @if "%3"=="FAT12" goto WrongFATType
86
87 :CreateUsb_FAT16
88 @if "%STEP%"=="2" goto CreateUsb_FAT16_step2
89 @echo Format %EFI_BOOT_DISK% ...
90 @echo.> FormatCommandInput.txt
91 @format /FS:FAT /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL
92 @del FormatCommandInput.txt
93 @echo Create boot sector ...
94 @%BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o UsbBs16.com
95 @copy %BOOTSECTOR_BIN_DIR%\Bs16.com Bs16-1.com
96 @%BASETOOLS_DIR%\Bootsectimage.exe -g UsbBs16.com Bs16-1.com -f
97 @%BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i Bs16-1.com
98 @del Bs16-1.com
99 @%BASETOOLS_DIR%\Genbootsector.exe -m -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Mbr.com
100 @echo Done.
101 @echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN!
102 @goto end
103
104 :CreateUsb_FAT16_step2
105 @copy %BUILD_DIR%\FV\EfiLdr16 %EFI_BOOT_DISK%
106 @mkdir %EFI_BOOT_DISK%\efi\boot
107 @if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32
108 @if "%PROCESSOR%"=="X64" goto CreateBootFileForX64
109 @goto end
110
111 :CreateUsb_FAT32
112 @if "%STEP%"=="2" goto CreateUsb_FAT32_step2
113 @echo Format %EFI_BOOT_DISK% ...
114 @echo.> FormatCommandInput.txt
115 @format /FS:FAT32 /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL
116 @del FormatCommandInput.txt
117 @echo Create boot sector ...
118 @%BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o UsbBs32.com
119 @copy %BOOTSECTOR_BIN_DIR%\Bs32.com Bs32-1.com
120 @%BASETOOLS_DIR%\Bootsectimage.exe -g UsbBs32.com Bs32-1.com -f
121 @del UsbBs32.com
122 @%BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i Bs32-1.com
123 @del Bs32-1.com
124 @%BASETOOLS_DIR%\Genbootsector.exe -m -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Mbr.com
125 @echo Done.
126 @echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN!
127 @goto end
128
129 :CreateUsb_FAT32_step2
130 @copy %BUILD_DIR%\FV\EfiLdr20 %EFI_BOOT_DISK%
131 @mkdir %EFI_BOOT_DISK%\efi\boot
132 @if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32
133 @if "%PROCESSOR%"=="X64" goto CreateBootFileForX64
134 @goto end
135
136 :CreateIde
137 @goto end
138
139 :CreateBootFileForIA32
140 copy %WORKSPACE%\EdkShellBinPkg\MinimumShell\IA32\Shell.efi %EFI_BOOT_DISK%\efi\boot\bootia32.efi /y
141 @goto end
142
143 :CreateBootFileForX64
144 copy %WORKSPACE%\EdkShellBinPkg\MinimumShell\X64\Shell.efi %EFI_BOOT_DISK%\efi\boot\bootx64.efi /y
145 @goto end
146
147 :WrongFATType
148 @echo Wrong FAT type %3 for %1
149 @goto end
150
151 :WrongArch
152 @echo Error! Wrong architecture.
153 @goto Help
154
155 :Help
156 @echo "Usage: CreateBootDisk [usb|floppy|ide] DiskNumber [FAT12|FAT16|FAT32] [IA32|X64]"
157 :end
158 @echo on