From ab9cb4b1fd901170cc03b134066066b064909244 Mon Sep 17 00:00:00 2001 From: klu2 Date: Thu, 18 Mar 2010 02:36:52 +0000 Subject: [PATCH] Separate IA32/X64 architecture into two DSC file to avoid the their output mixup. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10272 6f19259b-4bc3-4df7-8a09-765794883524 --- DuetPkg/CreateBootDisk.bat | 3 +- DuetPkg/CreateBootDisk.sh | 47 +++-- DuetPkg/{DuetPkg.dsc => DuetPkgIa32.dsc} | 4 +- DuetPkg/DuetPkgX64.dsc | 219 +++++++++++++++++++++++ DuetPkg/PostBuild.bat | 4 +- DuetPkg/PostBuild.sh | 44 ++--- 6 files changed, 280 insertions(+), 41 deletions(-) rename DuetPkg/{DuetPkg.dsc => DuetPkgIa32.dsc} (97%) create mode 100644 DuetPkg/DuetPkgX64.dsc diff --git a/DuetPkg/CreateBootDisk.bat b/DuetPkg/CreateBootDisk.bat index ec8483d785..4c5f2ce87f 100644 --- a/DuetPkg/CreateBootDisk.bat +++ b/DuetPkg/CreateBootDisk.bat @@ -15,7 +15,6 @@ @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="" @@ -30,6 +29,8 @@ @if "%4"=="IA32" set PROCESSOR=IA32 @if "%4"=="X64" set PROCESSOR=X64 @if %PROCESSOR%=="" goto WrongArch +@set BUILD_DIR=%WORKSPACE%\Build\DuetPkg%PROCESSOR%\DEBUG_MYTOOLS + @if "%1"=="floppy" goto CreateFloppy @if "%1"=="file" goto CreateFile @if "%1"=="usb" goto CreateUsb diff --git a/DuetPkg/CreateBootDisk.sh b/DuetPkg/CreateBootDisk.sh index 0903805576..ba71bc17c1 100755 --- a/DuetPkg/CreateBootDisk.sh +++ b/DuetPkg/CreateBootDisk.sh @@ -1,21 +1,21 @@ -#! /bin/sh - -## @file -# -# Copyright (c) 2010 Intel Corporation. All rights reserved.
-# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -# -## +#! /bin/sh + +## @file +# +# Copyright (c) 2010 Intel Corporation. All rights reserved.
+# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +# +## # Set up environment at fisrt. -export BUILD_DIR=$WORKSPACE/Build/DuetPkg/DEBUG_UNIXGCC + export BASETOOLS_DIR=$WORKSPACE/Conf/BaseToolsSource/Source/C/bin export BOOTSECTOR_BIN_DIR=$WORKSPACE/DuetPkg/BootSector/bin export DISK_LABEL=DUET @@ -33,6 +33,21 @@ then PROCESS_MARK=FALSE fi +case "$5" in + IA32) + export PROCESSOR=IA32 + ;; + X64) + export PROCESSOR=X64 + ;; + *) + echo Invalid Architecture string, should be only IA32 or X64 + return 1 +esac + +export BUILD_DIR=$WORKSPACE/Build/DuetPkg$PROCESSOR/DEBUG_UNIXGCC + + export EFI_BOOT_MEDIA=$2 export EFI_BOOT_DEVICE=$3 diff --git a/DuetPkg/DuetPkg.dsc b/DuetPkg/DuetPkgIa32.dsc similarity index 97% rename from DuetPkg/DuetPkg.dsc rename to DuetPkg/DuetPkgIa32.dsc index fd638a1890..4581a10c57 100644 --- a/DuetPkg/DuetPkg.dsc +++ b/DuetPkg/DuetPkgIa32.dsc @@ -21,8 +21,8 @@ PLATFORM_GUID = 199E24E0-0989-42aa-87F2-611A8C397E72 PLATFORM_VERSION = 0.3 DSC_SPECIFICATION = 0x00010005 - OUTPUT_DIRECTORY = Build/DuetPkg - SUPPORTED_ARCHITECTURES = IA32|X64 + OUTPUT_DIRECTORY = Build/DuetPkgIA32 + SUPPORTED_ARCHITECTURES = IA32 BUILD_TARGETS = DEBUG SKUID_IDENTIFIER = DEFAULT FLASH_DEFINITION = DuetPkg/DuetPkg.fdf diff --git a/DuetPkg/DuetPkgX64.dsc b/DuetPkg/DuetPkgX64.dsc new file mode 100644 index 0000000000..6e2103f593 --- /dev/null +++ b/DuetPkg/DuetPkgX64.dsc @@ -0,0 +1,219 @@ +## @file +# An EFI/Framework Emulation Platform with UEFI HII interface supported. +# +# Developer's UEFI Emulation. DUET provides an EFI/UEFI IA32/X64 environment on legacy BIOS, +# to help developing and debugging native EFI/UEFI drivers. +# +# Copyright (c) 2010 - 2010, Intel Corporation. All rights reserved.
+# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +## + +[Defines] + PLATFORM_NAME = DuetPkg + PLATFORM_GUID = 199E24E0-0989-42aa-87F2-611A8C397E72 + PLATFORM_VERSION = 0.3 + DSC_SPECIFICATION = 0x00010005 + OUTPUT_DIRECTORY = Build/DuetPkgX64 + SUPPORTED_ARCHITECTURES = X64 + BUILD_TARGETS = DEBUG + SKUID_IDENTIFIER = DEFAULT + FLASH_DEFINITION = DuetPkg/DuetPkg.fdf + +[LibraryClasses] + BaseLib|MdePkg/Library/BaseLib/BaseLib.inf + SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf + PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf + UefiLib|MdePkg/Library/UefiLib/UefiLib.inf + UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf + UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf + UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf + HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf + UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf + DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf + UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf + UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf + UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf + ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf + PlatformBdsLib|DuetPkg/Library/DuetBdsLib/PlatformBds.inf + GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf + PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf + PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf + PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf + OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf + IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf + PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf + PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf + TimerLib|DuetPkg/Library/DuetTimerLib/DuetTimerLib.inf + UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf + DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf + + # + # To save size, use NULL library for DebugLib and ReportStatusCodeLib. + # If need status code output, do library instance overriden as below DxeMain.inf does + # + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf + ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf + +[LibraryClasses.common.DXE_CORE] + HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf + DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf + MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf + UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf + ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf + +[PcdsFixedAtBuild] + gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x0 + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0 + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x0 + +[PcdsFeatureFlag] + gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE + + +################################################################################################### +# +# Components Section - list of the modules and components that will be processed by compilation +# tools and the EDK II tools to generate PE32/PE32+/Coff image files. +# +# Note: The EDK II DSC file is not used to specify how compiled binary images get placed +# into firmware volume images. This section is just a list of modules to compile from +# source into UEFI-compliant binaries. +# It is the FDF file that contains information on combining binary files into firmware +# volume images, whose concept is beyond UEFI and is described in PI specification. +# Binary modules do not need to be listed in this section, as they should be +# specified in the FDF file. For example: Shell binary (Shell_Full.efi), FAT binary (Fat.efi), +# Logo (Logo.bmp), and etc. +# There may also be modules listed in this section that are not required in the FDF file, +# When a module listed here is excluded from FDF file, then UEFI-compliant binary will be +# generated for it, but the binary will not be put into any firmware volume. +# +################################################################################################### + +[Components] + DuetPkg/DxeIpl/DxeIpl.inf { + + # + # If no following overriden for ReportStatusCodeLib library class, + # All other module can *not* output debug information even they are use not NULL library + # instance for DebugLib and ReportStatusCodeLib + # + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf + } + + MdeModulePkg/Core/Dxe/DxeMain.inf { + # + # Enable debug output for DxeCore module, this is a sample for how to enable debug output + # for a module. If need turn on debug output for other module, please copy following overriden + # PCD and library instance to other module's override section. + # + + gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07 + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000042 + + DebugLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf + ReportStatusCodeLib|DuetPkg/Library/DxeCoreReportStatusCodeLibFromHob/DxeCoreReportStatusCodeLibFromHob.inf + SerialPortLib|PcAtChipsetPkg/Library/SerialIoLib/SerialIoLib.inf + } + + MdeModulePkg/Universal/PCD/Dxe/Pcd.inf + MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf + MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf + MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf + + DuetPkg/FSVariable/FSVariable.inf + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf + MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf + MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf { + + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + } + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf + + IntelFrameworkModulePkg/Universal/DataHubDxe/DataHubDxe.inf + MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf + MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf + MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf + MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf + + + DuetPkg/SmbiosGenDxe/SmbiosGen.inf + #DuetPkg/FvbRuntimeService/DUETFwh.inf + DuetPkg/EfiLdr/EfiLdr.inf { + + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf + NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf + } + IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf { + + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + } + MdeModulePkg/Universal/EbcDxe/EbcDxe.inf + UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf + DuetPkg/CpuDxe/Cpu.inf + PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf + DuetPkg/AcpiResetDxe/Reset.inf + DuetPkg/LegacyMetronome/Metronome.inf + + PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf + PcAtChipsetPkg/8254TimerDxe/8254Timer.inf + DuetPkg/PciRootBridgeNoEnumerationDxe/PciRootBridgeNoEnumeration.inf + DuetPkg/PciBusNoEnumerationDxe/PciBusNoEnumeration.inf + IntelFrameworkModulePkg/Bus/Pci/VgaMiniPortDxe/VgaMiniPortDxe.inf + IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.inf + + # IDE Support + IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf + PcAtChipsetPkg/Bus/Pci/IdeControllerDxe/IdeControllerDxe.inf + + # Usb Support + MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf + MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf + MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf + MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf + MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf + + # ISA Support + PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf + IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf + IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf + IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf + IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf + + MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf + MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf + MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf + + # Bios Thunk + DuetPkg/BiosVideoThunkDxe/BiosVideo.inf + + # + # Sample Application + # + MdeModulePkg/Application/HelloWorld/HelloWorld.inf + +[BuildOptions] + MSFT:*_*_*_CC_FLAGS = /FAsc /FR$(@R).SBR + diff --git a/DuetPkg/PostBuild.bat b/DuetPkg/PostBuild.bat index 4ef56c984f..4997e132a2 100644 --- a/DuetPkg/PostBuild.bat +++ b/DuetPkg/PostBuild.bat @@ -16,7 +16,6 @@ @REM # @REM ## -@set BUILD_DIR=%WORKSPACE%\Build\DuetPkg\DEBUG_MYTOOLS @set BASETOOLS_DIR=%WORKSPACE_TOOLS_PATH%\Bin\Win32 @set BOOTSECTOR_BIN_DIR=%WORKSPACE%\DuetPkg\BootSector\bin @set PROCESSOR="" @@ -26,6 +25,9 @@ @if "%1"=="X64" set PROCESSOR=X64 @if %PROCESSOR%=="" goto WrongArch +@set BUILD_DIR=%WORKSPACE%\Build\DuetPkg%PROCESSOR%\DEBUG_MYTOOLS + + @echo Compressing DUETEFIMainFv.FV ... @%BASETOOLS_DIR%\LzmaCompress -e -o %BUILD_DIR%\FV\DUETEFIMAINFV.z %BUILD_DIR%\FV\DUETEFIMAINFV.Fv diff --git a/DuetPkg/PostBuild.sh b/DuetPkg/PostBuild.sh index 40af9f9dd7..c95bd63af8 100755 --- a/DuetPkg/PostBuild.sh +++ b/DuetPkg/PostBuild.sh @@ -1,25 +1,24 @@ #!/bin/sh - -## @file -# -# Currently, Build system does not provide post build mechanism for module -# and platform building, so just use a sh file to do post build commands. -# Originally, following post building command is for EfiLoader module. -# -# Copyright (c) 2010 Intel Corporation. All rights reserved.
-# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -## - - - -export BUILD_DIR=$WORKSPACE/Build/DuetPkg/DEBUG_UNIXGCC + +## @file +# +# Currently, Build system does not provide post build mechanism for module +# and platform building, so just use a sh file to do post build commands. +# Originally, following post building command is for EfiLoader module. +# +# Copyright (c) 2010 Intel Corporation. All rights reserved.
+# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +## + + + export BASETOOLS_DIR=$WORKSPACE/Conf/BaseToolsSource/Source/C/bin export BOOTSECTOR_BIN_DIR=$WORKSPACE/DuetPkg/BootSector/bin export PROCESSOR="" @@ -46,6 +45,9 @@ case "$1" in return 1 esac +export BUILD_DIR=$WORKSPACE/Build/DuetPkg$PROCESSOR/DEBUG_UNIXGCC + + # # Boot sector module could only be built under IA32 tool chain # -- 2.39.2