From: Alexander Graf <agraf@suse.de>
To: Alexey Kardashevskiy <aik@ozlabs.ru>, qemu-devel@nongnu.org
Cc: qemu-ppc@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2] spapr-pci: Enable huge BARs
Date: Mon, 15 Dec 2014 15:55:19 +0100 [thread overview]
Message-ID: <548EF657.4040300@suse.de> (raw)
In-Reply-To: <548B6C72.7020601@ozlabs.ru>
On 12.12.14 23:30, Alexey Kardashevskiy wrote:
> On 12/12/2014 08:38 PM, Alexey Kardashevskiy wrote:
>> At the moment sPAPR only supports 512MB window for MMIO BARs. However
>> modern devices might want bigger 64bit BARs.
>>
>> This extends MMIO window from 512MB to 62GB (aligned to
>> SPAPR_PCI_WINDOW_SPACING) and advertises it in 2 records in
>> the PHB's "ranges" property. 32bit has all the space from
>> SPAPR_PCI_MEM_WIN_BUS_OFFSET till the end of 4GB, 64bit has the rest
>> of the window.
>>
>> Suggested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
>> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
>> ---
>> Changes:
>> v2:
>> * do not change existing memory layout
>> * do not create another mmio window
>> ---
>> hw/ppc/spapr_pci.c | 8 +++++++-
>> include/hw/pci-host/spapr.h | 7 ++++---
>> 2 files changed, 11 insertions(+), 4 deletions(-)
>>
>> diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
>> index 21b95b3..3641f87 100644
>> --- a/hw/ppc/spapr_pci.c
>> +++ b/hw/ppc/spapr_pci.c
>> @@ -862,6 +862,7 @@ int spapr_populate_pci_dt(sPAPRPHBState *phb,
>> int bus_off, i, j;
>> char nodename[256];
>> uint32_t bus_range[] = { cpu_to_be32(0), cpu_to_be32(0xff) };
>> + const uint32_t win32size = (1ULL << 32) - SPAPR_PCI_MEM_WIN_BUS_OFFSET;
>> struct {
>> uint32_t hi;
>> uint64_t child;
>> @@ -876,7 +877,12 @@ int spapr_populate_pci_dt(sPAPRPHBState *phb,
>> {
>> cpu_to_be32(b_ss(2)), cpu_to_be64(SPAPR_PCI_MEM_WIN_BUS_OFFSET),
>> cpu_to_be64(phb->mem_win_addr),
>> - cpu_to_be64(memory_region_size(&phb->memwindow)),
>> + cpu_to_be64(win32size),
>> + },
>> + {
>> + cpu_to_be32(b_ss(3)), cpu_to_be64(1ULL << 32),
>> + cpu_to_be64(phb->mem_win_addr + win32size),
>> + cpu_to_be64(memory_region_size(&phb->memwindow) - win32size)
This also changes the device tree compared to older versions. I also
don't see any compat code that makes older machine types stay at the
smaller window?
Alex
prev parent reply other threads:[~2014-12-15 14:55 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-12 9:38 [Qemu-devel] [PATCH v2] spapr-pci: Enable huge BARs Alexey Kardashevskiy
2014-12-12 22:30 ` Alexey Kardashevskiy
2014-12-15 14:55 ` Alexander Graf [this message]
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=548EF657.4040300@suse.de \
--to=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).