From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:4864:20::529; helo=mail-ed1-x529.google.com; envelope-from=perry.prem@gmail.com; receiver=edk2-devel@lists.01.org Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id BC98821A07A82 for ; Sun, 4 Nov 2018 10:41:44 -0800 (PST) Received: by mail-ed1-x529.google.com with SMTP id w39-v6so1274436edw.12 for ; Sun, 04 Nov 2018 10:41:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=pfRShEW6+A6wUDJ7qvt9Op172cDu7t+hNm+cDFqqP0w=; b=DUlkx4nARurM4yYuQrbjjCuPilVZkRN7pVtUy4s3J/fnarGD0W8EgFyggjO7MmYjfY 9Pn9n4OV8VJnVaJxNL0ZRIBCP+vNxtmrr7kUGkHydtFj4oq5NzXnv2iicKsqo0nrS+gc +ZKi2omuhvqsH/CWIRALf+IOWaAKwp0gb1OzFRbYP90GnZTSTxNQcMXJ2N7V6HV1AR43 g4hT7NeX+ZnkiMV41YmNb7gfwB42B1r5CIKiTIMS+3kYsOfZyyl26tfjEDrb7/iflH25 9slEPtFbxiAY7Os5jv95RNW5ENZgD4szCfZ2XlV4ncWG4ihNcOfsj0oZYJ4f3O7vUnXD GXCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=pfRShEW6+A6wUDJ7qvt9Op172cDu7t+hNm+cDFqqP0w=; b=O6dFnQX8a7mCOJ9ASo0uFxPBND+aABO9eGxL0p33NYtXJ4GnGZrvpi27FVYjbyL7ci gaCDG+vAfs48RTYckfnVj40P0r2n6nCHkTavJNZHE1DzHfjpWMUGdE3O9RrvUmZeDfap Ed6ZSZjw8jCukHAX+HQRF81WrNF8vBiKofiy5TSB+NXxHedKnucCRR/NSbcyBcP4IY7S DpBIOs50oHAd0fy1D6aRG0qjDHitAz7CfcfU1eF+Iz7UDaLoeIDDWjb+f10jBe5jFhsG ucJVhdh5XyBynlzO80M3Tw8Q/et6RspZJo32YgNzI6yyaNuOuaIuyJopTeXqp6j5vVt6 hweQ== X-Gm-Message-State: AGRZ1gLDGXIQiCsP+WkoPTzM4z0hqKcqdilwovdoCuqwUD828CTCGRuq eAR3ZsW+Zr4Dm/Ymres5eDWPEhuNaNmAvkP2XB8= X-Google-Smtp-Source: AJdET5dUgfE5TKxQm4hSur8YlNcCZOnFghI92ewZ9U3pFAw+/jVLDhzwSDCz6weUS2QM+jNo/G3aA9+9DLzBs541un8= X-Received: by 2002:a17:906:858c:: with SMTP id v12-v6mr12249533ejx.172.1541356902460; Sun, 04 Nov 2018 10:41:42 -0800 (PST) MIME-Version: 1.0 References: <4A89E2EF3DFEDB4C8BFDE51014F606A14E362114@SHSMSX104.ccr.corp.intel.com> <93E95713-95E9-442B-9AA2-2B2C46EFCA20@apple.com> <6AA7E964-7A49-4C24-84EF-F291D615EC3C@apple.com> <3679EADC-76D9-42E2-ADA7-029E7CC0D2C9@apple.com> In-Reply-To: <3679EADC-76D9-42E2-ADA7-029E7CC0D2C9@apple.com> From: Prem Kumar Date: Mon, 5 Nov 2018 00:11:14 +0530 Message-ID: To: afish@apple.com Cc: liming.gao@intel.com, edk2-devel@lists.01.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: Building EmulatorPkg and EDK2 project issue. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Nov 2018 18:41:45 -0000 Content-Type: text/plain; charset="UTF-8" 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 wrote: > > > On Nov 3, 2018, at 1:55 PM, Prem Kumar 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 > 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 > Cc: Michael D Kinney > Reviewed-by: Hao A Wu > > *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 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 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. >> >> >> >