@set BUILD_DIR=%WORKSPACE%\Build\DuetPkg\DEBUG_MYTOOLS\r
@set BOOTSECTOR_BIN_DIR=%WORKSPACE%\DuetPkg\BootSector\bin\r
@set DISK_LABEL=DUET\r
-@echo on\r
+@set PROCESSOR=""\r
\r
+@echo on\r
\r
@if "%1"=="" goto Help\r
@if "%2"=="" goto Help\r
@if "%3"=="" goto Help\r
+@if "%4"=="" goto NoArch\r
@set EFI_BOOT_DISK=%2\r
+@if "%4"=="IA32" set PROCESSOR=IA32\r
+@if "%4"=="X64" set PROCESSOR=X64\r
+@if %PROCESSOR%=="" goto WrongArch\r
@if "%1"=="floppy" goto CreateFloppy\r
@if "%1"=="file" goto CreateFile\r
@if "%1"=="usb" goto CreateUsb\r
@if "%1"=="ide" goto CreateIde\r
+\r
goto Help\r
\r
:CreateFloppy\r
@echo Done.\r
copy %BUILD_DIR%\FV\EfiLdr %EFI_BOOT_DISK%\r
mkdir %EFI_BOOT_DISK%\efi\boot\r
-copy %WORKSPACE%\EdkShellBinPkg\MinimumShell\ia32\Shell.efi %EFI_BOOT_DISK%\efi\boot\bootia32.efi /y\r
+@if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32\r
+@if "%PROCESSOR%"=="X64" goto CreateBootFileForX64\r
@goto end\r
\r
:CreateFile\r
@if "%3"=="FAT12" goto WrongFATType\r
\r
:CreateUsb_FAT16\r
-@if "%4"=="step2" goto CreateUsb_FAT16_step2\r
+@if "%5"=="step2" goto CreateUsb_FAT16_step2\r
@echo Format %EFI_BOOT_DISK% ...\r
@echo.> FormatCommandInput.txt\r
@format /FS:FAT /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL\r
:CreateUsb_FAT16_step2\r
@copy %BUILD_DIR%\FV\EfiLdr16 %EFI_BOOT_DISK%\r
@mkdir %EFI_BOOT_DISK%\efi\boot\r
-copy %WORKSPACE%\EdkShellBinPkg\MinimumShell\Ia32\Shell.efi %EFI_BOOT_DISK%\efi\boot\bootia32.efi /y\r
+@if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32\r
+@if "%PROCESSOR%"=="X64" goto CreateBootFileForX64\r
@goto end\r
\r
:CreateUsb_FAT32\r
-@if "%4"=="step2" goto CreateUsb_FAT32_step2\r
+@if "%5"=="step2" goto CreateUsb_FAT32_step2\r
@echo Format %EFI_BOOT_DISK% ...\r
@echo.> FormatCommandInput.txt\r
@format /FS:FAT32 /v:%DISK_LABEL% /q %EFI_BOOT_DISK% < FormatCommandInput.txt > NUL\r
:CreateUsb_FAT32_step2\r
@copy %BUILD_DIR%\FV\EfiLdr20 %EFI_BOOT_DISK%\r
@mkdir %EFI_BOOT_DISK%\efi\boot\r
-@copy %WORKSPACE%\EdkShellBinPkg\MinimumShell\ia32\Shell.efi %EFI_BOOT_DISK%\efi\boot\bootia32.efi /y\r
+@if "%PROCESSOR%"=="IA32" goto CreateBootFileForIA32\r
+@if "%PROCESSOR%"=="X64" goto CreateBootFileForX64\r
@goto end\r
\r
:CreateIde\r
@goto end\r
\r
+:CreateBootFileForIA32\r
+copy %WORKSPACE%\EdkShellBinPkg\MinimumShell\IA32\Shell.efi %EFI_BOOT_DISK%\efi\boot\bootia32.efi /y\r
+@goto end\r
+\r
+:CreateBootFileForX64\r
+copy %WORKSPACE%\EdkShellBinPkg\MinimumShell\X64\Shell.efi %EFI_BOOT_DISK%\efi\boot\bootx64.efi /y\r
+@goto end\r
+\r
:WrongFATType\r
@echo Wrong FAT type %3 for %1\r
@goto end\r
\r
+:NoArch\r
+@echo Error! Please specific the architecture.\r
+@goto Help\r
+\r
+:WrongArch\r
+@echo Error! Wrong architecture.\r
+@goto Help\r
+\r
:Help\r
-@echo "Usage: CreateBootDisk [usb|floppy|ide] DiskNumber [FAT12|FAT16|FAT32]"\r
+@echo "Usage: CreateBootDisk [usb|floppy|ide] DiskNumber [FAT12|FAT16|FAT32] [IA32|X64]"\r
:end\r
@echo on
\ No newline at end of file