[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 2/6] spapr_pci: encode missing 64-
From: |
Nikunj A Dadhania |
Subject: |
Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 2/6] spapr_pci: encode missing 64-bit memory address space |
Date: |
Wed, 06 May 2015 11:14:32 +0530 |
User-agent: |
Notmuch/0.17+27~gae47d61 (http://notmuchmail.org) Emacs/24.3.1 (x86_64-redhat-linux-gnu) |
Thomas Huth <address@hidden> writes:
> On Tue, 5 May 2015 14:23:52 +0530
> Nikunj A Dadhania <address@hidden> wrote:
>
>> The properties reg/assigned-resources need to encode 64-bit memory
>> address space as part of phys.hi dword.
>>
>> 00 if configuration space
>> 01 if IO region,
>> 10 if 32-bit MEM region
>> 11 if 64-bit MEM region
>>
>> Signed-off-by: Nikunj A Dadhania <address@hidden>
>> ---
>> hw/ppc/spapr_pci.c | 10 +++++++++-
>> 1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
>> index 4df3a33..ea1a092 100644
>> --- a/hw/ppc/spapr_pci.c
>> +++ b/hw/ppc/spapr_pci.c
>> @@ -786,7 +786,13 @@ typedef struct ResourceProps {
>> * phys.hi = 0xYYXXXXZZ, where:
>> * 0xYY = npt000ss
>> * ||| |
>> - * ||| +-- space code: 1 if IO region, 2 if MEM region
>> + * ||| +-- space code
>> + * ||| |
>> + * ||| + 00 if configuration space
>> + * ||| + 01 if IO region,
>> + * ||| + 10 if 32-bit MEM region
>> + * ||| + 11 if 64-bit MEM region
>> + * |||
>> * ||+------ for non-relocatable IO: 1 if aliased
>> * || for relocatable IO: 1 if below 64KB
>> * || for MEM: 1 if below 1MB
>> @@ -846,6 +852,8 @@ static void populate_resource_props(PCIDevice *d,
>> ResourceProps *rp)
>> reg->phys_hi = cpu_to_be32(dev_id | b_rrrrrrrr(pci_bar(d, i)));
>> if (d->io_regions[i].type & PCI_BASE_ADDRESS_SPACE_IO) {
>> reg->phys_hi |= cpu_to_be32(b_ss(1));
>> + } else if (d->io_regions[i].type & PCI_BASE_ADDRESS_MEM_TYPE_64) {
>> + reg->phys_hi |= cpu_to_be32(b_ss(3));
>> } else {
>> reg->phys_hi |= cpu_to_be32(b_ss(2));
>> }
>
> Reviewed-by: Thomas Huth <address@hidden>
>
> BTW, does this also require the new version of SLOF already?
Not yet, only after patch 4/6 newer SLOF would be needed.
This fixes the hotplug case for device requesting 64-bit bars, like
nec-usb-xhci.
Regards,
Nikunj
[Qemu-ppc] [PATCH v3 1/6] spapr_pci: remove duplicate macros, Nikunj A Dadhania, 2015/05/05
[Qemu-ppc] [PATCH v3 4/6] spapr_pci: enumerate and add PCI device tree, Nikunj A Dadhania, 2015/05/05