]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Support X64 build for DUET platform.
authorklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 8 May 2008 06:22:31 +0000 (06:22 +0000)
committerklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 8 May 2008 06:22:31 +0000 (06:22 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5183 6f19259b-4bc3-4df7-8a09-765794883524

DuetPkg/BootSector/Makefile
DuetPkg/BootSector/efi64.asm
DuetPkg/DuetPkg.dsc
DuetPkg/DuetPkg.fdf
DuetPkg/EfiLdr/EfiLoader.c
DuetPkg/PostBuild.bat

index aaa8ac1daaa01b535a0b38f23c3ed49207ffa25a..8133e7a278fd5bfa44709b2fab54a5f4f18db555 100644 (file)
@@ -22,7 +22,11 @@ TARGET_FILES = $(OUTPUT_DIR)\bootsect.com \
                $(OUTPUT_DIR)\Start.com \\r
                $(OUTPUT_DIR)\Start16.com \\r
                $(OUTPUT_DIR)\Start32.com \\r
-               $(OUTPUT_DIR)\efi32.com2\r
+               $(OUTPUT_DIR)\Start64.com \\r
+               $(OUTPUT_DIR)\St16_64.com \\r
+               $(OUTPUT_DIR)\St32_64.com \\r
+               $(OUTPUT_DIR)\efi32.com2 \\r
+               $(OUTPUT_DIR)\efi64.com2 \r
 \r
 INC = \r
       \r
@@ -100,6 +104,30 @@ $(OUTPUT_DIR)\Start32.com:$(OUTPUT_DIR)\Start32.obj
 \r
 #=============\r
 \r
+$(OUTPUT_DIR)\Start64.obj:$(MODULE_DIR)\Start64.asm\r
+  "$(ASM16)" /c /omf /Fo"$(OUTPUT_DIR)\Start64.obj" "$(MODULE_DIR)\Start64.asm"\r
+             \r
+$(OUTPUT_DIR)\Start64.com:$(OUTPUT_DIR)\Start64.obj\r
+  "$(ASMLINK16)" /tiny $(OUTPUT_DIR)\Start64.obj,$(OUTPUT_DIR)\Start64.com,$(OUTPUT_DIR)\Start64.map,,,\r
+\r
+#=============\r
+\r
+$(OUTPUT_DIR)\St16_64.obj:$(MODULE_DIR)\St16_64.asm\r
+  "$(ASM16)" /c /omf /Fo"$(OUTPUT_DIR)\St16_64.obj" "$(MODULE_DIR)\St16_64.asm"\r
+             \r
+$(OUTPUT_DIR)\St16_64.com:$(OUTPUT_DIR)\St16_64.obj\r
+  "$(ASMLINK16)" /tiny $(OUTPUT_DIR)\St16_64.obj,$(OUTPUT_DIR)\St16_64.com,$(OUTPUT_DIR)\St16_64.map,,,\r
+\r
+#=============\r
+\r
+$(OUTPUT_DIR)\St32_64.obj:$(MODULE_DIR)\St32_64.asm\r
+  "$(ASM16)" /c /omf /Fo"$(OUTPUT_DIR)\St32_64.obj" "$(MODULE_DIR)\St32_64.asm"\r
+             \r
+$(OUTPUT_DIR)\St32_64.com:$(OUTPUT_DIR)\St32_64.obj\r
+  "$(ASMLINK16)" /tiny $(OUTPUT_DIR)\St32_64.obj,$(OUTPUT_DIR)\St32_64.com,$(OUTPUT_DIR)\St32_64.map,,,\r
+\r
+#=============\r
+\r
 $(OUTPUT_DIR)\efi32.obj:$(MODULE_DIR)\efi32.asm\r
   "$(ASM16)" /c /omf /Fo"$(OUTPUT_DIR)\efi32.obj" "$(MODULE_DIR)\efi32.asm"\r
              \r
@@ -110,26 +138,20 @@ $(OUTPUT_DIR)\efi32.com:$(OUTPUT_DIR)\efi32.obj
 \r
 $(OUTPUT_DIR)\efi32.com2:$(OUTPUT_DIR)\efi32.com\r
   $(BASETOOLS_DIR)\Split.exe -f $(OUTPUT_DIR)\efi32.com -t $(OUTPUT_DIR)\efi32.com2 -s 135168\r
-#\r
-# clean all generated files\r
-#\r
 \r
-loader:$(BUILD_DIR)\FV\Efildr\r
+#=============\r
+\r
+$(OUTPUT_DIR)\efi64.obj:$(MODULE_DIR)\efi64.asm\r
+  "$(ASM16)" /c /omf /Fo"$(OUTPUT_DIR)\efi64.obj" "$(MODULE_DIR)\efi64.asm"\r
+             \r
+$(OUTPUT_DIR)\efi64.com:$(OUTPUT_DIR)\efi64.obj\r
+  "$(ASMLINK16)" /tiny $(OUTPUT_DIR)\efi64.obj,$(OUTPUT_DIR)\efi64.com,$(OUTPUT_DIR)\efi64.map,,,\r
+\r
+#=============\r
+\r
+$(OUTPUT_DIR)\efi64.com2:$(OUTPUT_DIR)\efi64.com\r
+  $(BASETOOLS_DIR)\Split.exe -f $(OUTPUT_DIR)\efi64.com -t $(OUTPUT_DIR)\efi64.com2 -s 135168\r
 \r
-$(BUILD_DIR)\FV\DUETEFIMAINFV.z:$(BUILD_DIR)\FV\DUETEFIMAINFV.Fv\r
-  $(BASETOOLS_DIR)\TianoCompress -e -o $(BUILD_DIR)\FV\DUETEFIMAINFV.z $(BUILD_DIR)\FV\DUETEFIMAINFV.Fv\r
-  \r
-$(BUILD_DIR)\FV\DxeMain.z:$(BUILD_DIR)\IA32\DxeMain.efi  \r
-  $(BASETOOLS_DIR)\TianoCompress -e -o $(BUILD_DIR)\FV\DxeMain.z $(BUILD_DIR)\IA32\DxeMain.efi\r
-  \r
-$(BUILD_DIR)\FV\DxeIpl.z:$(BUILD_DIR)\IA32\DxeIpl.efi  \r
-  $(BASETOOLS_DIR)\TianoCompress -e -o $(BUILD_DIR)\FV\DxeIpl.z $(BUILD_DIR)\IA32\DxeIpl.efi\r
-    \r
-$(BUILD_DIR)\FV\Efildr32:$(BUILD_DIR)\IA32\EfiLoader.efi $(BUILD_DIR)\FV\DxeIpl.z $(BUILD_DIR)\FV\DUETEFIMAINFV.z\r
-  $(BASETOOLS_DIR)\EfiLdrImage.exe -o $(BUILD_DIR)\FV\Efildr32 $(BUILD_DIR)\IA32\EfiLoader.efi $(BUILD_DIR)\FV\DxeIpl.z $(BUILD_DIR)\FV\DxeMain.z $(BUILD_DIR)\FV\DUETEFIMAINFV.z\r
-  \r
-$(BUILD_DIR)\FV\Efildr:$(OUTPUT_DIR)\Start.com $(OUTPUT_DIR)\Efi32.com2 $(BUILD_DIR)\FV\Efildr32\r
-  copy /b $(OUTPUT_DIR)\Start.com+$(OUTPUT_DIR)\Efi32.com2+$(BUILD_DIR)\FV\Efildr32 $(BUILD_DIR)\FV\Efildr\r
     \r
 clean:\r
        if exist $(DEBUG_DIR) rmdir /s /q $(DEBUG_DIR)\r
index bbf8fee35aa220ec8bb50aace3c5d6471784aef0..7960385bd1188cf3c6a0c8416bfdf106cc5c4857 100644 (file)
@@ -597,7 +597,7 @@ InnerLoop1:
 \r
 \r
 \r
-    wbinvd\r
+    ;wbinvd\r
 @@:    \r
     jmp     @b\r
 \r
@@ -690,7 +690,7 @@ looptop:
     mov     byte ptr [edi], bl\r
     add     edi, 2\r
     loop    looptop\r
-    wbinvd\r
+    ;wbinvd\r
     \r
     pop     eax\r
     pop     ebx\r
index 851a84295bcd05ce521909a1d77aa3203cb270df..5fcf5ddf8c4c8ade806b234666bfe808ca18cdd0 100644 (file)
   MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf\r
   MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf\r
   MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf\r
-  MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf\r
   \r
   # ISA Support\r
   DuetPkg/IsaAcpiDxe/IsaAcpi.inf\r
 [BuildOptions.common]\r
   MSFT:*_*_*_CC_FLAGS = /Fa$* /FAsc /FR$(@R).SBR\r
   MSFT:*_*_IA32_CC_FLAGS = /D EFI32\r
-  MSFT:*_*_X64_CC_FLAGS = /D EFI64
\ No newline at end of file
+  MSFT:*_*_X64_CC_FLAGS = /D EFIX64\r
+  MSFT:*_*_IPF_CC_FLAGS = /D EFI64
\ No newline at end of file
index 9a4b3aa985046c4d1d95161eb318c70aba5e7bbe..9072d9823704519cbb484f9cd9361e722203391a 100644 (file)
@@ -108,25 +108,20 @@ INF  MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
 INF  MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf\r
 INF  MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf\r
 INF  MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf\r
-INF  MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf\r
   \r
   # ISA Support\r
 INF  DuetPkg/IsaAcpiDxe/IsaAcpi.inf\r
 INF  IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf\r
 INF  IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf\r
-INF  IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf\r
+#INF  IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf\r
 INF  IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf\r
 \r
-INF  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
-INF  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
-INF  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
+#INF  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
+#INF  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
+#INF  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
 \r
-FILE DRIVER = 961578FE-B6B7-44c3-AF35-6BC705CD2B1F {\r
-  SECTION PE32 = FatBinPkg/EnhancedFatDxe/Ia32/Fat.efi\r
-  }\r
-\r
-#FILE APPLICATION = c57ad6b7-0515-40a8-9d21-551652854e37 {\r
-#  SECTION PE32 = EdkShellBinPkg/FullShell/ia32/Shell_Full.efi\r
+#FILE DRIVER = 961578FE-B6B7-44c3-AF35-6BC705CD2B1F {\r
+#  SECTION PE32 = FatBinPkg/EnhancedFatDxe/Ia32/Fat.efi\r
 #  }\r
 \r
 [Rule.Common.PEI_CORE]\r
index d55dfdb791b161c8c52f7a6b5d13cf2d93d30bd3..b3f8d8cc3e51658701f100a2a7964f8c60ee1b45 100644 (file)
@@ -93,7 +93,7 @@ EfiLoader (
   // Decompress the image\r
   //\r
 \r
-  AsciiSPrint (PrintBuffer, 256, "Decompress BFV image, Image Address=0x%x! Offset=0x%x\n", \r
+  AsciiSPrint (PrintBuffer, 256, "Decompress BFV image, Image Address=0x%x Offset=0x%x\n", \r
                (UINTN)(EFILDR_HEADER_ADDRESS + EFILDRImage->Offset),\r
                EFILDRImage->Offset);\r
   PrintString (PrintBuffer);\r
@@ -145,7 +145,7 @@ EfiLoader (
   //\r
   // Decompress the image\r
   //\r
-  AsciiSPrint (PrintBuffer, 256, "Decompress DxeIpl image, Image Address=0x%x! Offset=0x%x\n", \r
+  AsciiSPrint (PrintBuffer, 256, "Decompress DxeIpl image, Image Address=0x%x Offset=0x%x\n", \r
                (UINTN)(EFILDR_HEADER_ADDRESS + EFILDRImage->Offset),\r
                EFILDRImage->Offset);\r
   PrintString (PrintBuffer);\r
index 2efd099b15ac385d39c0f9ce7607df78f8708027..88ccbdcc179e0b4414888d54884deeeaf1a5ef37 100644 (file)
@@ -1,18 +1,60 @@
-#\r
-# Currently, Build system does not provide post build mechanism for module \r
-# and platform building, so just use a bat file to do post build commands.\r
-# Originally, following post building command is for EfiLoader module.\r
-#\r
-\r
-set BUILD_DIR=%WORKSPACE%\Build\DuetPkg\DEBUG_MYTOOLS\r
-set BASETOOLS_DIR=%WORKSPACE_TOOLS_PATH%\Bin\Win32\r
-set OUTPUT_DIR=%BUILD_DIR%\IA32\DuetPkg\BootSector\BootSector\OUTPUT\r
-\r
-%BASETOOLS_DIR%\TianoCompress -e -o %BUILD_DIR%\FV\DUETEFIMAINFV.z %BUILD_DIR%\FV\DUETEFIMAINFV.Fv\r
-%BASETOOLS_DIR%\TianoCompress -e -o %BUILD_DIR%\FV\DxeMain.z %BUILD_DIR%\IA32\DxeMain.efi\r
-%BASETOOLS_DIR%\TianoCompress -e -o %BUILD_DIR%\FV\DxeIpl.z %BUILD_DIR%\IA32\DxeIpl.efi\r
-%BASETOOLS_DIR%\EfiLdrImage.exe -o %BUILD_DIR%\FV\Efildr32 %BUILD_DIR%\IA32\EfiLoader.efi %BUILD_DIR%\FV\DxeIpl.z %BUILD_DIR%\FV\DxeMain.z %BUILD_DIR%\FV\DUETEFIMAINFV.z\r
-copy /b %OUTPUT_DIR%\Start.com+%OUTPUT_DIR%\Efi32.com2+%BUILD_DIR%\FV\Efildr32 %BUILD_DIR%\FV\Efildr\r
-copy /b %OUTPUT_DIR%\Start16.com+%OUTPUT_DIR%\Efi32.com2+%BUILD_DIR%\FV\Efildr32 %BUILD_DIR%\FV\Efildr16\r
-copy /b %OUTPUT_DIR%\Start32.com+%OUTPUT_DIR%\Efi32.com2+%BUILD_DIR%\FV\Efildr32 %BUILD_DIR%\FV\Efildr20\r
+@REM \r
+@REM  Currently, Build system does not provide post build mechanism for module \r
+@REM  and platform building, so just use a bat file to do post build commands.\r
+@REM  Originally, following post building command is for EfiLoader module.\r
+@REM \r
 \r
+@set BUILD_DIR=%WORKSPACE%\Build\DuetPkg\DEBUG_MYTOOLS\r
+@REM @set BASETOOLS_DIR=%WORKSPACE_TOOLS_PATH%\Bin\Win32\r
+@set BASETOOLS_DIR=m:\tree\BaseTools\Bin\Win32\r
+@set PROCESSOR=""\r
+\r
+@if "%1"=="" goto NoArch\r
+@if "%1"=="IA32" set PROCESSOR=IA32\r
+@if "%1"=="X64" set PROCESSOR=X64\r
+@if %PROCESSOR%=="" goto WrongArch\r
+\r
+@set OUTPUT_DIR=%BUILD_DIR%\%PROCESSOR%\DuetPkg\BootSector\BootSector\OUTPUT\r
+\r
+@echo Compressing DUETEFIMainFv.FV ...\r
+@%BASETOOLS_DIR%\TianoCompress -e -o %BUILD_DIR%\FV\DUETEFIMAINFV.z %BUILD_DIR%\FV\DUETEFIMAINFV.Fv\r
+\r
+@echo Compressing DxeMain.efi ...\r
+@%BASETOOLS_DIR%\TianoCompress -e -o %BUILD_DIR%\FV\DxeMain.z %BUILD_DIR%\%PROCESSOR%\DxeMain.efi\r
+\r
+@echo Compressing DxeIpl.efi ...\r
+@%BASETOOLS_DIR%\TianoCompress -e -o %BUILD_DIR%\FV\DxeIpl.z %BUILD_DIR%\%PROCESSOR%\DxeIpl.efi\r
+\r
+@echo Generate Loader Image ...\r
+@if "%PROCESSOR%"=="IA32" goto GENERATE_IMAGE_IA32\r
+@if "%PROCESSOR%"=="X64" goto GENERATE_IMAGE_X64\r
+\r
+:GENERATE_IMAGE_IA32\r
+@%BASETOOLS_DIR%\EfiLdrImage.exe -o %BUILD_DIR%\FV\Efildr32 %BUILD_DIR%\%PROCESSOR%\EfiLoader.efi %BUILD_DIR%\FV\DxeIpl.z %BUILD_DIR%\FV\DxeMain.z %BUILD_DIR%\FV\DUETEFIMAINFV.z\r
+@copy /b %OUTPUT_DIR%\Start.com+%OUTPUT_DIR%\Efi32.com2+%BUILD_DIR%\FV\Efildr32 %BUILD_DIR%\FV\Efildr\r
+@copy /b %OUTPUT_DIR%\Start16.com+%OUTPUT_DIR%\Efi32.com2+%BUILD_DIR%\FV\Efildr32 %BUILD_DIR%\FV\Efildr16\r
+@copy /b %OUTPUT_DIR%\Start32.com+%OUTPUT_DIR%\Efi32.com2+%BUILD_DIR%\FV\Efildr32 %BUILD_DIR%\FV\Efildr20\r
+@goto end\r
+\r
+:GENERATE_IMAGE_X64\r
+@%BASETOOLS_DIR%\EfiLdrImage.exe -o %BUILD_DIR%\FV\Efildr64 %BUILD_DIR%\%PROCESSOR%\EfiLoader.efi %BUILD_DIR%\FV\DxeIpl.z %BUILD_DIR%\FV\DxeMain.z %BUILD_DIR%\FV\DUETEFIMAINFV.z\r
+@copy /b %OUTPUT_DIR%\Start64.com+%OUTPUT_DIR%\Efi64.com2+%BUILD_DIR%\FV\Efildr64 %BUILD_DIR%\FV\EfildrPure\r
+@%BASETOOLS_DIR%\GenPage.exe %BUILD_DIR%\FV\EfildrPure -o %BUILD_DIR%\FV\Efildr\r
+@copy /b %OUTPUT_DIR%\St16_64.com+%OUTPUT_DIR%\Efi64.com2+%BUILD_DIR%\FV\Efildr64 %BUILD_DIR%\FV\Efildr16Pure\r
+@%BASETOOLS_DIR%\GenPage.exe %BUILD_DIR%\FV\Efildr16Pure -o %BUILD_DIR%\FV\Efildr16\r
+@copy /b %OUTPUT_DIR%\St32_64.com+%OUTPUT_DIR%\Efi64.com2+%BUILD_DIR%\FV\Efildr64 %BUILD_DIR%\FV\Efildr20Pure\r
+@%BASETOOLS_DIR%\GenPage.exe %BUILD_DIR%\FV\Efildr20Pure -o %BUILD_DIR%\FV\Efildr20\r
+@goto end\r
+\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: "PostBuild [IA32|X64]"\r
+:end
\ No newline at end of file