public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
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.
>>
>>
>>
>


  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