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