klu2 | e4c0074 | 2010-03-10 01:23:13 +0000 | [diff] [blame] | 1 | @REM ## @file
|
| 2 | @REM #
|
klu2 | c4ae279 | 2010-03-10 02:36:05 +0000 | [diff] [blame] | 3 | @REM # Copyright (c) 2010 Intel Corporation. All rights reserved.<BR>
|
klu2 | e4c0074 | 2010-03-10 01:23:13 +0000 | [diff] [blame] | 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 ##
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 14 |
|
| 15 | @REM Set up environment at fisrt.
|
| 16 |
|
klu2 | 2a5ef1f | 2009-01-06 04:38:58 +0000 | [diff] [blame] | 17 | @set BASETOOLS_DIR=%WORKSPACE_TOOLS_PATH%\Bin\Win32
|
klu2 | e88f305 | 2009-06-22 03:01:53 +0000 | [diff] [blame] | 18 | @set BOOTSECTOR_BIN_DIR=%WORKSPACE%\DuetPkg\BootSector\bin
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 19 | @set DISK_LABEL=DUET
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 20 | @set PROCESSOR=""
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 21 |
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 22 | @echo on
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 23 |
|
| 24 | @if "%1"=="" goto Help
|
| 25 | @if "%2"=="" goto Help
|
| 26 | @if "%3"=="" goto Help
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 27 | @if "%4"=="" goto NoArch
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 28 | @set EFI_BOOT_DISK=%2
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 29 | @if "%4"=="IA32" set PROCESSOR=IA32
|
| 30 | @if "%4"=="X64" set PROCESSOR=X64
|
| 31 | @if %PROCESSOR%=="" goto WrongArch
|
klu2 | ab9cb4b | 2010-03-18 02:36:52 +0000 | [diff] [blame^] | 32 | @set BUILD_DIR=%WORKSPACE%\Build\DuetPkg%PROCESSOR%\DEBUG_MYTOOLS
|
| 33 |
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 34 | @if "%1"=="floppy" goto CreateFloppy
|
klu2 | e25803f | 2009-01-06 03:25:24 +0000 | [diff] [blame] | 35 | @if "%1"=="file" goto CreateFile
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 36 | @if "%1"=="usb" goto CreateUsb
|
| 37 | @if "%1"=="ide" goto CreateIde
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 38 |
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 39 | goto Help
|
| 40 |
|
| 41 | :CreateFloppy
|
| 42 | @if NOT "%3"=="FAT12" goto WrongFATType
|
| 43 | @echo Start to create floppy boot disk ...
|
| 44 | @echo Format %EFI_BOOT_DISK% ...
|
| 45 | @echo.> FormatCommandInput.txt
|
| 46 | @echo.n>> FormatCommandInput.txt
|
| 47 | @format /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL
|
| 48 | @del FormatCommandInput.txt
|
| 49 | @echo Create boot sector ...
|
| 50 | %BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o FDBs.com
|
klu2 | e88f305 | 2009-06-22 03:01:53 +0000 | [diff] [blame] | 51 | %BASETOOLS_DIR%\Bootsectimage.exe -g FDBs.com %BOOTSECTOR_BIN_DIR%\Bootsect.com -f
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 52 | @REM @del FDBS.com
|
klu2 | e88f305 | 2009-06-22 03:01:53 +0000 | [diff] [blame] | 53 | %BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Bootsect.com
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 54 | @echo Done.
|
| 55 | copy %BUILD_DIR%\FV\EfiLdr %EFI_BOOT_DISK%
|
| 56 | mkdir %EFI_BOOT_DISK%\efi\boot
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 57 | @if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32
|
| 58 | @if "%PROCESSOR%"=="X64" goto CreateBootFileForX64
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 59 | @goto end
|
| 60 |
|
klu2 | e25803f | 2009-01-06 03:25:24 +0000 | [diff] [blame] | 61 | :CreateFile
|
| 62 | @if NOT "%3"=="FAT12" goto WrongFATType
|
| 63 | @echo Start to create file boot disk ...
|
| 64 | @echo Create boot sector ...
|
| 65 | %BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o FDBs.com
|
klu2 | e88f305 | 2009-06-22 03:01:53 +0000 | [diff] [blame] | 66 | %BASETOOLS_DIR%\Bootsectimage.exe -g FDBs.com %BOOTSECTOR_BIN_DIR%\Bootsect.com -f
|
klu2 | e25803f | 2009-01-06 03:25:24 +0000 | [diff] [blame] | 67 | @REM @del FDBS.com
|
klu2 | e88f305 | 2009-06-22 03:01:53 +0000 | [diff] [blame] | 68 | %BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Bootsect.com
|
klu2 | e25803f | 2009-01-06 03:25:24 +0000 | [diff] [blame] | 69 | @echo Done.
|
| 70 | @goto end
|
| 71 |
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 72 | :CreateUsb
|
| 73 | @echo Start to create usb boot disk ...
|
| 74 | @if "%3"=="FAT16" goto CreateUsb_FAT16
|
| 75 | @if "%3"=="FAT32" goto CreateUsb_FAT32
|
| 76 | @if "%3"=="FAT12" goto WrongFATType
|
| 77 |
|
| 78 | :CreateUsb_FAT16
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 79 | @if "%5"=="step2" goto CreateUsb_FAT16_step2
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 80 | @echo Format %EFI_BOOT_DISK% ...
|
| 81 | @echo.> FormatCommandInput.txt
|
| 82 | @format /FS:FAT /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL
|
| 83 | @del FormatCommandInput.txt
|
| 84 | @echo Create boot sector ...
|
| 85 | @%BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o UsbBs16.com
|
klu2 | e88f305 | 2009-06-22 03:01:53 +0000 | [diff] [blame] | 86 | @%BASETOOLS_DIR%\Bootsectimage.exe -g UsbBs16.com %BOOTSECTOR_BIN_DIR%\Bs16.com -f
|
| 87 | @%BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Bs16.com
|
| 88 | @%BASETOOLS_DIR%\Genbootsector.exe -m -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Mbr.com
|
klu2 | e25803f | 2009-01-06 03:25:24 +0000 | [diff] [blame] | 89 | @echo Done.
|
| 90 | @echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN!
|
| 91 | @goto end
|
| 92 |
|
| 93 | :CreateUsb_FAT16_step2
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 94 | @copy %BUILD_DIR%\FV\EfiLdr16 %EFI_BOOT_DISK%
|
| 95 | @mkdir %EFI_BOOT_DISK%\efi\boot
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 96 | @if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32
|
| 97 | @if "%PROCESSOR%"=="X64" goto CreateBootFileForX64
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 98 | @goto end
|
| 99 |
|
| 100 | :CreateUsb_FAT32
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 101 | @if "%5"=="step2" goto CreateUsb_FAT32_step2
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 102 | @echo Format %EFI_BOOT_DISK% ...
|
| 103 | @echo.> FormatCommandInput.txt
|
| 104 | @format /FS:FAT32 /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL
|
| 105 | @del FormatCommandInput.txt
|
| 106 | @echo Create boot sector ...
|
| 107 | @%BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o UsbBs32.com
|
klu2 | e88f305 | 2009-06-22 03:01:53 +0000 | [diff] [blame] | 108 | @%BASETOOLS_DIR%\Bootsectimage.exe -g UsbBs32.com %BOOTSECTOR_BIN_DIR%\Bs32.com -f
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 109 | @del UsbBs32.com
|
klu2 | e88f305 | 2009-06-22 03:01:53 +0000 | [diff] [blame] | 110 | @%BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Bs32.com
|
| 111 | @%BASETOOLS_DIR%\Genbootsector.exe -m -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Mbr.com
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 112 | @echo Done.
|
| 113 | @echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN!
|
| 114 | @goto end
|
| 115 |
|
klu2 | b0e441b | 2009-03-01 08:04:03 +0000 | [diff] [blame] | 116 | :CreateUsb_FAT32_step2
|
| 117 | @copy %BUILD_DIR%\FV\EfiLdr20 %EFI_BOOT_DISK%
|
| 118 | @mkdir %EFI_BOOT_DISK%\efi\boot
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 119 | @if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32
|
| 120 | @if "%PROCESSOR%"=="X64" goto CreateBootFileForX64
|
klu2 | b0e441b | 2009-03-01 08:04:03 +0000 | [diff] [blame] | 121 | @goto end
|
| 122 |
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 123 | :CreateIde
|
| 124 | @goto end
|
| 125 |
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 126 | :CreateBootFileForIA32
|
| 127 | copy %WORKSPACE%\EdkShellBinPkg\MinimumShell\IA32\Shell.efi %EFI_BOOT_DISK%\efi\boot\bootia32.efi /y
|
| 128 | @goto end
|
| 129 |
|
| 130 | :CreateBootFileForX64
|
| 131 | copy %WORKSPACE%\EdkShellBinPkg\MinimumShell\X64\Shell.efi %EFI_BOOT_DISK%\efi\boot\bootx64.efi /y
|
| 132 | @goto end
|
| 133 |
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 134 | :WrongFATType
|
| 135 | @echo Wrong FAT type %3 for %1
|
| 136 | @goto end
|
| 137 |
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 138 | :NoArch
|
| 139 | @echo Error! Please specific the architecture.
|
| 140 | @goto Help
|
| 141 |
|
| 142 | :WrongArch
|
| 143 | @echo Error! Wrong architecture.
|
| 144 | @goto Help
|
| 145 |
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 146 | :Help
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 147 | @echo "Usage: CreateBootDisk [usb|floppy|ide] DiskNumber [FAT12|FAT16|FAT32] [IA32|X64]"
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 148 | :end
|
| 149 | @echo on |