All of lore.kernel.org
 help / color / mirror / Atom feed
From: Grant Grundler <grundler@parisc-linux.org>
To: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: Gabriel Paubert <paubert@iram.es>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Olaf Hering <olaf@aepfle.de>,
	linux-ide@vger.kernel.org, greg@kroah.com,
	linuxppc-dev@ozlabs.org, linux-pci@atrey.karlin.mff.cuni.cz,
	Alan <alan@lxorguk.ukuu.org.uk>
Subject: Re: What is the correct way to indicate an unassigned PCI resource ?
Date: Tue, 5 Dec 2006 10:37:35 -0700	[thread overview]
Message-ID: <20061205173735.GA13179@colo.lackof.org> (raw)
In-Reply-To: <45756861.2050004@ru.mvista.com>

On Tue, Dec 05, 2006 at 03:38:57PM +0300, Sergei Shtylyov wrote:
> >Well, I don't have the PCI specification, but I have a device with the 
> 
>    Try googling for pdf21.pdf, pdf22.pdf if you need it. :-)

I think you meant pci21.pdf/pci22.pdf/pci23.pdf.

And if you find them, trust me when I say whoever is hosting those files
can expect a cease-and-desist letter in the mail shortly there after.

Better to just ask someone with proper access to lookup the parts
you need to know (i.e. ask here). Member companies are listed at:
	http://www.pcisig.com/membership/about_us/membership_roster/

if you want to approach someone offlist.

> >following gem in its errata (name edited and changed to <Device>):
> 
> >""The <Device> contains two PCI base registers to allow for both greater 
> >flexibility in tightly constrained I/O space as well as the "on the fly" 
> >option to access the <Device> registers from either I/O or memory space. 
> >Both PCI base registers contained in the <Device> will accept the value 
> >of "zero" as a valid and decodable address. This differs from the PCI 2.1 
> >specification, where a zero value being written to the PCI base register 
> >should disable the register space.
> 
>    I haven't found such words in PCI 2.1 -- it only said that 0 is not a 
> valid address (those words are gone from 2.2).

AFAIK, zero is a valid address for IO Port space on several architectures.
But PCI generic code should never use it. See usage of PCIBIOS_MIN_IO
and PCIBIOS_MIN_MEM in the various asm-*/pci.h files.


> ><Device> will continue to decode for 
> >register accesses using the value "zero" written to the PCI_BS register 
> >as the base address for decoding.""
> 
>    I'd say it's absolutely valid bahavior.
> 
> >which makes me suspect that a base address of zero really should mean
> >unassigned and is a way to disable base registers on a region by region
> >basis.
> 
>    AFAIR, there's never been a provision to enable/disable BARs on an 
> individual basis in PCI (except the expansion ROM BAR). The decoders are
> only controlled via 2 command register bits for I/O and memory space.

One can "disable" a BAR by pointing it at an address that is NOT routed
by the upstream bridge. Ie CPU physical addresses that can never reach
that secondary bus. But I'm not aware of any code to do that currently
and it certainly won't work with all "PCI-like" (think integrated south
bridges) devices. But it might be sufficient for some special need.

hth,
grant

WARNING: multiple messages have this Message-ID (diff)
From: Grant Grundler <grundler@parisc-linux.org>
To: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: Olaf Hering <olaf@aepfle.de>,
	linux-ide@vger.kernel.org, linuxppc-dev@ozlabs.org,
	greg@kroah.com, linux-pci@atrey.karlin.mff.cuni.cz,
	Alan <alan@lxorguk.ukuu.org.uk>
Subject: Re: What is the correct way to indicate an unassigned PCI resource ?
Date: Tue, 5 Dec 2006 10:37:35 -0700	[thread overview]
Message-ID: <20061205173735.GA13179@colo.lackof.org> (raw)
In-Reply-To: <45756861.2050004@ru.mvista.com>

On Tue, Dec 05, 2006 at 03:38:57PM +0300, Sergei Shtylyov wrote:
> >Well, I don't have the PCI specification, but I have a device with the 
> 
>    Try googling for pdf21.pdf, pdf22.pdf if you need it. :-)

I think you meant pci21.pdf/pci22.pdf/pci23.pdf.

And if you find them, trust me when I say whoever is hosting those files
can expect a cease-and-desist letter in the mail shortly there after.

Better to just ask someone with proper access to lookup the parts
you need to know (i.e. ask here). Member companies are listed at:
	http://www.pcisig.com/membership/about_us/membership_roster/

if you want to approach someone offlist.

> >following gem in its errata (name edited and changed to <Device>):
> 
> >""The <Device> contains two PCI base registers to allow for both greater 
> >flexibility in tightly constrained I/O space as well as the "on the fly" 
> >option to access the <Device> registers from either I/O or memory space. 
> >Both PCI base registers contained in the <Device> will accept the value 
> >of "zero" as a valid and decodable address. This differs from the PCI 2.1 
> >specification, where a zero value being written to the PCI base register 
> >should disable the register space.
> 
>    I haven't found such words in PCI 2.1 -- it only said that 0 is not a 
> valid address (those words are gone from 2.2).

AFAIK, zero is a valid address for IO Port space on several architectures.
But PCI generic code should never use it. See usage of PCIBIOS_MIN_IO
and PCIBIOS_MIN_MEM in the various asm-*/pci.h files.


> ><Device> will continue to decode for 
> >register accesses using the value "zero" written to the PCI_BS register 
> >as the base address for decoding.""
> 
>    I'd say it's absolutely valid bahavior.
> 
> >which makes me suspect that a base address of zero really should mean
> >unassigned and is a way to disable base registers on a region by region
> >basis.
> 
>    AFAIR, there's never been a provision to enable/disable BARs on an 
> individual basis in PCI (except the expansion ROM BAR). The decoders are
> only controlled via 2 command register bits for I/O and memory space.

One can "disable" a BAR by pointing it at an address that is NOT routed
by the upstream bridge. Ie CPU physical addresses that can never reach
that secondary bus. But I'm not aware of any code to do that currently
and it certainly won't work with all "PCI-like" (think integrated south
bridges) devices. But it might be sufficient for some special need.

hth,
grant

  reply	other threads:[~2006-12-05 17:37 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-30 16:52 pata_sl82c105 can not reserve IO region Olaf Hering
2006-11-30 17:10 ` Alan
2006-11-30 18:47   ` Olaf Hering
2006-12-01 18:34     ` Olaf Hering
2006-12-01 18:58       ` Alan
2006-12-01 19:05       ` Sergei Shtylyov
2006-12-01 19:05         ` Sergei Shtylyov
2006-12-01 21:53         ` Benjamin Herrenschmidt
2006-12-01 21:53           ` Benjamin Herrenschmidt
2006-12-01 22:15           ` Alan
2006-12-01 22:15             ` Alan
2006-12-01 22:19             ` Benjamin Herrenschmidt
2006-12-01 22:19               ` Benjamin Herrenschmidt
2006-12-02 14:36               ` U-Boot allocating PCI I/O space from 0 (Was: pata_sl82c105 can not reserve IO region) Sergei Shtylyov
2006-12-02 14:36                 ` [U-Boot-Users] " Sergei Shtylyov
2006-12-02 16:33                 ` Sergei Shtylyov
2006-12-02 16:33                   ` [U-Boot-Users] " Sergei Shtylyov
2006-12-26 20:53                   ` Sergei Shtylyov
2006-12-26 20:53                     ` Sergei Shtylyov
2006-12-03 23:39               ` pata_sl82c105 can not reserve IO region Alan
2006-12-03 23:39                 ` Alan
2006-12-03 17:12 ` Olaf Hering
2006-12-03 22:24   ` Olaf Hering
2006-12-03 23:23     ` Alan
2006-12-04  0:30       ` Olaf Hering
2006-12-04  9:21         ` Olaf Hering
2006-12-03 23:07   ` Alan
2006-12-04 12:38 ` [PATCH] mark PCI resource with start 0 as unassigned Olaf Hering
2006-12-04 12:44   ` Segher Boessenkool
2006-12-04 12:50     ` Sergei Shtylyov
2006-12-04 12:50       ` Sergei Shtylyov
2006-12-04 12:54       ` Segher Boessenkool
2006-12-04 12:54         ` Segher Boessenkool
2006-12-04 13:08         ` Sergei Shtylyov
2006-12-04 13:08           ` Sergei Shtylyov
2006-12-04 13:21           ` Alan
2006-12-04 13:25             ` Segher Boessenkool
2006-12-04 13:25               ` Segher Boessenkool
2006-12-04 14:15               ` Alan
2007-08-01 14:22               ` Sergei Shtylyov
2007-08-01 14:22                 ` Sergei Shtylyov
2007-08-01 15:51                 ` Alan Cox
2007-08-01 15:51                   ` Alan Cox
2007-08-06 18:04                   ` Segher Boessenkool
2007-08-06 18:04                     ` Segher Boessenkool
2007-08-06 19:52                     ` Alan Cox
2007-08-06 19:52                       ` Alan Cox
2007-08-06 22:14                     ` Benjamin Herrenschmidt
2007-08-06 22:14                       ` Benjamin Herrenschmidt
2006-12-04 13:27             ` Sergei Shtylyov
2006-12-04 13:27               ` Sergei Shtylyov
2006-12-04 14:22               ` What is the correct way to indicate an unassigned PCI resource ? Alan
2006-12-04 14:34                 ` Sergei Shtylyov
2006-12-04 14:34                   ` Sergei Shtylyov
2006-12-04 14:44                   ` Alan
2006-12-04 15:40                     ` Sergei Shtylyov
2006-12-04 15:40                       ` Sergei Shtylyov
2006-12-04 15:55                       ` Sergei Shtylyov
2006-12-04 15:55                         ` Sergei Shtylyov
2006-12-04 20:53                         ` Guennadi Liakhovetski
2006-12-04 20:53                           ` Guennadi Liakhovetski
2006-12-05  4:43                           ` Benjamin Herrenschmidt
2006-12-05  4:43                             ` Benjamin Herrenschmidt
2006-12-05  4:41                 ` Benjamin Herrenschmidt
2006-12-05  4:41                   ` Benjamin Herrenschmidt
2006-12-05  8:15                   ` Olaf Hering
2006-12-05  8:15                     ` Olaf Hering
2006-12-05 20:19                     ` Benjamin Herrenschmidt
2006-12-05 20:19                       ` Benjamin Herrenschmidt
2006-12-05 21:26                       ` Sergei Shtylyov
2006-12-05 21:26                         ` Sergei Shtylyov
2007-01-04 17:49                       ` Olaf Hering
2007-01-04 21:30                         ` Benjamin Herrenschmidt
2007-01-05 10:26                           ` Olaf Hering
2007-01-05 10:26                             ` Olaf Hering
2007-01-05 12:05                             ` Benjamin Herrenschmidt
2007-01-05 12:05                               ` Benjamin Herrenschmidt
2006-12-05 10:51                   ` Gabriel Paubert
2006-12-05 10:51                     ` Gabriel Paubert
2006-12-05 12:38                     ` Sergei Shtylyov
2006-12-05 12:38                       ` Sergei Shtylyov
2006-12-05 17:37                       ` Grant Grundler [this message]
2006-12-05 17:37                         ` Grant Grundler
2006-12-05 19:22                         ` Sergei Shtylyov
2006-12-05 19:22                           ` Sergei Shtylyov
2006-12-04 12:56     ` [PATCH] mark PCI resource with start 0 as unassigned Olaf Hering
2006-12-04 13:05       ` Segher Boessenkool
2006-12-04 12:47   ` Sergei Shtylyov
2006-12-04 12:40 ` [PATCH] add delay around sl82c105_reset_engine calls Olaf Hering
2006-12-04 13:02   ` Alan
2006-12-04 13:12     ` Olaf Hering
2007-01-04  6:42     ` Olaf Hering
2007-01-04 10:53       ` Alan

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=20061205173735.GA13179@colo.lackof.org \
    --to=grundler@parisc-linux.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=benh@kernel.crashing.org \
    --cc=greg@kroah.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-pci@atrey.karlin.mff.cuni.cz \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=olaf@aepfle.de \
    --cc=paubert@iram.es \
    --cc=sshtylyov@ru.mvista.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.