Add BlockIO support to the emulator, still needs testing. Also update Emulator start code to only pass 2 args in place of 3. The 3rd argument is not needed. Still need a function as the BaseLib functoin does not have the correct calling conventions. Cleanup build script for binary shell case.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11718 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
andrewfish
2011-05-31 20:23:36 +00:00
parent 283d361e98
commit d59326d3a8
17 changed files with 3128 additions and 34 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -458,7 +458,6 @@ SecLoadFromCore (
(SWITCH_STACK_ENTRY_POINT) (UINTN) PeiCoreEntryPoint,
SecCoreData,
(VOID *)gPpiList,
NULL,
TopOfStack
);
//

View File

@@ -283,7 +283,6 @@ PeiSwitchStacks (
IN SWITCH_STACK_ENTRY_POINT EntryPoint,
IN VOID *Context1, OPTIONAL
IN VOID *Context2, OPTIONAL
IN VOID *Context3, OPTIONAL
IN VOID *NewStack
);

View File

@@ -16,7 +16,7 @@
#------------------------------------------------------------------------------
# Routine Description:
#
# Routine for switching stacks with 3 parameters EFI ABI
# Routine for switching stacks with 2 parameters EFI ABI
# Convert UNIX to EFI ABI
#
# Arguments:
@@ -24,8 +24,7 @@
# (rdi) EntryPoint - Entry point with new stack.
# (rsi) Context1 - Parameter1 for entry point. (rcx)
# (rdx) Context2 - Parameter2 for entry point. (rdx)
# (rcx) Context3 - Parameter3 for entry point. (r8)
# (r8) NewStack - The pointer to new stack.
# (rcx) NewStack - The pointer to new stack.
#
# Returns:
#
@@ -37,11 +36,11 @@ ASM_PFX(PeiSwitchStacks):
pushq $0 // tells gdb to stop unwinding frame
movq %rsp, %rbp
movq %r8, %rsp
movq %rcx, %rsp // update stack pointer
movq %rdi, %rax
movq %rsi, %rcx
movq %rcx, %r8
movq %rdi, %rax // entry point to %rax
movq %rsi, %rcx // Adjust Context1
// Context2 already in the rigth spot
#
# Reserve space for register parameters (rcx, rdx, r8 & r9) on the stack,

View File

@@ -356,9 +356,9 @@
InOsEmuPkg/EmuBusDriverDxe/EmuBusDriverDxe.inf
InOsEmuPkg/EmuGopDxe/EmuGopDxe.inf
InOsEmuPkg/EmuSimpleFileSystemDxe/EmuSimpleFileSystemDxe.inf
InOsEmuPkg/EmuBlockIoDxe/EmuBlockIoDxe.inf
!if $(0)
UnixPkg/UnixBlockIoDxe/UnixBlockIo.inf
UnixPkg/UnixSerialIoDxe/UnixSerialIo.inf
UnixPkg/UnixConsoleDxe/UnixConsole.inf
UnixPkg/UnixSimpleFileSystemDxe/UnixSimpleFileSystem.inf

View File

@@ -253,24 +253,18 @@ INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
INF FatPkg/EnhancedFatDxe/Fat.inf
!else
# Used checked in Visual Studio binaries
INF RuleOverride = BINARY USE = X64 FatBinPkg/EnhancedFatDxe/Fat.inf
FILE DRIVER = 961578FE-B6B7-44c3-AF35-6BC705CD2B1F {
SECTION PE32 = FatBinPkg/EnhancedFatDxe/X64/Fat.efi
}
!endif
!if $(BUILD_NEW_SHELL)
INF ShellPkg/Application/Shell/Shell.inf
!else
!if $(USE_NEW_SHELL)
INF ShellBinPkg/UefiShell/UefiShell.inf
!else
FILE APPLICATION = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile) {
!if $(BUILD_OLD_SHELL)
SECTION PE32 = Build/GccShellPkg/DEBUG_XCLANG/X64/ShellFull.efi
!else
SECTION PE32 = EdkShellBinPkg/FullShell/X64/Shell_Full.efi
!endif
SECTION UI = "Shell"
}
!endif
# Used checked in Visual Studio binaries
FILE APPLICATION = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile) {
SECTION PE32 = EdkShellBinPkg/FullShell/X64/Shell_Full.efi
}
!endif
FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {

View File

@@ -43,7 +43,8 @@ fi
TARGET_TOOLS=MYTOOLS
UNIXPKG_TOOLS=GCC44
NETWORK_SUPPORT=
COMPILE_BINS=
BUILD_NEW_SHELL=
BUILD_FAT=
case `uname` in
CYGWIN*) echo Cygwin not fully supported yet. ;;
Darwin*)
@@ -56,8 +57,9 @@ case `uname` in
TARGET_TOOLS=XCODE32
UNIXPKG_TOOLS=XCLANG
fi
NETWORK_SUPPORT="-D NETWORK_SUPPORT"
COMPILE_BINS="-D COMPILE_BINS"
# NETWORK_SUPPORT="-D NETWORK_SUPPORT"
# BUILD_NEW_SHELL="-D BUILD_NEW_SHELL"
# BUILD_FAT="-D BUILD_FAT"
;;
Linux*) TARGET_TOOLS=ELFGCC ;;
@@ -112,11 +114,6 @@ do
exit $?
fi
if [[ $arg == shell ]]; then
build -p $WORKSPACE/ShellPkg/ShellPkg.dsc -a X64 -t $UNIXPKG_TOOLS -n 3 $2 $3 $4 $5 $6 $7 $8
cp Build/Shell/DEBUG_$UNIXPKG_TOOLS/X64/Shell.efi ShellBinPkg/UefiShell/X64/Shell.efi
exit $?
fi
done
@@ -126,7 +123,7 @@ done
echo $PATH
echo `which build`
build -p $WORKSPACE/InOsEmuPkg/Unix/UnixX64.dsc -a X64 -t $TARGET_TOOLS -D SEC_ONLY -n 3 $1 $2 $3 $4 $5 $6 $7 $8 modules
build -p $WORKSPACE/InOsEmuPkg/Unix/UnixX64.dsc -a X64 -t $UNIXPKG_TOOLS $NETWORK_SUPPORT -n 3 $1 $2 $3 $4 $5 $6 $7 $8
build -p $WORKSPACE/InOsEmuPkg/Unix/UnixX64.dsc -a X64 -t $UNIXPKG_TOOLS $NETWORK_SUPPORT $BUILD_NEW_SHELL $BUILD_FAT -n 3 $1 $2 $3 $4 $5 $6 $7 $8
cp $WORKSPACE/Build/EmuUnixX64/DEBUG_"$TARGET_TOOLS"/X64/SecMain $WORKSPACE/Build/EmuUnixX64/DEBUG_"$UNIXPKG_TOOLS"/X64
exit $?