All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: Sinan Kaya <okaya@codeaurora.org>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	linux-pci@vger.kernel.org, Zhou Wang <wangzhou1@hisilicon.com>,
	Phil Edworthy <phil.edworthy@renesas.com>,
	Bjorn Helgaas <bhelgaas@google.com>
Subject: Re: [RFC] ARM/ARM64 PCI_PROBE_ONLY platforms
Date: Fri, 29 Jan 2016 17:26:09 -0600	[thread overview]
Message-ID: <20160129232609.GB11085@localhost> (raw)
In-Reply-To: <569FCEA8.4020001@codeaurora.org>

On Wed, Jan 20, 2016 at 01:15:04PM -0500, Sinan Kaya wrote:

> Footnote: I remember reading somewhere that some BIOS want to keep track
> of where the endpoints are mapped. Reassigning the resources break such systems.

I agree, I think there are systems where the BIOS sets a PCI BAR value
and depends on that remaining untouched at run-time.  For example, I'm
pretty sure there's x86 SMM code that logs errors to PCI management
devices.  I think these systems are broken.

I don't think there's a way for firmware to tell the kernel "please
don't reassign these PCI resources."  After handoff to the OS, I think
the OS owns all PCI resources and can reassign things as necessary,
subject only to a few constraints like _OSC.  Certainly the OS has to
be able to write to BARs at least temporarily to learn their size.  I
have no spec reference for this belief.

I don't have a good strategy for dealing with such systems, other
than:

  - Keep firmware BAR assignments unless we have a reason to change
    them

  - Add quirks to set IORESOURCE_PCI_FIXED for specific BARs when we
    know about issues

The new PCI "Enhanced Allocation" stuff might be a way for platforms
to do this more safely.

Bjorn

  reply	other threads:[~2016-01-29 23:26 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-20 16:04 [RFC] ARM/ARM64 PCI_PROBE_ONLY platforms Lorenzo Pieralisi
2016-01-20 16:13 ` Sinan Kaya
2016-01-20 18:10   ` Lorenzo Pieralisi
2016-01-20 18:15     ` Sinan Kaya
2016-01-29 23:26       ` Bjorn Helgaas [this message]
2016-01-22 16:28     ` Phil Edworthy
2016-01-25 17:51       ` Lorenzo Pieralisi
2016-01-28 17:27       ` Lorenzo Pieralisi
2016-01-29 12:02         ` Gabriele Paoloni
2016-01-29  6:32       ` Pratyush Anand
2016-01-29 23:25     ` Bjorn Helgaas
2016-02-01 16:28       ` Lorenzo Pieralisi
2016-02-01 21:19         ` Bjorn Helgaas
2016-01-29 23:06   ` Bjorn Helgaas
2016-01-30  0:14     ` Sinan Kaya
2016-01-30 13:30       ` Bjorn Helgaas
2016-01-30 17:51         ` Okaya
2016-02-01 15:25         ` Lorenzo Pieralisi
2016-02-01 21:12           ` Bjorn Helgaas

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=20160129232609.GB11085@localhost \
    --to=helgaas@kernel.org \
    --cc=bhelgaas@google.com \
    --cc=linux-pci@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=okaya@codeaurora.org \
    --cc=phil.edworthy@renesas.com \
    --cc=wangzhou1@hisilicon.com \
    /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.