audk/DuetPkg
Star Zeng 053d95e7e5 DuetPkg FSVariable: return error for empty str VariableName to GetVariable
Current GetVariable implementation will return the first variable for
empty str VariableName, it is because GetVariable and GetNextVariablename
are sharing same function FindVariable.
But UEFI sepc defines SetVariable that If VariableName is an empty string,
then EFI_INVALID_PARAMETER is returned, that means an empty string variable
could never be set successfully, so GetVariable should return error for
empty string VariableName.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
2016-05-15 17:48:53 +08:00
..
AcpiResetDxe
BiosVideoThunkDxe Fixed one code error, should use & instead of |. 2014-07-10 01:25:41 +00:00
BootSector
DxeIpl Prevent EBDA area being overwritten, get the size info from the address 0x40E. If can’t get the size info, then use the default value for it. 2014-10-15 05:17:41 +00:00
EfiLdr DuetPkg: Fix GCC error to avoid the duplicated global variables in EfiLdr 2015-12-18 02:28:44 +00:00
FSVariable DuetPkg FSVariable: return error for empty str VariableName to GetVariable 2016-05-15 17:48:53 +08:00
FvbRuntimeService
Include
LegacyMetronome
Library DuetPkg: Use the new PCDs defined in MdePkg. 2015-05-06 03:26:49 +00:00
PciBusNoEnumerationDxe DuetPkg-PciBusNoEnumerationDxe: Fix stack overflow 2016-02-26 10:39:15 +08:00
PciRootBridgeNoEnumerationDxe
SataControllerDxe DuetPkg: SataControllerDxe: fix private array subscripting 2015-09-22 11:18:13 +00:00
SmbiosGenDxe DuetPkg: Fix GCC error to avoid the duplicated global variable in SmbiosGenDxe 2015-12-18 02:29:12 +00:00
Contributions.txt */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
CreateBootDisk.bat Change NT32 and DUET to use UEFI Shell by default. Use "-D USE_OLD_SHELL" for NT32 to use EDK Shell. 2014-11-25 08:53:33 +00:00
CreateBootDisk.sh Change NT32 and DUET to use UEFI Shell by default. Use "-D USE_OLD_SHELL" for NT32 to use EDK Shell. 2014-11-25 08:53:33 +00:00
DuetPkg.dec
DuetPkg.fdf DuetPkg: Convert to build FatPkg from source 2016-04-08 13:47:31 +02:00
DuetPkgIa32.dsc DuetPkg: Convert to build FatPkg from source 2016-04-08 13:47:31 +02:00
DuetPkgX64.dsc DuetPkg: Convert to build FatPkg from source 2016-04-08 13:47:31 +02:00
GetVariables.bat
License.txt
PostBuild.bat
PostBuild.sh DuetPkg scripts: Support building with GCC45 - GCC49 2016-04-08 13:47:19 +02:00
ReadMe.txt
build32.sh DuetPkg scripts: Support building with GCC45 - GCC49 2016-04-08 13:47:19 +02:00
build64.sh DuetPkg scripts: Support building with GCC45 - GCC49 2016-04-08 13:47:19 +02: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, GCC44 is required:
  1). Base on below link to create GCC44 build environment.
      http://tianocore.sourceforge.net/wiki/Using_EDK_II_with_Native_GCC

2. Build steps

2.1 Build Duet Platform module   

  1). Open the terminal.
  2). enter workspace root directory such as /edk2_tree
  3). run ". edksetup.sh BaseTools"
  4). run "build -p DuetPkg/DuetPkg.dsc -a IA32 -t GCC44" for IA32 architecture platform or 
          "build -p DuetPkg/DuetPkg.dsc -a X64 -t GCC44" for X64 architecture platform.
  
2.2 Execute post build actions  
  1). enter /edk2_tree/DuetPkg directory.
  2). run "./PostBuild.sh IA32 GCC44" for IA32 architecture platform or 
          "./PostBuild.sh X64 GCC44" for X64 architecture platform.

 NOTE: After post build action, you should check the size of EfiLdr at $WORKSPACE/Build/DuetPkg/DEBUG_GCC44 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 /edk2_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"