linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Lundell <jlundell@pobox.com>
To: "David S. Miller" <davem@redhat.com>,
	Jeff Garzik <jgarzik@mandrakesoft.com>
Cc: Tom Gall <tom_gall@vnet.ibm.com>, linux-kernel@vger.kernel.org
Subject: Re: Going beyond 256 PCI buses
Date: Thu, 14 Jun 2001 10:59:06 -0700	[thread overview]
Message-ID: <p0510030eb74ea25caa73@[207.213.214.37]> (raw)
In-Reply-To: <15144.51504.8399.395200@pizda.ninka.net>
In-Reply-To: <3B273A20.8EE88F8F@vnet.ibm.com> <3B28C6C1.3477493F@mandrakesoft.com> <15144.51504.8399.395200@pizda.ninka.net>

At 7:24 AM -0700 2001-06-14, David S. Miller wrote:
>2) Figure out what to do wrt. sys_pciconfig_{read,write}()
>
>    They ought to really be deprecated and the /proc/bus/pci
>    way is the expected way to go about doing these things.
>    The procfs interface is more intelligent, less clumsy, and
>    even allows you to mmap() PCI cards portably (instead of
>    doing crap like mmap()s on /dev/mem, yuck).
>
>    Actually, there only real issue here is what happens when
>    userspace does PCI config space reads to things which talk
>    about "bus numbers" since those will be 8-bit as this is a
>    hardware imposed type.  These syscalls take long args already
>    so they could use >256 bus numbers just fine.
>
>Basically, this 256 bus limit in Linux is a complete fallacy.

There's also the question of pci_ops() (PCI config space access 
routines). Alpha (titan in this example) uses:

	struct pci_controler *hose = dev->sysdata;

but the general idea is that you need the hose info to do 
config-space access on PCI.

The 256-bus fallacy is caused in part by an ambiguity in what we mean 
by "bus". In PCI spec talk, a bus is a very specify thing with an 
8-bit bus number, and this is reflected in various registers and 
address formats. On the other hand we have the general concept of 
buses, which includes the possibility of multiple PCI controllers, 
and thus multiple domains of 256 buses each.

As I recall, even a midline chipset such as the ServerWorks LE 
supports the use of two north bridges, which implies two PCI bus 
domains.

I'd favor adopting something like the Alpha approach, but with a 
dedicated struct pci_device item (and with "controller" spelled 
correctly). And I suppose "domain" sounds a little more sober than 
"hose". But since the domain information is necessary to access 
configuration registers, it really needs to be included in struct 
pci_device.
-- 
/Jonathan Lundell.

  parent reply	other threads:[~2001-06-14 18:00 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-06-13 10:02 Going beyond 256 PCI buses Tom Gall
2001-06-13 17:17 ` Albert D. Cahalan
2001-06-13 18:29   ` Tom Gall
2001-06-14 14:14 ` Jeff Garzik
2001-06-14 15:15   ` David S. Miller
2001-06-14 17:59   ` Jonathan Lundell [this message]
2001-06-14 20:50     ` Jonathan Lundell
2001-06-14 14:24 ` David S. Miller
2001-06-14 14:32   ` Jeff Garzik
2001-06-14 14:42   ` David S. Miller
2001-06-14 15:29     ` Jeff Garzik
2001-06-14 15:33       ` Jeff Garzik
2001-06-14 18:01   ` Albert D. Cahalan
2001-06-14 18:47   ` David S. Miller
2001-06-14 19:04     ` Albert D. Cahalan
2001-06-14 19:12     ` David S. Miller
2001-06-14 19:41       ` Jeff Garzik
2001-06-14 19:57       ` David S. Miller
2001-06-14 20:08         ` Jeff Garzik
2001-06-14 20:14         ` David S. Miller
2001-06-14 21:30           ` Benjamin Herrenschmidt
2001-06-14 21:46             ` Jeff Garzik
2001-06-14 21:48             ` David S. Miller
2001-06-14 21:57               ` Benjamin Herrenschmidt
2001-06-14 22:12               ` David S. Miller
2001-06-14 22:29                 ` Benjamin Herrenschmidt
2001-06-14 22:49                 ` David S. Miller
2001-06-14 23:35                   ` Benjamin Herrenschmidt
2001-06-14 23:35                 ` VGA handling was [Re: Going beyond 256 PCI buses] James Simmons
2001-06-14 23:42                 ` David S. Miller
2001-06-14 23:55                   ` James Simmons
2001-06-15 15:14                     ` Pavel Machek
2001-06-15  2:06                   ` Albert D. Cahalan
2001-06-15  8:52                   ` Matan Ziv-Av
2001-06-14 21:35           ` Going beyond 256 PCI buses David S. Miller
2001-06-14 21:46             ` Benjamin Herrenschmidt
2001-06-16 21:32           ` Jeff Garzik
2001-06-16 23:29             ` Benjamin Herrenschmidt
2001-06-15  8:42       ` Geert Uytterhoeven
2001-06-15 15:38       ` David S. Miller
2001-06-14 19:03   ` David S. Miller
2001-06-14 20:56     ` David S. Miller
2001-06-14 15:13 ` Jonathan Lundell
2001-06-14 15:17   ` Jeff Garzik

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='p0510030eb74ea25caa73@[207.213.214.37]' \
    --to=jlundell@pobox.com \
    --cc=davem@redhat.com \
    --cc=jgarzik@mandrakesoft.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tom_gall@vnet.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).