[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [PATCH v4 2/3] acpi:pci-expender-bus: Add pxb support for arm
From: |
miaoyubo |
Subject: |
RE: [PATCH v4 2/3] acpi:pci-expender-bus: Add pxb support for arm |
Date: |
Wed, 26 Feb 2020 10:42:26 +0000 |
> -----Original Message-----
> From: Michael S. Tsirkin [mailto:address@hidden]
> Sent: Tuesday, February 25, 2020 9:12 PM
> To: miaoyubo <address@hidden>
> Cc: Philippe Mathieu-Daudé <address@hidden>;
> address@hidden; address@hidden;
> address@hidden; address@hidden; Xiexiangyou
> <address@hidden>; address@hidden
> Subject: Re: [PATCH v4 2/3] acpi:pci-expender-bus: Add pxb support for arm
>
> On Tue, Feb 25, 2020 at 12:44:15PM +0000, miaoyubo wrote:
> >
> >
> > > -----Original Message-----
> > > From: Michael S. Tsirkin [mailto:address@hidden]
> > > Sent: Tuesday, February 25, 2020 8:27 PM
> > > To: miaoyubo <address@hidden>
> > > Cc: Philippe Mathieu-Daudé <address@hidden>;
> > > address@hidden; address@hidden;
> > > address@hidden; address@hidden; Xiexiangyou
> > > <address@hidden>; address@hidden
> > > Subject: Re: [PATCH v4 2/3] acpi:pci-expender-bus: Add pxb support
> > > for arm
> > >
> > > On Tue, Feb 25, 2020 at 12:12:12PM +0000, miaoyubo wrote:
> > > >
> > > > > -----Original Message-----
> > > > > From: Philippe Mathieu-Daudé [mailto:address@hidden]
> > > > > Sent: Tuesday, February 25, 2020 5:48 PM
> > > > > To: miaoyubo <address@hidden>; address@hidden;
> > > > > address@hidden
> > > > > Cc: address@hidden; address@hidden; qemu-
> address@hidden;
> > > > > Xiexiangyou <address@hidden>; address@hidden
> > > > > Subject: Re: [PATCH v4 2/3] acpi:pci-expender-bus: Add pxb
> > > > > support for arm
> > > > >
> > > > > On 2/25/20 2:50 AM, Yubo Miao wrote:
> > > > > > From: miaoyubo <address@hidden>
> > > > > >
> > > > > > Currently virt machine is not supported by pxb-pcie, and only
> > > > > > one main host bridge described in ACPI tables.
> > > > > > In this patch,PXB-PCIE is supproted by arm and certain
> > > > >
> > > > > Typos: "expander" in subject and "supported" here.
> > > > >
> > > >
> > > > Thanks for your reply and sorry for the mistakes.
> > > > I will check all the subjects and comments.
> > > >
> > > > > > resource is allocated for each pxb-pcie in acpi table.
> > > > > > The resource for the main host bridge is also reallocated.
> > > > > >
> > > > > > Signed-off-by: miaoyubo <address@hidden>
> > > > > > ---
> > > > > > hw/arm/virt-acpi-build.c | 115
> > > > > ++++++++++++++++++++++++++++++++++++---
> > > > > > hw/arm/virt.c | 3 +
> > > > > > include/hw/arm/virt.h | 7 +++
> > > > > > 3 files changed, 118 insertions(+), 7 deletions(-)
> > > > > >
> > > > > > diff --git a/hw/arm/virt-acpi-build.c
> > > > > > b/hw/arm/virt-acpi-build.c index 37c34748a6..be1986c60d 100644
> > > > > > --- a/hw/arm/virt-acpi-build.c
> > > > > > +++ b/hw/arm/virt-acpi-build.c
> > > > > > @@ -49,6 +49,8 @@
> > > > > > #include "kvm_arm.h"
> > > > > > #include "migration/vmstate.h"
> > > > > >
> > > > > > +#include "hw/arm/virt.h"
> > > > > > +#include "hw/pci/pci_bus.h"
> > > > > > #define ARM_SPI_BASE 32
> > > > > >
> > > > > > if (use_highmem) {
> > > > > > hwaddr base_mmio_high =
> > > > > > memmap[VIRT_HIGH_PCIE_MMIO].base;
> > > > > @@
> > > > > > -746,7 +847,7 @@ build_dsdt(GArray *table_data, BIOSLinker
> > > > > > *linker,
> > > > > VirtMachineState *vms)
> > > > > > acpi_dsdt_add_virtio(scope, &memmap[VIRT_MMIO],
> > > > > > (irqmap[VIRT_MMIO] + ARM_SPI_BASE),
> > > > > NUM_VIRTIO_TRANSPORTS);
> > > > > > acpi_dsdt_add_pci(scope, memmap, (irqmap[VIRT_PCIE] +
> > > > > ARM_SPI_BASE),
> > > > > > - vms->highmem, vms->highmem_ecam);
> > > > > > + vms->highmem, vms->highmem_ecam, vms);
> > > > > > if (vms->acpi_dev) {
> > > > > > build_ged_aml(scope, "\\_SB."GED_DEVICE,
> > > > > > HOTPLUG_HANDLER(vms->acpi_dev), diff
> > > > > > --git a/hw/arm/virt.c b/hw/arm/virt.c index
> > > > > > f788fe27d6..6314928671
> > > > > > 100644
> > > > > > --- a/hw/arm/virt.c
> > > > > > +++ b/hw/arm/virt.c
> > > > > > @@ -1246,6 +1246,9 @@ static void create_pcie(VirtMachineState
> > > *vms)
> > > > > > }
> > > > > >
> > > > > > pci = PCI_HOST_BRIDGE(dev);
> > > > > > +
> > > > > > + VIRT_MACHINE(qdev_get_machine())->bus = pci->bus;
> > > > > > +
> > > > > > if (pci->bus) {
> > > > > > for (i = 0; i < nb_nics; i++) {
> > > > > > NICInfo *nd = &nd_table[i]; diff --git
> > > > > > a/include/hw/arm/virt.h b/include/hw/arm/virt.h index
> > > > > > 71508bf40c..90f10a1e46 100644
> > > > > > --- a/include/hw/arm/virt.h
> > > > > > +++ b/include/hw/arm/virt.h
> > > > > > @@ -140,6 +140,13 @@ typedef struct {
> > > > > > DeviceState *gic;
> > > > > > DeviceState *acpi_dev;
> > > > > > Notifier powerdown_notifier;
> > > > > > + /*
> > > > > > + * pointer to devices and objects
> > > > > > + * Via going through the bus, all
> > > > > > + * pci devices and related objectes
> > > > >
> > > > > Typo "objects", but I don't understand the comment well.
> > > > >
> > > >
> > > > Sorry for any confusion caused ,I will rewrite the comment
> > > > /* point to the root bus, which is pcie.0 */ Does this comment
> > > > make sense?
> > >
> > > Not really. E.g. it doesn't say what happens if there's more than one
> > > root.
> > >
> >
> > If there's more than one root, like pcie.0 and pcie.1, it still point to
> > pcie.0.
> > In docs/pci_expander_bridge.txt, it points out pxb could be placed
> > only on bus 0 (pci.0). Therfore, the structure still could help us to find
> > all
> pxb devices.
> > /* point to the bus 0, which is pcie.0
> > * pxb devices could only be placed on bus 0.
> > */
> > Is this ok?
>
> All this needs more comments in the code constructing the tables.
>
Thanks for replying, I will add more comments in the table construction.
> Also, instead of trying to store bus and spreading logic around like this, how
> about just using object_resolve_path_type?
>
>
Thanks for the suggestion, using object_resolve_path_type seems to be better.
> > > > > > + * could be gained.
> > > > > > + */
> > > > > > + PCIBus *bus;
> > > > > > } VirtMachineState;
> > > > > >
> > > > > > #define VIRT_ECAM_ID(high) (high ? VIRT_HIGH_PCIE_ECAM :
> > > > > > VIRT_PCIE_ECAM)
> > > > > >
> > > >
> > > > Regards,
> > > > Miao
> >
> > Regards,
> > Miao
Regards,
Miao
- [PATCH v4 0/3] pci_expander_brdige:acpi:Support pxb-pcie for ARM, Yubo Miao, 2020/02/24
- [PATCH v4 1/3] acpi:Extract two APIs from acpi_dsdt_add_pci, Yubo Miao, 2020/02/24
- [PATCH v4 2/3] acpi:pci-expender-bus: Add pxb support for arm, Yubo Miao, 2020/02/24
- Re: [PATCH v4 2/3] acpi:pci-expender-bus: Add pxb support for arm, Philippe Mathieu-Daudé, 2020/02/25
- Re: [PATCH v4 2/3] acpi:pci-expender-bus: Add pxb support for arm, Michael S. Tsirkin, 2020/02/25
- RE: [PATCH v4 2/3] acpi:pci-expender-bus: Add pxb support for arm, miaoyubo, 2020/02/25
- Re: [PATCH v4 2/3] acpi:pci-expender-bus: Add pxb support for arm, Michael S. Tsirkin, 2020/02/25
- RE: [PATCH v4 2/3] acpi:pci-expender-bus: Add pxb support for arm, miaoyubo, 2020/02/25
- Re: [PATCH v4 2/3] acpi:pci-expender-bus: Add pxb support for arm, Michael S. Tsirkin, 2020/02/25
- RE: [PATCH v4 2/3] acpi:pci-expender-bus: Add pxb support for arm,
miaoyubo <=
Re: [PATCH v4 2/3] acpi:pci-expender-bus: Add pxb support for arm, Michael S. Tsirkin, 2020/02/25
[PATCH v4 3/3] ACPI/unit-test: Add a new test for pxb-pcie for arm, Yubo Miao, 2020/02/24
Re: [PATCH v4 0/3] pci_expander_brdige:acpi:Support pxb-pcie for ARM, no-reply, 2020/02/24