> On Nov 3, 2018, at 1:55 PM, Prem Kumar <[email protected]> wrote:
>
> Hi Andrew,
> Thanks for your explanation.
>
> After building for x64 I could see below error.
>
> C:\UEFIWorkspace\edk2-master_2018_Latest\Build\EmulatorX64\DEBUG_VS2015x86\X64>WinHost.exe
>
> EDK II WIN Host Emulation Environment from http://www.tianocore.org/edk2/
> <http://www.tianocore.org/edk2/>
> BootMode 0x00
> OS Emulator passing in 128 KB of temp RAM at 0x65e70000 to SEC
> ERROR : Can not open Firmware Device File ../FV/FV_RECOVERY.fd (0xE).
> Exiting.
>
>
> I've searched for FV_RECOVERY.fd in entire project and found no such file
> generated after built.
>
Prem,
The FD (Flash Device) image should be constructed by the build, and end up in
the generated Build directory. The start of the path is the target name, and
then a directory that represents some of the flags to the build command.
So the FD should live in: Build\EmulatorX64\DEBUG_VS2015x86\FV\FV_RECOVERY.fd.
If it is not present it would seem like your build failed? Did you get error
messages at the end of the build?
This is the fix for the Bugzilla and it does not seem to relate to your
failure.
/Volumes/Case/UDK2018(vUDK2018)>git show
f4eaaf1a6d50c761e2af9a6dd0976fb8a3bd3c08
commit f4eaaf1a6d50c761e2af9a6dd0976fb8a3bd3c08
Author: Ruiyu Ni <[email protected]>
Date: Fri Aug 31 16:55:36 2018 +0800
Emulator/Win: Fix build failure using VS2015x86 or old WinSDK
When build with WinSDK <= Win10 TH2, the terminal over CMD.exe
doesn't work. Because Win10 later than TH2 starts to support VT
terminal.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <[email protected]>
Cc: Michael D Kinney <[email protected]>
Reviewed-by: Hao A Wu <[email protected]>
diff --git a/EmulatorPkg/Win/Host/WinHost.c b/EmulatorPkg/Win/Host/WinHost.c
index 9b98d5330f..65e8960eff 100644
--- a/EmulatorPkg/Win/Host/WinHost.c
+++ b/EmulatorPkg/Win/Host/WinHost.c
@@ -673,7 +673,7 @@ Returns:
// Transfer control to the SEC Core
//
SwitchStack (
- (SWITCH_STACK_ENTRY_POINT)SecCoreEntryPoint,
+ (SWITCH_STACK_ENTRY_POINT)(UINTN)SecCoreEntryPoint,
SecCoreData,
GetThunkPpiList (),
TopOfStack
diff --git a/EmulatorPkg/Win/Host/WinThunk.c b/EmulatorPkg/Win/Host/WinThunk.c
index 306fe75ecd..6007db73b5 100644
--- a/EmulatorPkg/Win/Host/WinThunk.c
+++ b/EmulatorPkg/Win/Host/WinThunk.c
@@ -71,15 +71,23 @@ SecConfigStdIn (
//
// Disable buffer (line input), echo, mouse, window
//
- Success = SetConsoleMode (
- GetStdHandle (STD_INPUT_HANDLE),
- Mode | ENABLE_VIRTUAL_TERMINAL_INPUT & ~(ENABLE_LINE_INPUT |
ENABLE_ECHO_INPUT | ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT)
- );
- }
- if (Success) {
+ Mode &= ~(ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT | ENABLE_MOUSE_INPUT |
ENABLE_WINDOW_INPUT);
+
+#if defined(NTDDI_VERSION) && defined (NTDDI_WIN10_TH2) && (NTDDI_VERSION >
NTDDI_WIN10_TH2)
//
- // Enable terminal mode
+ // Enable virtual terminal input for Win10 above TH2
//
+ Mode |= ENABLE_VIRTUAL_TERMINAL_INPUT;
+#endif
+
+ Success = SetConsoleMode (GetStdHandle (STD_INPUT_HANDLE), Mode);
+ }
+
+#if defined(NTDDI_VERSION) && defined (NTDDI_WIN10_TH2) && (NTDDI_VERSION >
NTDDI_WIN10_TH2)
+ //
+ // Enable terminal mode for Win10 above TH2
+ //
+ if (Success) {
Success = GetConsoleMode (GetStdHandle (STD_OUTPUT_HANDLE), &Mode);
if (Success) {
Success = SetConsoleMode (
@@ -88,6 +96,7 @@ SecConfigStdIn (
);
}
}
+#endif
return Success ? EFI_SUCCESS : EFI_DEVICE_ERROR;
}
Thanks,
Andrew Fish
> --
> Thanks & Regards,
> Prem.
>
>
>
> On Sun, Nov 4, 2018 at 1:56 AM Andrew Fish <[email protected]
> <mailto:[email protected]>> wrote:
> Prem,
>
> I've not run the emulator on Windows in a very very long time. But lets take
> a look at your error message.
>
> /Volumes/Case/UDK2018(vUDK2018)>git grep "Could not allocate
> PeiServicesTablePage"
> EmulatorPkg/Unix/Host/Host.c:508: printf ("MapFd0(): Could not allocate
> PeiServicesTablePage @ %lx\n", (long unsigned int)EmuMagicPage);
>
> That seems to point to PcdPeiServicesTablePage
> /Volumes/Case/UDK2018(vUDK2018)>git grep PcdPeiServicesTablePage -- *.dec
> EmulatorPkg/EmulatorPkg.dec:73:
> gEmulatorPkgTokenSpaceGuid.PcdPeiServicesTablePage|0x1003000000|UINT64|0x0000101b
>
> Which has a default value of 0x1003000000. But since you built for IA32 it
> gets truncated to 0x03000000
>
> Do you need 32-bit IA32? Can do a 64-bit build and use X64. Something like:
>
> build -p EmulatorPkg\EmulatorPkg.dsc -t VS2015x86 -D WIN_SEC_BUILD -a X64 -m
> EmulatorPkg/Win/Host/WinHost.inf
>
> It looks like that is hard coded address that needs to get allocated in the
> emulator, and in your case that allocation is failing.
>
> Thanks,
>
> Andrew Fish
>
> PS I'm not sure the printf is correct: printf ("MapFd0(): Could not
> allocate PeiServicesTablePage @ %lx\n", (long unsigned int)EmuMagicPage);
> Given the width of long is different on different platforms. UINT64 uses long
> long to make sure things are 64-bits. Not to mention EmuMagicPage is a
> pointer, not an long unsigned int.
>
>
>> On Nov 3, 2018, at 12:26 PM, Prem Kumar <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> Hi Andrew,
>> Thanks for your reply.
>>
>> Below is the error when trying to launch Emulator after successful build,
>>
>> 1.Launching Emulator using below command:
>> C:\UEFIWorkspace\edk2-master_2018_Latest>cd
>> Build\EmulatorIA32\DEBUG_VS2015x86\IA32\ && WinHost.exe
>>
>> EDK II WIN Host Emulation Environment from http://www.tianocore.org/edk2/
>> <http://www.tianocore.org/edk2/>
>> BootMode 0x00
>> OS Emulator passing in 128 KB of temp RAM at 0x04400000 to SEC
>> ERROR : Could not allocate PeiServicesTablePage @ 03000000
>>
>> 2. Launching WinHose.exe directly:
>> C:\UEFIWorkspace\edk2-master_2018_Latest\Build\EmulatorIA32\DEBUG_VS2015x86\IA32>WinHost.exe
>>
>> EDK II WIN Host Emulation Environment from http://www.tianocore.org/edk2/
>> <http://www.tianocore.org/edk2/>
>> BootMode 0x00
>> OS Emulator passing in 128 KB of temp RAM at 0x04ab0000 to SEC
>> ERROR : Could not allocate PeiServicesTablePage @ 03000000
>>
>>
>>
>> --
>> Regards,
>> Prem.
>
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel