| @echo off | |
| @REM ## @file | |
| @REM # | |
| @REM # Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR> | |
| @REM # | |
| @REM # This program and the accompanying materials | |
| @REM # are licensed and made available under the terms and conditions of the BSD License | |
| @REM # which accompanies this distribution. The full text of the license may be found at | |
| @REM # http://opensource.org/licenses/bsd-license.php | |
| @REM # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
| @REM # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| @REM # | |
| @REM # | |
| @REM ## | |
| @REM Set up environment at first. | |
| set BASETOOLS_DIR=%EDK_TOOLS_BIN% | |
| set BOOTSECTOR_BIN_DIR=%WORKSPACE%\DuetPkg\BootSector\bin | |
| set DISK_LABEL=DUET | |
| set PROCESSOR="" | |
| set STEP=1 | |
| if "%1"=="" goto Help | |
| if "%2"=="" goto Help | |
| if "%3"=="" goto Help | |
| if "%4"=="" goto Set_BootDisk | |
| if "%4"=="step2" (@set STEP=2) else @set TARGET_ARCH=%4 | |
| if "%5"=="step2" @set STEP=2 | |
| :Set_BootDisk | |
| set EFI_BOOT_DISK=%2 | |
| if "%TARGET_ARCH%"=="IA32" set PROCESSOR=IA32 | |
| if "%TARGET_ARCH%"=="X64" set PROCESSOR=X64 | |
| if %PROCESSOR%=="" goto WrongArch | |
| call %WORKSPACE%\DuetPkg\SetEnv_%PROCESSOR%.bat | |
| set BUILD_DIR=%WORKSPACE%\Build\DuetPkg%PROCESSOR%\%TARGET%_%TOOL_CHAIN_TAG% | |
| if "%1"=="floppy" goto CreateFloppy | |
| if "%1"=="file" goto CreateFile | |
| if "%1"=="usb" goto CreateUsb | |
| if "%1"=="ide" goto CreateIde | |
| goto Help | |
| :CreateFloppy | |
| if NOT "%3"=="FAT12" goto WrongFATType | |
| echo Start to create floppy boot disk ... | |
| echo Format %EFI_BOOT_DISK% ... | |
| echo.> FormatCommandInput.txt | |
| echo.n>> FormatCommandInput.txt | |
| format /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL | |
| del FormatCommandInput.txt | |
| echo Create boot sector ... | |
| %BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o FDBs.com | |
| copy %BOOTSECTOR_BIN_DIR%\Bootsect.com FDBs-1.com | |
| %BASETOOLS_DIR%\Bootsectimage.exe -g FDBs.com FDBs-1.com -f | |
| @REM @del FDBS.com | |
| %BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i FDBs-1.com | |
| del FDBs-1.com | |
| echo Done. | |
| copy %BUILD_DIR%\FV\EfiLdr %EFI_BOOT_DISK% | |
| goto CreateBootFile | |
| :CreateFile | |
| if NOT "%3"=="FAT12" goto WrongFATType | |
| echo Start to create file boot disk ... | |
| echo Create boot sector ... | |
| %BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o FDBs.com | |
| copy %BOOTSECTOR_BIN_DIR%\Bootsect.com FDBs-1.com | |
| %BASETOOLS_DIR%\Bootsectimage.exe -g FDBs.com FDBs-1.com -f | |
| REM @del FDBS.com | |
| %BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i FDBs-1.com | |
| del FDBs-1.com | |
| echo Done. | |
| goto end | |
| :CreateUsb | |
| echo Start to create usb boot disk ... | |
| if "%3"=="FAT16" goto CreateUsb_FAT16 | |
| if "%3"=="FAT32" goto CreateUsb_FAT32 | |
| if "%3"=="FAT12" goto WrongFATType | |
| :CreateUsb_FAT16 | |
| if "%STEP%"=="2" goto CreateUsb_FAT16_step2 | |
| echo Format %EFI_BOOT_DISK% ... | |
| echo.> FormatCommandInput.txt | |
| format /FS:FAT /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL | |
| del FormatCommandInput.txt | |
| echo Create boot sector ... | |
| %BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o UsbBs16.com | |
| copy %BOOTSECTOR_BIN_DIR%\Bs16.com Bs16-1.com | |
| %BASETOOLS_DIR%\Bootsectimage.exe -g UsbBs16.com Bs16-1.com -f | |
| %BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i Bs16-1.com | |
| del Bs16-1.com | |
| %BASETOOLS_DIR%\Genbootsector.exe -m -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Mbr.com | |
| echo Done. | |
| echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN! | |
| goto end | |
| :CreateUsb_FAT16_step2 | |
| copy %BUILD_DIR%\FV\EfiLdr16 %EFI_BOOT_DISK% | |
| goto CreateBootFile | |
| :CreateUsb_FAT32 | |
| if "%STEP%"=="2" goto CreateUsb_FAT32_step2 | |
| echo Format %EFI_BOOT_DISK% ... | |
| echo.> FormatCommandInput.txt | |
| format /FS:FAT32 /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL | |
| del FormatCommandInput.txt | |
| echo Create boot sector ... | |
| %BASETOOLS_DIR%\Genbootsector.exe -i %EFI_BOOT_DISK% -o UsbBs32.com | |
| copy %BOOTSECTOR_BIN_DIR%\Bs32.com Bs32-1.com | |
| %BASETOOLS_DIR%\Bootsectimage.exe -g UsbBs32.com Bs32-1.com -f | |
| del UsbBs32.com | |
| %BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i Bs32-1.com | |
| del Bs32-1.com | |
| %BASETOOLS_DIR%\Genbootsector.exe -m -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Mbr.com | |
| echo Done. | |
| echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN! | |
| goto end | |
| :CreateUsb_FAT32_step2 | |
| copy %BUILD_DIR%\FV\EfiLdr20 %EFI_BOOT_DISK% | |
| goto CreateBootFile | |
| :CreateIde | |
| goto end | |
| :CreateBootFile | |
| mkdir %EFI_BOOT_DISK%\efi\boot | |
| copy %WORKSPACE%\ShellBinPkg\UefiShell\%PROCESSOR%\Shell.efi %EFI_BOOT_DISK%\efi\boot\boot%PROCESSOR%.efi /y | |
| goto end | |
| :WrongFATType | |
| echo Wrong FAT type %3 for %1 | |
| goto end | |
| :WrongArch | |
| echo Error! Wrong architecture. | |
| goto Help | |
| :Help | |
| echo "Usage: CreateBootDisk [usb|floppy|ide] DiskNumber [FAT12|FAT16|FAT32] [IA32|X64]" | |
| :end | |
| echo on |