From: Prem Kumar <perry.prem@gmail.com>
To: afish@apple.com
Cc: liming.gao@intel.com, edk2-devel@lists.01.org
Subject: Re: Building EmulatorPkg and EDK2 project issue.
Date: Mon, 5 Nov 2018 00:11:14 +0530 [thread overview]
Message-ID: <CAG+YCe1H3ogXMiR3MT7J=X8X_eCdnadsr7Q0WwR_iU8Wq1828g@mail.gmail.com> (raw)
In-Reply-To: <3679EADC-76D9-42E2-ADA7-029E7CC0D2C9@apple.com>
Hi Andrew,
Thanks for your reply.
I have tried below way now I'm able to launch Emulator
1. Done full build for EmulatorPkg using command *build -p
EmulatorPkg\EmulatorPkg.dsc -t VS2015x86 -D WIN_SEC_BUILD -a X64 *
2. Build got success without any build error
3. .FD file generated
4. Launching using command
*cd Build\EmulatorX64\DEBUG_VS2017\X64\ && WinHost.exe *
Earlier I was building only one component *WinHost.inf* without building
entire EmulatorPkg, bcz of this .FD was not generated.
*build -p EmulatorPkg\EmulatorPkg.dsc -t VS2015x86 -D WIN_SEC_BUILD -a X64
-m EmulatorPkg/Win/Host/WinHost.inf*
--
Regards,
Prem.
On Sun, Nov 4, 2018 at 11:35 PM Andrew Fish <afish@apple.com> wrote:
>
>
> On Nov 3, 2018, at 1:55 PM, Prem Kumar <perry.prem@gmail.com> 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/
> 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 <ruiyu.ni@intel.com>
> 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 <ruiyu.ni@intel.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
>
> *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 <afish@apple.com> 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 <perry.prem@gmail.com> 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/
>> 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/
>> BootMode 0x00
>> OS Emulator passing in 128 KB of temp RAM at 0x04ab0000 to SEC
>> ERROR : Could not allocate PeiServicesTablePage @ 03000000
>>
>>
>>
>> --
>> Regards,
>> Prem.
>>
>>
>>
>
next prev parent reply other threads:[~2018-11-04 18:41 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-30 14:04 Building EmulatorPkg and EDK2 project issue Prem Kumar
2018-10-30 23:57 ` Gao, Liming
2018-10-31 12:18 ` Prem Kumar
2018-11-03 8:42 ` Prem Kumar
2018-11-03 17:11 ` Andrew Fish
2018-11-03 19:26 ` Prem Kumar
2018-11-03 20:26 ` Andrew Fish
2018-11-03 20:55 ` Prem Kumar
2018-11-03 23:45 ` Tian, Hot
2018-11-04 2:04 ` Prem Kumar
2018-11-04 2:18 ` Prem Kumar
2018-11-04 18:05 ` Andrew Fish
2018-11-04 18:41 ` Prem Kumar [this message]
2018-11-05 6:31 ` Ni, Ruiyu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAG+YCe1H3ogXMiR3MT7J=X8X_eCdnadsr7Q0WwR_iU8Wq1828g@mail.gmail.com' \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox