From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.120; helo=mga04.intel.com; envelope-from=ruiyu.ni@intel.com; receiver=edk2-devel@lists.01.org Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 3693421A09130 for ; Sun, 4 Nov 2018 22:31:53 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Nov 2018 22:31:52 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,467,1534834800"; d="scan'208";a="97656675" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga003.jf.intel.com with ESMTP; 04 Nov 2018 22:31:52 -0800 Received: from FMSMSX110.amr.corp.intel.com (10.18.116.10) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.408.0; Sun, 4 Nov 2018 22:31:51 -0800 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx110.amr.corp.intel.com (10.18.116.10) with Microsoft SMTP Server (TLS) id 14.3.408.0; Sun, 4 Nov 2018 22:31:51 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.117]) by shsmsx102.ccr.corp.intel.com ([169.254.2.84]) with mapi id 14.03.0415.000; Mon, 5 Nov 2018 14:31:49 +0800 From: "Ni, Ruiyu" To: Prem Kumar , "afish@apple.com" CC: "edk2-devel@lists.01.org" , "Gao, Liming" Thread-Topic: [edk2] Building EmulatorPkg and EDK2 project issue. Thread-Index: AQHUcFmC0G6CJLaVR0GqXcE0LBI7q6U38fQAgADO/oCABHqAAIAAjiyAgAAl0QCAABDcgIAAB9+AgAFi+ACAAAn8AIABTDIA Date: Mon, 5 Nov 2018 06:31:48 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5BEF12B7@SHSMSX104.ccr.corp.intel.com> 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: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 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: Mon, 05 Nov 2018 06:31:53 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Sorry I just saw your mails. So now you can successfully build EmulatorPkg using VS2015 and VS2017. And the WinHost.exe can be launched successfully. Correct? I know that the EmulatorPkg may not be launched in certain Windows OSes. The error message is: ERROR : Could not allocate PeiServicesTablePage @ 030= 00000 I haven't got time to look into this. I also saw you ever met this error. How did you solve it? Thanks/Ray > -----Original Message----- > From: edk2-devel On Behalf Of Prem > Kumar > Sent: Monday, November 5, 2018 2:41 AM > To: afish@apple.com > Cc: edk2-devel@lists.01.org; Gao, Liming > Subject: Re: [edk2] Building EmulatorPkg and EDK2 project issue. >=20 > Hi Andrew, > Thanks for your reply. >=20 > I have tried below way now I'm able to launch Emulator >=20 > 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 * >=20 >=20 > 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* >=20 >=20 > -- > Regards, > Prem. >=20 >=20 >=20 > On Sun, Nov 4, 2018 at 11:35 PM Andrew Fish wrote: >=20 > > > > > > 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_VS201 > > 5x86\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 <=3D 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 =3D 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 &=3D ~(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 |=3D ENABLE_VIRTUAL_TERMINAL_INPUT; #endif > > + > > + Success =3D 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 =3D GetConsoleMode (GetStdHandle (STD_OUTPUT_HANDLE), > &Mode); > > if (Success) { > > Success =3D 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 let= s > >> 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 IA3= 2 > >> 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 i= n > >> 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 us= es > >> 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 bui= ld, > >> > >> *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. > >> > >> > >> > > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel