@REM | |
@REM Set up environment at fisrt. | |
@set BASETOOLS_DIR=%WORKSPACE_TOOLS_PATH%\Bin\Win32 | |
@set BUILD_DIR=%WORKSPACE%\Build\DuetPkg\DEBUG_MYTOOLS | |
@set BOOTSECTOR_BIN_DIR=%WORKSPACE%\DuetPkg\BootSector\bin | |
@set DISK_LABEL=DUET | |
@set PROCESSOR="" | |
@echo on | |
@if "%1"=="" goto Help | |
@if "%2"=="" goto Help | |
@if "%3"=="" goto Help | |
@if "%4"=="" goto NoArch | |
@set EFI_BOOT_DISK=%2 | |
@if "%4"=="IA32" set PROCESSOR=IA32 | |
@if "%4"=="X64" set PROCESSOR=X64 | |
@if %PROCESSOR%=="" goto WrongArch | |
@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 | |
%BASETOOLS_DIR%\Bootsectimage.exe -g FDBs.com %BOOTSECTOR_BIN_DIR%\Bootsect.com -f | |
@REM @del FDBS.com | |
%BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Bootsect.com | |
@echo Done. | |
copy %BUILD_DIR%\FV\EfiLdr %EFI_BOOT_DISK% | |
mkdir %EFI_BOOT_DISK%\efi\boot | |
@if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32 | |
@if "%PROCESSOR%"=="X64" goto CreateBootFileForX64 | |
@goto end | |
: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 | |
%BASETOOLS_DIR%\Bootsectimage.exe -g FDBs.com %BOOTSECTOR_BIN_DIR%\Bootsect.com -f | |
@REM @del FDBS.com | |
%BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Bootsect.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 "%5"=="step2" 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 | |
@%BASETOOLS_DIR%\Bootsectimage.exe -g UsbBs16.com %BOOTSECTOR_BIN_DIR%\Bs16.com -f | |
@%BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Bs16.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% | |
@mkdir %EFI_BOOT_DISK%\efi\boot | |
@if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32 | |
@if "%PROCESSOR%"=="X64" goto CreateBootFileForX64 | |
@goto end | |
:CreateUsb_FAT32 | |
@if "%5"=="step2" 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 | |
@%BASETOOLS_DIR%\Bootsectimage.exe -g UsbBs32.com %BOOTSECTOR_BIN_DIR%\Bs32.com -f | |
@del UsbBs32.com | |
@%BASETOOLS_DIR%\Genbootsector.exe -o %EFI_BOOT_DISK% -i %BOOTSECTOR_BIN_DIR%\Bs32.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% | |
@mkdir %EFI_BOOT_DISK%\efi\boot | |
@if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32 | |
@if "%PROCESSOR%"=="X64" goto CreateBootFileForX64 | |
@goto end | |
:CreateIde | |
@goto end | |
:CreateBootFileForIA32 | |
copy %WORKSPACE%\EdkShellBinPkg\MinimumShell\IA32\Shell.efi %EFI_BOOT_DISK%\efi\boot\bootia32.efi /y | |
@goto end | |
:CreateBootFileForX64 | |
copy %WORKSPACE%\EdkShellBinPkg\MinimumShell\X64\Shell.efi %EFI_BOOT_DISK%\efi\boot\bootx64.efi /y | |
@goto end | |
:WrongFATType | |
@echo Wrong FAT type %3 for %1 | |
@goto end | |
:NoArch | |
@echo Error! Please specific the architecture. | |
@goto Help | |
:WrongArch | |
@echo Error! Wrong architecture. | |
@goto Help | |
:Help | |
@echo "Usage: CreateBootDisk [usb|floppy|ide] DiskNumber [FAT12|FAT16|FAT32] [IA32|X64]" | |
:end | |
@echo on |