All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Wei Liu <wei.liu2@citrix.com>
Cc: edk2-devel@lists.sourceforge.net, xen-devel@lists.xen.org
Subject: Re: [PATCH] OvmfPkg/PlatformPei: allow platform to specify start of PCI MMIO region
Date: Fri, 8 Nov 2013 13:25:34 -0500	[thread overview]
Message-ID: <20131108182534.GA20234@phenom.dumpdata.com> (raw)
In-Reply-To: <1383932979-10329-1-git-send-email-wei.liu2@citrix.com>

On Fri, Nov 08, 2013 at 05:49:39PM +0000, Wei Liu wrote:
> The original code calculates the start of PCI MMIO region automatically,
> which is not desirable when running under Xen, as Xen is responsible of
> setting up respective regions.

What if Xen (hvmloader) also moves the MMIO to a different place and
size? (Basically make e820_host option work with HVM)?

> 
> This patch makes it possible to specify start of PCI MMIO so OVMF can
> honor the region set up by Xen.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> ---
>  OvmfPkg/OvmfPkg.dec                 |    3 +++
>  OvmfPkg/PlatformPei/Platform.c      |   13 +++++++++++--
>  OvmfPkg/PlatformPei/PlatformPei.inf |    1 +
>  3 files changed, 15 insertions(+), 2 deletions(-)
> 
> diff --git a/OvmfPkg/OvmfPkg.dec b/OvmfPkg/OvmfPkg.dec
> index d874f0c..4a041d1 100644
> --- a/OvmfPkg/OvmfPkg.dec
> +++ b/OvmfPkg/OvmfPkg.dec
> @@ -68,6 +68,9 @@
>    gUefiOvmfPkgTokenSpaceGuid.PcdVirtioScsiMaxTargetLimit|31|UINT16|6
>    gUefiOvmfPkgTokenSpaceGuid.PcdVirtioScsiMaxLunLimit|7|UINT32|7
>  
> +  ## Allow platform to specify where to start PCI MMIO region
> +  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPciMmioBaseAddress|0x0|UINT32|8
> +
>  [PcdsDynamic, PcdsDynamicEx]
>    gUefiOvmfPkgTokenSpaceGuid.PcdEmuVariableEvent|0|UINT64|2
>  
> diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c
> index fb56e99..74001cc 100644
> --- a/OvmfPkg/PlatformPei/Platform.c
> +++ b/OvmfPkg/PlatformPei/Platform.c
> @@ -197,7 +197,7 @@ MemMapInitialization (
>    //
>    // address       purpose   size
>    // ------------  --------  -------------------------
> -  // max(top, 2g)  PCI MMIO  0xFC000000 - max(top, 2g)
> +  // MMIO_START    PCI MMIO  0xFC000000 - MMIO_START
>    // 0xFC000000    gap                           44 MB
>    // 0xFEC00000    IO-APIC                        4 KB
>    // 0xFEC01000    gap                         1020 KB
> @@ -205,7 +205,16 @@ MemMapInitialization (
>    // 0xFED00400    gap                         1023 KB
>    // 0xFEE00000    LAPIC                          1 MB
>    //
> -  AddIoMemoryRangeHob (TopOfMemory < BASE_2GB ? BASE_2GB : TopOfMemory, 0xFC000000);
> +  // if PcdOvmfPciMmioBaseAddress is set
> +  //   MMIO_START = PcdOvmfPciMmioBaseAddress
> +  // else
> +  //   MMIO_START = max(top, 2g)
> +
> +  if (PcdGet32(PcdOvmfPciMmioBaseAddress) > 0)
> +    AddIoMemoryRangeHob (PcdGet32(PcdOvmfPciMmioBaseAddress), 0xFC000000);
> +  else
> +    AddIoMemoryRangeHob (TopOfMemory < BASE_2GB ? BASE_2GB : TopOfMemory, 0xFC000000);
> +
>    AddIoMemoryBaseSizeHob (0xFEC00000, SIZE_4KB);
>    AddIoMemoryBaseSizeHob (0xFED00000, SIZE_1KB);
>    AddIoMemoryBaseSizeHob (PcdGet32(PcdCpuLocalApicBaseAddress), SIZE_1MB);
> diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf b/OvmfPkg/PlatformPei/PlatformPei.inf
> index 3d5cbbb..64d9323 100644
> --- a/OvmfPkg/PlatformPei/PlatformPei.inf
> +++ b/OvmfPkg/PlatformPei/PlatformPei.inf
> @@ -61,6 +61,7 @@
>    gUefiOvmfPkgTokenSpaceGuid.PcdOvmfMemFvBase
>    gUefiOvmfPkgTokenSpaceGuid.PcdOvmfMemFvSize
>    gUefiOvmfPkgTokenSpaceGuid.PcdAcpiPmBaseAddress
> +  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPciMmioBaseAddress
>    gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize
>    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
>    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
> -- 
> 1.7.10.4
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

       reply	other threads:[~2013-11-08 18:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1383932979-10329-1-git-send-email-wei.liu2@citrix.com>
2013-11-08 18:25 ` Konrad Rzeszutek Wilk [this message]
2013-11-08 18:51   ` [PATCH] OvmfPkg/PlatformPei: allow platform to specify start of PCI MMIO region Wei Liu
     [not found]   ` <20131108185102.GL12679@zion.uk.xensource.com>
2013-11-11  9:45     ` Ian Campbell
2013-11-08 17:49 Wei Liu

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-all 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=20131108182534.GA20234@phenom.dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=edk2-devel@lists.sourceforge.net \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.