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
44goto 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
132copy %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
147