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
next prev parent 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: linkBe 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.