214b5b6925a54e35d14d57d3f287fd7a53f97e75
[mirror_edk2.git] / DuetPkg / CreateBootDisk.bat
1 @REM ## @file
2 @REM #
3 @REM # Copyright (c) 2010 - 2014, 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 @goto CreateBootFile
64
65 :CreateFile
66 @if NOT "%3"=="FAT12" goto WrongFATType
67 @echo Start to create file boot disk ...
68 @echo Create boot sector ...
69 %BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o FDBs.com
70 @copy %BOOTSECTOR_BIN_DIR%\Bootsect.com FDBs-1.com
71 @%BASETOOLS_DIR%\Bootsectimage.exe -g FDBs.com FDBs-1.com -f
72 @REM @del FDBS.com
73 @%BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i FDBs-1.com
74 @del FDBs-1.com
75 @echo Done.
76 @goto end
77
78 :CreateUsb
79 @echo Start to create usb boot disk ...
80 @if "%3"=="FAT16" goto CreateUsb_FAT16
81 @if "%3"=="FAT32" goto CreateUsb_FAT32
82 @if "%3"=="FAT12" goto WrongFATType
83
84 :CreateUsb_FAT16
85 @if "%STEP%"=="2" goto CreateUsb_FAT16_step2
86 @echo Format %EFI_BOOT_DISK% ...
87 @echo.> FormatCommandInput.txt
88 @format /FS:FAT /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL
89 @del FormatCommandInput.txt
90 @echo Create boot sector ...
91 @%BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o UsbBs16.com
92 @copy %BOOTSECTOR_BIN_DIR%\Bs16.com Bs16-1.com
93 @%BASETOOLS_DIR%\Bootsectimage.exe -g UsbBs16.com Bs16-1.com -f
94 @%BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i Bs16-1.com
95 @del Bs16-1.com
96 @%BASETOOLS_DIR%\Genbootsector.exe -m -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Mbr.com
97 @echo Done.
98 @echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN!
99 @goto end
100
101 :CreateUsb_FAT16_step2
102 @copy %BUILD_DIR%\FV\EfiLdr16 %EFI_BOOT_DISK%
103 @goto CreateBootFile
104
105 :CreateUsb_FAT32
106 @if "%STEP%"=="2" goto CreateUsb_FAT32_step2
107 @echo Format %EFI_BOOT_DISK% ...
108 @echo.> FormatCommandInput.txt
109 @format /FS:FAT32 /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL
110 @del FormatCommandInput.txt
111 @echo Create boot sector ...
112 @%BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o UsbBs32.com
113 @copy %BOOTSECTOR_BIN_DIR%\Bs32.com Bs32-1.com
114 @%BASETOOLS_DIR%\Bootsectimage.exe -g UsbBs32.com Bs32-1.com -f
115 @del UsbBs32.com
116 @%BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i Bs32-1.com
117 @del Bs32-1.com
118 @%BASETOOLS_DIR%\Genbootsector.exe -m -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Mbr.com
119 @echo Done.
120 @echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN!
121 @goto end
122
123 :CreateUsb_FAT32_step2
124 @copy %BUILD_DIR%\FV\EfiLdr20 %EFI_BOOT_DISK%
125 @goto CreateBootFile
126
127 :CreateIde
128 @goto end
129
130 :CreateBootFile
131 @mkdir %EFI_BOOT_DISK%\efi\boot
132 copy %WORKSPACE%\ShellBinPkg\UefiShell\%PROCESSOR%\Shell.efi %EFI_BOOT_DISK%\efi\boot\boot%PROCESSOR%.efi /y
133 @goto end
134
135 :WrongFATType
136 @echo Wrong FAT type %3 for %1
137 @goto end
138
139 :WrongArch
140 @echo Error! Wrong architecture.
141 @goto Help
142
143 :Help
144 @echo "Usage: CreateBootDisk [usb|floppy|ide] DiskNumber [FAT12|FAT16|FAT32] [IA32|X64]"
145 :end
146 @echo on