audk/DuetPkg
xli24 d5172f911d 1. Remove .extern from GCC assembly.
2. Define macro for .global/.globl in GCC assembly.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8344 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-20 09:42:59 +00:00
..
BiosVideoThunkDxe Fix BiosVideo thunk bug about invalid legacy region area. 2009-04-16 04:46:18 +00:00
BootSector 1. Remove .extern from GCC assembly. 2009-05-20 09:42:59 +00:00
CpuDxe Remove macro usage of EFI32, EFI64 in duet package. 2009-04-16 06:27:51 +00:00
DataHubGenDxe fix ICC build warning 2009-04-29 08:05:00 +00:00
DxeIpl Fix building warning for mismatching paramter pointer type 2009-03-30 06:04:55 +00:00
EfiLdr Delete useless files. 2009-05-06 09:46:04 +00:00
FSVariable Fix a bug that L"PlatformLang" must be a null-terminated ASCII string according to UEFI spec. 2009-05-04 05:56:36 +00:00
FvbRuntimeService retire gEfiAlternateFvBlockGuid. All platform FvbRuntimeDxe drivers will not produce such protocol to signify itself support writable FVB protocol. 2009-03-12 05:10:53 +00:00
Include Remove the duplicated EdidActive.h & EdidDiscovery.h in DuetPkg. MdePkg has already defined these two files with the exactly same contents. 2009-05-08 01:23:49 +00:00
LegacyMetronome 1, Remove DxeReportStatus driver, because DxeIpl has published a instance from hob. And new status code library will use this instance from hob. 2009-01-07 09:36:44 +00:00
Library remove Bmp.h and ShellFile.h From MdeModulePkg to IntelFrameworkPkg 2009-03-02 06:16:21 +00:00
PciBusNoEnumerationDxe Update DUET PCI Bus Driver to use PeCoffLib instead of parsing the PE/COFF image itself 2009-02-05 19:31:45 +00:00
PciRootBridgeNoEnumerationDxe remove PCI_MAX_SEGMENT from Industry Standard file. 2009-03-02 03:19:37 +00:00
RtPlatformStatusCode Remove use of EFI_BOOTSERVICE and EFI_RUNTIMESERVICE. This is not managed through module types. 2008-12-07 22:34:12 +00:00
CreateBootDisk.bat Update step for FAT32 usb. 2009-03-01 08:04:03 +00:00
CreateBootDisk.sh Add code for floppy format process. 2009-03-31 06:38:37 +00:00
DuetPkg.dec Refine comments. 2009-03-03 02:33:58 +00:00
DuetPkg.dsc Ported LZMA to DUET platform. 2009-05-06 03:44:47 +00:00
DuetPkg.fdf 1. Open USB related and logo support FVs, remove some useless FVs. 2009-05-06 09:03:11 +00:00
PostBuild.bat Ported LZMA to DUET platform. 2009-05-06 03:44:47 +00:00
PostBuild.sh 1. Open USB related and logo support FVs, remove some useless FVs. 2009-05-06 09:03:11 +00:00
ReadMe.txt Add a note for Duet build under Linux environment. 2009-04-20 02:33:08 +00:00

ReadMe.txt

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Developer's UEFI Emulation (DUET) on Edk2

A. Build DUET image on Windows Platform
========================================
1. Tools preparation

To build DUET image, following tools are required:

  1). *Visual Studio 2005*
      Assume installed at <VS_PATH>, 
      e.g.: C:\Program Files\Microsoft Visual Studio .NET 2003\.
  2). WinDDK
      Assume installed at <WIN_DDK_PATH>, e.g.: C:\WINDDK\3790.1830\.
      
2. Build steps

2.1 Build Duet Platform module   

  1). run cmd.exe to open command line window.
  2). enter workspace root directory such as c:\edk2_tree
  2). run "edksetup.bat"
  3). run "build -p DuetPkg\DuetPkg.dsc -a IA32" for IA32 architecture platform or 
          "build -p DuetPkg\DuetPkg.dsc -a X64" for X64 architecture platform.

2.2 Build BootSector
  1). run "build -p DuetPkg\DuetPkg.dsc -m DuetPkg\BootSector\BootSector.inf -a IA32"
  
2.3 Execute post build actions  
  1). enter <Workspace>\DuetPkg directory.
  2). run "PostBuild.bat IA32" for IA32 architecture platform or 
          "PostBuild.bat X64" for X64 architecture platform.

Create bootable disk
======================
  
3. Create boot disk
  The following steps are same for IA32 architecture platform or X64 architecture platform.
  
3.1 Create floppy boot disk
  1). enter <Workspace>\DuetPkg directory.
  2). Insert a floppy disk to drive
  3). run "CreateBootDisk.bat floppy a: FAT12" if floppy drive is a: disk.
  
3.2 Create usb boot disk
  1). enter <Workspace>\DuetPkg directory.
  2). Plugin usb disk
  3). run "CreateBootDisk.bat usb e: FAT16" if usb drive is e: and FAT format is FAT16 or
          "CreateBootDisk.bat usb e: FAT32" if usb drive is e: and FAT format is FAT32
  4). UnPlug usb disk and plugin it again.
  5). run "CreateBootDisk.bat usb e: FAT16 step2" if usb drive is e: and FAT format is FAT16 or 
          "CreateBootDisk.bat usb e: FAT32 step2" if usb drive is e: and FAT format is FAT32.
          
          
B. Build DUET image on Linux Platform
======================================        
1. Tools preparation

	To build DUET image, Mingw GCC is required:
	
		1).  Check out build tools project from svn repository: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools
		2).  Assume check out directory is /R9/BaseTools, enter /R9/BaseTools/gcc directory. Please refer to README.txt install all the necessary
			 build packages following:
			 * Python 2.5
			 * texinfo
             * bison
             * flex
             * libmpfr
             * libgmp 
             * As well as (possibly) others tools and development packages
             
		3).  Run mingw-gcc-install.py from gcc folder, this script will download/build/install MingwGCC and BinUtil automatically
		4).  Create symbol link in linux environment at /opt to match default setting in tools_def.txt
			 "ln -s /R9/BaseTools/gcc/symlinks/ar   /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/ar"
			 "ln -s /R9/BaseTools/gcc/symlinks/gcc  /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/gcc"
			 "ln -s /R9/BaseTools/gcc/symlinks/ld   /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/ld"
		
	
2. Build steps

2.1 Build Duet Platform module   

  1). run cmd.exe to open command line window.
  2). enter workspace root directory such as /R9_tree
  2). run "edksetup.sh BaseTools"
  3). run "build -p DuetPkg/DuetPkg.dsc -a IA32 -t UNIXGCC" for IA32 architecture platform or 
          "build -p DuetPkg/DuetPkg.dsc -a X64 -t UNIXGCC" for X64 architecture platform.

2.2 Build BootSector
  1). run "build -p DuetPkg/DuetPkg.dsc -m DuetPkg/BootSector/BootSector.inf -a IA32 -t UNIXGCC"
  
2.3 Execute post build actions  
  1). enter /R9_tree/DuetPkg directory.
  2). run "./PostBuild.sh IA32" for IA32 architecture platform or 
          "./PostBuild.sh X64" for X64 architecture platform.

 NOTE: After post build action, you should check the size of EfiLdr at $WORKSPACE/Build/DuetPkg/DEBUG_UNIXGCC directory, it must less than 470k.
       If not, you should manually remove some unnecessary drivers at DuetPkg.fdf file.
 
3. Create bootable disk
   The following steps are same for IA32 architecture platform or X64 architecture platform.
   Now only support floopy.
   
   3.1 Create floppy boot disk
	  1). enter /R9_tree/DuetPkg directory.
	  2). Insert a floppy disk to drive
	  3). run "CreateBootDisk.sh" to build floppy drive
		  such as "./CreateBootDisk.sh floppy /media/floppy0 /dev/fd0 FAT12"