Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1525602

Re: [PATCH] PCI: Add information about describing PCI in ACPI

From Bjorn Helgaas <helgaas@kernel.org>
Newsgroups linux.kernel
Subject Re: [PATCH] PCI: Add information about describing PCI in ACPI
Date 2016-11-18 19:00 +0100
Message-ID <sEVCa-1Ow-13@gated-at.bofh.it> (permalink)
References <sEz8C-3Po-13@gated-at.bofh.it> <sEUZr-1B7-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Fri, Nov 18, 2016 at 05:17:34PM +0000, Gabriele Paoloni wrote:
> > -----Original Message-----
> > From: linux-kernel-owner@vger.kernel.org [mailto:linux-kernel-
> > owner@vger.kernel.org] On Behalf Of Bjorn Helgaas
> > Sent: 17 November 2016 18:00

> > +Static tables like MCFG, HPET, ECDT, etc., are *not* mechanisms for
> > +reserving address space!  The static tables are for things the OS
> > +needs to know early in boot, before it can parse the ACPI namespace.
> > +If a new table is defined, an old OS needs to operate correctly even
> > +though it ignores the table.  _CRS allows that because it is generic
> > +and understood by the old OS; a static table does not.
> 
> Right so if my understanding is correct you are saying that resources
> described in the MCFG table should also be declared in PNP0C02 devices
> so that the PNP driver can reserve these resources.

Yes.

> On the other side the PCI Root bridge driver should not reserve such
> resources.
> 
> Well if my understanding is correct I think we have a problem here:
> http://lxr.free-electrons.com/source/drivers/pci/ecam.c#L74
> 
> As you can see pci_ecam_create() will conflict with the pnp driver
> as it will try to reserve the resources from the MCFG table...
> 
> Maybe we need to rework pci_ecam_create() ?

I think it's OK as it is.

The pnp/system.c driver does try to reserve PNP0C02 resources, and it
marks them as "not busy".  That way they appear in /proc/iomem and
won't be allocated for anything else, but they can still be requested
by drivers, e.g., pci/ecam.c, which will mark them "busy".

This is analogous to what the PCI core does in pci_claim_resource().
This is really a function of the ACPI/PNP *core*, which should reserve
all _CRS resources for all devices (not just PNP0C02 devices).  But
it's done by pnp/system.c, and only for PNP0C02, because there's a
bunch of historical baggage there.

You'll also notice that in this case, things are out of order:
logically the pnp/system.c reservation should happen first, but in
fact the pci/ecam.c request happens *before* the pnp/system.c one.
That means the pnp/system.c one might fail and complain "[mem ...]
could not be reserved".

Bjorn

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH] PCI: Add information about describing PCI in ACPI Bjorn Helgaas <bhelgaas@google.com> - 2016-11-17 19:00 +0100
  RE: [PATCH] PCI: Add information about describing PCI in ACPI Gabriele Paoloni <gabriele.paoloni@huawei.com> - 2016-11-18 18:20 +0100
    Re: [PATCH] PCI: Add information about describing PCI in ACPI Bjorn Helgaas <helgaas@kernel.org> - 2016-11-18 19:00 +0100
      RE: [PATCH] PCI: Add information about describing PCI in ACPI Gabriele Paoloni <gabriele.paoloni@huawei.com> - 2016-11-21 10:00 +0100
        Re: [PATCH] PCI: Add information about describing PCI in ACPI Bjorn Helgaas <helgaas@kernel.org> - 2016-11-21 17:50 +0100
          RE: [PATCH] PCI: Add information about describing PCI in ACPI Gabriele Paoloni <gabriele.paoloni@huawei.com> - 2016-11-21 18:30 +0100
            Re: [PATCH] PCI: Add information about describing PCI in ACPI Bjorn Helgaas <helgaas@kernel.org> - 2016-11-21 21:20 +0100
              RE: [PATCH] PCI: Add information about describing PCI in ACPI Gabriele Paoloni <gabriele.paoloni@huawei.com> - 2016-11-22 14:20 +0100
  Re: [PATCH] PCI: Add information about describing PCI in ACPI "Rafael J. Wysocki" <rafael@kernel.org> - 2016-11-19 00:10 +0100
    Re: [PATCH] PCI: Add information about describing PCI in ACPI Bjorn Helgaas <helgaas@kernel.org> - 2016-11-21 15:00 +0100
  Re: [PATCH] PCI: Add information about describing PCI in ACPI Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2016-11-22 11:20 +0100
    Re: [PATCH] PCI: Add information about describing PCI in ACPI Bjorn Helgaas <helgaas@kernel.org> - 2016-11-23 02:10 +0100
      Re: [PATCH] PCI: Add information about describing PCI in ACPI Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2016-11-23 08:30 +0100
        Re: [PATCH] PCI: Add information about describing PCI in ACPI Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> - 2016-11-23 13:30 +0100
          Re: [Linaro-acpi] [PATCH] PCI: Add information about describing PCI  in ACPI Duc Dang <dhdang@apm.com> - 2016-11-23 22:00 +0100
        Re: [PATCH] PCI: Add information about describing PCI in ACPI Bjorn Helgaas <helgaas@kernel.org> - 2016-11-23 16:10 +0100
  RE: [PATCH] PCI: Add information about describing PCI in ACPI "Zheng, Lv" <lv.zheng@intel.com> - 2016-11-23 04:30 +0100

csiph-web