3 @REM
Set up environment at fisrt.
5 @
set BASETOOLS_DIR
=%WORKSPACE_TOOLS_PATH%\Bin\Win32
6 @
set BUILD_DIR
=%WORKSPACE%\Build\DuetPkg\DEBUG_MYTOOLS
7 @
set BOOTSECTOR_BIN_DIR
=%WORKSPACE%\DuetPkg\BootSector
\bin
13 @
if "%1"=="" goto Help
14 @
if "%2"=="" goto Help
15 @
if "%3"=="" goto Help
16 @
if "%4"=="" goto NoArch
18 @
if "%4"=="IA32" set PROCESSOR
=IA32
19 @
if "%4"=="X64" set PROCESSOR
=X64
20 @
if %PROCESSOR%=="" goto WrongArch
21 @
if "%1"=="floppy" goto CreateFloppy
22 @
if "%1"=="file" goto CreateFile
23 @
if "%1"=="usb" goto CreateUsb
24 @
if "%1"=="ide" goto CreateIde
29 @
if NOT "%3"=="FAT12" goto WrongFATType
30 @
echo Start to create floppy
boot disk ...
31 @
echo Format %EFI_BOOT_DISK% ...
32 @
echo.
> FormatCommandInput.txt
33 @
echo.n
>> FormatCommandInput.txt
34 @
format /v
:%DISK_LABEL% /q
%EFI_BOOT_DISK% < FormatCommandInput.txt
> NUL
35 @
del FormatCommandInput.txt
36 @
echo Create
boot sector ...
37 %BASETOOLS_DIR%\Genbootsector.exe
-i
%EFI_BOOT_DISK% -o FDBs.com
38 %BASETOOLS_DIR%\Bootsectimage.exe
-g FDBs.com
%BOOTSECTOR_BIN_DIR%\Bootsect.com
-f
40 %BASETOOLS_DIR%\Genbootsector.exe
-o
%EFI_BOOT_DISK% -i
%BOOTSECTOR_BIN_DIR%\Bootsect.com
42 copy %BUILD_DIR%\FV\EfiLdr
%EFI_BOOT_DISK%
43 mkdir %EFI_BOOT_DISK%\efi
\boot
44 @
if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32
45 @
if "%PROCESSOR%"=="X64" goto CreateBootFileForX64
49 @
if NOT "%3"=="FAT12" goto WrongFATType
50 @
echo Start to create file
boot disk ...
51 @
echo Create
boot sector ...
52 %BASETOOLS_DIR%\Genbootsector.exe
-i
%EFI_BOOT_DISK% -o FDBs.com
53 %BASETOOLS_DIR%\Bootsectimage.exe
-g FDBs.com
%BOOTSECTOR_BIN_DIR%\Bootsect.com
-f
55 %BASETOOLS_DIR%\Genbootsector.exe
-o
%EFI_BOOT_DISK% -i
%BOOTSECTOR_BIN_DIR%\Bootsect.com
60 @
echo Start to create usb
boot disk ...
61 @
if "%3"=="FAT16" goto CreateUsb_FAT16
62 @
if "%3"=="FAT32" goto CreateUsb_FAT32
63 @
if "%3"=="FAT12" goto WrongFATType
66 @
if "%5"=="step2" goto CreateUsb_FAT16_step2
67 @
echo Format %EFI_BOOT_DISK% ...
68 @
echo.
> FormatCommandInput.txt
69 @
format /FS
:FAT /v
:%DISK_LABEL% /q
%EFI_BOOT_DISK% < FormatCommandInput.txt
> NUL
70 @
del FormatCommandInput.txt
71 @
echo Create
boot sector ...
72 @
%BASETOOLS_DIR%\Genbootsector.exe
-i
%EFI_BOOT_DISK% -o UsbBs16.com
73 @
%BASETOOLS_DIR%\Bootsectimage.exe
-g UsbBs16.com
%BOOTSECTOR_BIN_DIR%\Bs16.com
-f
74 @
%BASETOOLS_DIR%\Genbootsector.exe
-o
%EFI_BOOT_DISK% -i
%BOOTSECTOR_BIN_DIR%\Bs16.com
75 @
%BASETOOLS_DIR%\Genbootsector.exe
-m
-o
%EFI_BOOT_DISK% -i
%BOOTSECTOR_BIN_DIR%\Mbr.com
77 @
echo PLEASE UNPLUG USB
, THEN PLUG IT AGAIN
!
80 :CreateUsb_FAT16_step2
81 @
copy %BUILD_DIR%\FV\EfiLdr16
%EFI_BOOT_DISK%
82 @
mkdir %EFI_BOOT_DISK%\efi
\boot
83 @
if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32
84 @
if "%PROCESSOR%"=="X64" goto CreateBootFileForX64
88 @
if "%5"=="step2" goto CreateUsb_FAT32_step2
89 @
echo Format %EFI_BOOT_DISK% ...
90 @
echo.
> FormatCommandInput.txt
91 @
format /FS
:FAT32 /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 UsbBs32.com
95 @
%BASETOOLS_DIR%\Bootsectimage.exe
-g UsbBs32.com
%BOOTSECTOR_BIN_DIR%\Bs32.com
-f
97 @
%BASETOOLS_DIR%\Genbootsector.exe
-o
%EFI_BOOT_DISK% -i
%BOOTSECTOR_BIN_DIR%\Bs32.com
98 @
%BASETOOLS_DIR%\Genbootsector.exe
-m
-o
%EFI_BOOT_DISK% -i
%BOOTSECTOR_BIN_DIR%\Mbr.com
100 @
echo PLEASE UNPLUG USB
, THEN PLUG IT AGAIN
!
103 :CreateUsb_FAT32_step2
104 @
copy %BUILD_DIR%\FV\EfiLdr20
%EFI_BOOT_DISK%
105 @
mkdir %EFI_BOOT_DISK%\efi
\boot
106 @
if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32
107 @
if "%PROCESSOR%"=="X64" goto CreateBootFileForX64
113 :CreateBootFileForIA32
114 copy %WORKSPACE%\EdkShellBinPkg\MinimumShell\IA32\
Shell.efi
%EFI_BOOT_DISK%\efi
\boot
\bootia
32.efi
/y
117 :CreateBootFileForX64
118 copy %WORKSPACE%\EdkShellBinPkg\MinimumShell\X64\
Shell.efi
%EFI_BOOT_DISK%\efi
\boot
\bootx
64.efi
/y
122 @
echo Wrong FAT
type %3 for %1
126 @
echo Error
! Please specific the architecture.
130 @
echo Error
! Wrong architecture.
134 @
echo "Usage: CreateBootDisk [usb|floppy|ide] DiskNumber [FAT12|FAT16|FAT32] [IA32|X64]"