klu2 | e4c0074 | 2010-03-10 01:23:13 +0000 | [diff] [blame] | 1 | @REM ## @file
|
| 2 | @REM #
|
niruiyu | 7708d08 | 2011-07-01 04:48:45 +0000 | [diff] [blame] | 3 | @REM # Copyright (c) 2010 - 2011, 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 |
|
niruiyu | 7708d08 | 2011-07-01 04:48:45 +0000 | [diff] [blame] | 15 | @REM Set up environment at first.
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 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=""
|
niruiyu | 7708d08 | 2011-07-01 04:48:45 +0000 | [diff] [blame] | 21 | @set STEP=1
|
| 22 | @call %WORKSPACE%\DuetPkg\GetVariables.bat
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 23 |
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 24 | @echo on
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 25 |
|
| 26 | @if "%1"=="" goto Help
|
| 27 | @if "%2"=="" goto Help
|
| 28 | @if "%3"=="" goto Help
|
niruiyu | 7708d08 | 2011-07-01 04:48:45 +0000 | [diff] [blame] | 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
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 33 | @set EFI_BOOT_DISK=%2
|
niruiyu | 7708d08 | 2011-07-01 04:48:45 +0000 | [diff] [blame] | 34 | @if "%TARGET_ARCH%"=="IA32" set PROCESSOR=IA32
|
| 35 | @if "%TARGET_ARCH%"=="X64" set PROCESSOR=X64
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 36 | @if %PROCESSOR%=="" goto WrongArch
|
niruiyu | 7708d08 | 2011-07-01 04:48:45 +0000 | [diff] [blame] | 37 | @set BUILD_DIR=%WORKSPACE%\Build\DuetPkg%PROCESSOR%\%TARGET%_%TOOL_CHAIN_TAG%
|
klu2 | ab9cb4b | 2010-03-18 02:36:52 +0000 | [diff] [blame] | 38 |
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 39 | @if "%1"=="floppy" goto CreateFloppy
|
klu2 | e25803f | 2009-01-06 03:25:24 +0000 | [diff] [blame] | 40 | @if "%1"=="file" goto CreateFile
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 41 | @if "%1"=="usb" goto CreateUsb
|
| 42 | @if "%1"=="ide" goto CreateIde
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 43 |
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 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
|
klu2 | e88f305 | 2009-06-22 03:01:53 +0000 | [diff] [blame] | 56 | %BASETOOLS_DIR%\Bootsectimage.exe -g FDBs.com %BOOTSECTOR_BIN_DIR%\Bootsect.com -f
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 57 | @REM @del FDBS.com
|
klu2 | e88f305 | 2009-06-22 03:01:53 +0000 | [diff] [blame] | 58 | %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] | 59 | @echo Done.
|
| 60 | copy %BUILD_DIR%\FV\EfiLdr %EFI_BOOT_DISK%
|
| 61 | mkdir %EFI_BOOT_DISK%\efi\boot
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 62 | @if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32
|
| 63 | @if "%PROCESSOR%"=="X64" goto CreateBootFileForX64
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 64 | @goto end
|
| 65 |
|
klu2 | e25803f | 2009-01-06 03:25:24 +0000 | [diff] [blame] | 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
|
klu2 | e88f305 | 2009-06-22 03:01:53 +0000 | [diff] [blame] | 71 | %BASETOOLS_DIR%\Bootsectimage.exe -g FDBs.com %BOOTSECTOR_BIN_DIR%\Bootsect.com -f
|
klu2 | e25803f | 2009-01-06 03:25:24 +0000 | [diff] [blame] | 72 | @REM @del FDBS.com
|
klu2 | e88f305 | 2009-06-22 03:01:53 +0000 | [diff] [blame] | 73 | %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] | 74 | @echo Done.
|
| 75 | @goto end
|
| 76 |
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 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
|
niruiyu | 7708d08 | 2011-07-01 04:48:45 +0000 | [diff] [blame] | 84 | @if "%STEP%"=="2" goto CreateUsb_FAT16_step2
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 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
|
klu2 | e88f305 | 2009-06-22 03:01:53 +0000 | [diff] [blame] | 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
|
klu2 | e25803f | 2009-01-06 03:25:24 +0000 | [diff] [blame] | 94 | @echo Done.
|
| 95 | @echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN!
|
| 96 | @goto end
|
| 97 |
|
| 98 | :CreateUsb_FAT16_step2
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 99 | @copy %BUILD_DIR%\FV\EfiLdr16 %EFI_BOOT_DISK%
|
| 100 | @mkdir %EFI_BOOT_DISK%\efi\boot
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 101 | @if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32
|
| 102 | @if "%PROCESSOR%"=="X64" goto CreateBootFileForX64
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 103 | @goto end
|
| 104 |
|
| 105 | :CreateUsb_FAT32
|
niruiyu | 7708d08 | 2011-07-01 04:48:45 +0000 | [diff] [blame] | 106 | @if "%STEP%"=="2" goto CreateUsb_FAT32_step2
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 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
|
klu2 | e88f305 | 2009-06-22 03:01:53 +0000 | [diff] [blame] | 113 | @%BASETOOLS_DIR%\Bootsectimage.exe -g UsbBs32.com %BOOTSECTOR_BIN_DIR%\Bs32.com -f
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 114 | @del UsbBs32.com
|
klu2 | e88f305 | 2009-06-22 03:01:53 +0000 | [diff] [blame] | 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
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 117 | @echo Done.
|
| 118 | @echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN!
|
| 119 | @goto end
|
| 120 |
|
klu2 | b0e441b | 2009-03-01 08:04:03 +0000 | [diff] [blame] | 121 | :CreateUsb_FAT32_step2
|
| 122 | @copy %BUILD_DIR%\FV\EfiLdr20 %EFI_BOOT_DISK%
|
| 123 | @mkdir %EFI_BOOT_DISK%\efi\boot
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 124 | @if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32
|
| 125 | @if "%PROCESSOR%"=="X64" goto CreateBootFileForX64
|
klu2 | b0e441b | 2009-03-01 08:04:03 +0000 | [diff] [blame] | 126 | @goto end
|
| 127 |
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 128 | :CreateIde
|
| 129 | @goto end
|
| 130 |
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 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 |
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 139 | :WrongFATType
|
| 140 | @echo Wrong FAT type %3 for %1
|
| 141 | @goto end
|
| 142 |
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 143 | :WrongArch
|
| 144 | @echo Error! Wrong architecture.
|
| 145 | @goto Help
|
| 146 |
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 147 | :Help
|
eric_tian | e843cdd | 2010-01-19 08:28:28 +0000 | [diff] [blame] | 148 | @echo "Usage: CreateBootDisk [usb|floppy|ide] DiskNumber [FAT12|FAT16|FAT32] [IA32|X64]"
|
klu2 | 6d3f772 | 2008-05-07 05:11:29 +0000 | [diff] [blame] | 149 | :end
|
| 150 | @echo on |