audk/DuetPkg
rsun3 3a4b9eba07 DuetPkg BootSector:
Update start.asm(S)/start16.asm(S)/start32.asm(S)/efi32.asm(S) under DuetPkg\BootSector to follow the IA32 recommendations on switching to protected mode: Immediately following the MOV CR0 instruction, execute a far JMP or far CALL instruction. (This operation is typically a far jump or call to the next instruction in the instruction stream.)

Signed-off-by: rsun3
Reviewed-by: niruiyu


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12723 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-16 09:38:12 +00:00
..
AcpiResetDxe Update the copyright notice format 2010-04-28 12:39:50 +00:00
BiosVideoThunkDxe fix GCC X64 build broken 2010-06-05 11:06:17 +00:00
BootSector DuetPkg BootSector: 2011-11-16 09:38:12 +00:00
DxeIpl Clean up the private GUID definition in module Level. 2011-09-20 02:12:45 +00:00
EfiLdr add (UINT8 *) type cast to fix ICC build failure. 2011-06-29 07:15:58 +00:00
FSVariable Solve a wrong pointer reference in QueryVariableInfo(). 2011-04-27 05:49:26 +00:00
FvbRuntimeService Update the copyright notice format 2010-04-28 12:39:50 +00:00
Include Clean up the private GUID definition in module Level. 2011-09-20 02:12:45 +00:00
LegacyMetronome Update the copyright notice format 2010-04-28 12:39:50 +00:00
Library Clean up the private GUID definition in module Level. 2011-09-20 02:12:45 +00:00
PciBusNoEnumerationDxe DuetPkg, MdeModulePkg: Fix several enum comparions 2010-10-13 07:08:29 +00:00
PciRootBridgeNoEnumerationDxe DuetPkg: Fix EFIAPI usage inconsistencies 2010-10-16 18:50:16 +00:00
SataControllerDxe According to PI errata 0000690, word "Ide Bus driver" has been replaced with "Driver entity". 2011-11-15 09:42:16 +00:00
SmbiosGenDxe Update the copyright notice format 2010-04-28 12:39:50 +00:00
CreateBootDisk.bat Fix CreateBootDisk.bat not using config variables 2011-07-01 04:48:45 +00:00
CreateBootDisk.sh DuetPkg: Update create boot disk script to not modify bootsect.com 2010-12-06 06:06:54 +00:00
DuetPkg.dec Clean up the private GUID definition in module Level. 2011-09-20 02:12:45 +00:00
DuetPkg.fdf Change DUET DxeIpl to use SerialPort instead of manipulating serial port directly. 2011-06-23 08:31:18 +00:00
DuetPkgIa32.dsc Fix the incorrect usage for PCD PcdResetOnMemoryTypeInformationChange in Duet, Unix and Emulator platform. 2011-08-29 13:36:03 +00:00
DuetPkgX64.dsc Fix DUET X64 build error. 2011-09-05 09:46:55 +00:00
GetVariables.bat Fix CreateBootDisk.bat not using config variables 2011-07-01 04:48:45 +00:00
PostBuild.bat Fix CreateBootDisk.bat not using config variables 2011-07-01 04:48:45 +00:00
PostBuild.sh DuetPkg PostBuild.sh: Use EDK_TOOLS_PATH if defined 2010-10-16 18:50:33 +00:00
ReadMe.txt Avoid using code name in comments. 2011-10-19 05:37:15 +00:00
build32.sh DuetPkg: Add build32.sh and build64.sh 2010-10-16 18:50:55 +00:00
build64.sh DuetPkg: Add build32.sh and build64.sh 2010-10-16 18:50:55 +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 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 IA32" if floppy drive is a: disk and Arch to boot is IA32.
      or
      run "CreateBootDisk.bat floppy a: FAT12 X64" if floppy drive is a: disk and Arch to boot is X64.
3.2 Create usb boot disk
  1). enter <Workspace>\DuetPkg directory.
  2). Plugin usb disk
  3). run "CreateBootDisk.bat usb e: FAT16 IA32" if usb drive is e: and FAT format is FAT16 and Arch to boot is IA32.
      or "CreateBootDisk.bat usb e: FAT16 X64" if usb drive is e: and FAT format is FAT16 and Arch to boot is X64.
      or "CreateBootDisk.bat usb e: FAT32 IA32" if usb drive is e: and FAT format is FAT32 and Arch to boot is IA32.
      or "CreateBootDisk.bat usb e: FAT32 X64" if usb drive is e: and FAT format is FAT32 and Arch to boot is X64.
  4). UnPlug usb disk and plugin it again.
  5). run "CreateBootDisk.bat usb e: FAT16 IA32 step2" if usb drive is e: and FAT format is FAT16 and Arch to boot is IA32.
      or "CreateBootDisk.bat usb e: FAT16 X64 step2" if usb drive is e: and FAT format is FAT16 and Arch to boot is X64.
      or "CreateBootDisk.bat usb e: FAT32 IA32 step2" if usb drive is e: and FAT format is FAT32 and Arch to boot is IA32.
      or "CreateBootDisk.bat usb e: FAT32 X64 step2" if usb drive is e: and FAT format is FAT32 and Arch to boot is X64.
          
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 /EDKII/BaseTools, enter /EDKII/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 /EDKII/BaseTools/gcc/symlinks/ar   /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/ar"
			 "ln -s /EDKII/BaseTools/gcc/symlinks/gcc  /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/gcc"
			 "ln -s /EDKII/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 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 IA32"