public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Wu, Hao A" <hao.a.wu@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>
Cc: "Justen, Jordan L" <jordan.l.justen@intel.com>,
	Andrew Fish <afish@apple.com>, "Ni, Ray" <ray.ni@intel.com>
Subject: Re: [edk2-devel] [Patch 1/3] EmulatorPkg: Fix VS20xx IA32 boot failure
Date: Wed, 7 Aug 2019 06:18:32 +0000	[thread overview]
Message-ID: <B80AF82E9BFB8E4FBD8C89DA810C6A093C916DEA@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <20190807042028.21988-2-michael.d.kinney@intel.com>

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> Michael D Kinney
> Sent: Wednesday, August 07, 2019 12:20 PM
> To: devel@edk2.groups.io
> Cc: Justen, Jordan L; Andrew Fish; Ni, Ray
> Subject: [edk2-devel] [Patch 1/3] EmulatorPkg: Fix VS20xx IA32 boot failure
> 
> https://bugzilla.tianocore.org/show_bug.cgi?id=2056
> 
> The IA32 build of the EmulatorPkg for VS20xx does not boot
> because the default value of PCD PcdPeiServicesTablePage
> is set for X64 Windows Host environments.  If the
> EmulatorPkg is build for an IA32 Windows Host environment,
> then set this PCD to 0x13000000 that can be mapped into a
> 32-bit user process.


Hello Mike,

I have a question for this patch.

For the main() function within file EmulatorPkg/Win/Host/WinHost.c, I saw
the below codes:

  EmuMagicPage = (VOID *)(UINTN)(FixedPcdGet64 (PcdPeiServicesTablePage) & MAX_UINTN);
  if (EmuMagicPage != NULL) {
    UINT64  Size;
    Status = WinNtOpenFile (
              NULL,
              SIZE_4KB,
              0,
              &EmuMagicPage,
              &Size
              );
    if (EFI_ERROR (Status)) {
      SecPrint ("ERROR : Could not allocate PeiServicesTablePage @ %p\n", EmuMagicPage);
      return EFI_DEVICE_ERROR;
    }
  }

My understanding is that the WinNtOpenFile() function call is attempting
to map the address specified by 'EmuMagicPage'. For IA32 case, the value
in 'EmuMagicPage' here has already been truncated (0x03000000). If the
WinNtOpenFile() call returned successfully, the address should be mapped.

Is it the case that even if WinNtOpenFile() returns with no error, the
specified address (0x03000000) is not actually being mapped?

Best Regards,
Hao Wu


> 
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Cc: Andrew Fish <afish@apple.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
> ---
>  EmulatorPkg/EmulatorPkg.dsc | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/EmulatorPkg/EmulatorPkg.dsc b/EmulatorPkg/EmulatorPkg.dsc
> index ea8b6ce76e..c4ec10d1d8 100644
> --- a/EmulatorPkg/EmulatorPkg.dsc
> +++ b/EmulatorPkg/EmulatorPkg.dsc
> @@ -4,7 +4,7 @@
>  # The Emulation Platform can be used to debug individual modules, prior to
> creating
>  # a real platform. This also provides an example for how an DSC is created.
>  #
> -# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
>  # Portions copyright (c) 2010 - 2011, Apple Inc. All rights reserved.<BR>
>  #
>  # SPDX-License-Identifier: BSD-2-Clause-Patent
> @@ -225,6 +225,10 @@ [PcdsFixedAtBuild]
>    #  0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
>    gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1
> 
> +!if "IA32" in $(ARCH) && "MSFT" in $(FAMILY)
> +  gEmulatorPkgTokenSpaceGuid.PcdPeiServicesTablePage|0x13000000
> +!endif
> +
>  [PcdsDynamicDefault.common.DEFAULT]
>    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|
> 0
> --
> 2.21.0.windows.1
> 
> 
> 


  reply	other threads:[~2019-08-07  6:18 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-07  4:20 [Patch 0/3] EmulatorPkg: Fix VS20xx IA32 boot and simplify build config Michael D Kinney
2019-08-07  4:20 ` [Patch 1/3] EmulatorPkg: Fix VS20xx IA32 boot failure Michael D Kinney
2019-08-07  6:18   ` Wu, Hao A [this message]
2019-08-07  7:42     ` [edk2-devel] " Michael D Kinney
2019-08-07  8:15       ` Wu, Hao A
2019-08-07 15:52         ` Michael D Kinney
2019-08-08  2:27           ` Michael D Kinney
2019-08-07  4:20 ` [Patch 2/3] EmulatorPkg: Remove UNIX_SEC_BUILD/WIN_SEC_BUILD Michael D Kinney
2019-08-07  6:41   ` [edk2-devel] " Wu, Hao A
2019-08-07  7:45     ` Michael D Kinney
2019-08-07  7:59       ` Wu, Hao A
2019-08-08  2:28         ` Michael D Kinney
2019-08-07  4:20 ` [Patch 3/3] EmulatorPkg: Add -D DISABLE_NEW_DEPRECATED_INTERFACES Michael D Kinney
2019-08-07  7:58   ` [edk2-devel] " Wu, Hao A
2019-08-08  2:31     ` Michael D Kinney

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=B80AF82E9BFB8E4FBD8C89DA810C6A093C916DEA@SHSMSX104.ccr.corp.intel.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