All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ralf Baechle <ralf@linux-mips.org>
To: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Yoichi Yuasa <yuasa@linux-mips.org>, linux-mips@linux-mips.org
Subject: Re: Reverting old hack
Date: Mon, 22 Feb 2010 14:28:30 +0100	[thread overview]
Message-ID: <20100222132830.GA5017@linux-mips.org> (raw)
In-Reply-To: <1266815257.1959.23.camel@dc7800.home>

On Sun, Feb 21, 2010 at 10:07:37PM -0700, Bjorn Helgaas wrote:

> > > Below 9f7670e4ddd940d95e48997c2da51614e5fde2cf, an old hack which I
> > > committed in December '07 I think mostly for Cobalt machines.  This is
> > > now getting in the way - in fact the whole loop in
> > > pcibios_fixup_device_resources() may have to go.  So I wonder if this
> > > old hack is still necessary.  Only testing can answer so I'm going to
> > > put a patch to revert this into the -queue tree for 2.6.34.
> > 
> > It is still necessary for Cobalt.
> > I got the following IDE resource errors.
> > 
> > pata_via 0000:00:09.1: BAR 0: can't reserve [io  0xf00001f0-0xf00001f7]         
> > pata_via 0000:00:09.1: failed to request/iomap BARs for port 0 (errno=-16)      
> > pata_via 0000:00:09.1: BAR 2: can't reserve [io  0xf0000170-0xf0000177]         
> > pata_via 0000:00:09.1: failed to request/iomap BARs for port 1 (errno=-16)      
> > pata_via 0000:00:09.1: no available native port 
> 
> I think Cobalt needs something like the patch below, because I think in
> your working system, pata_via is using I/O port 0x1f0, not 0xf00001f0.
> That means the the port the driver sees in the pci_dev resource is
> identical to the port number that appears on the PCI bus, so there is no
> io_offset.
> 
> There are a few other places that may set non-zero io_offset values:
> bcm1480, bcm1480ht. txx9_alloc_pci_controller(), bridge_probe(), and
> octeon_pcie_setup().  I don't know whether they have similar issues.

It's a while since I last looked into this but here's how things afair
are working on a MIPS-based Cobalt system.

The system is based on a MIPS processor and a GT-64111 system controller.
Addresses within a certain CPU address range are passed to the PCI bus as
I/O cycles without address cycles.  Since memory is starting at CPU address
zero (and has to because of the processors used), that address window has
to get mapped somewhere else.  So a CPU access to some virtual address gets
translated to physical address 0xf00001f0.  The GT-64111 passes this to the
PCI bus as I/O port address 0xf00001f0.  Finally the VT82C586 chip which
only decodes the low 16 bits drops treats this as an I/O port space address
0x1f0.

  Ralf

  parent reply	other threads:[~2010-02-22 13:28 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-20 11:31 Reverting old hack Ralf Baechle
2010-02-20 12:18 ` Yoichi Yuasa
2010-02-20 14:57   ` Bjorn Helgaas
2010-02-21  7:45     ` Yoichi Yuasa
2010-02-22 20:55       ` Bjorn Helgaas
2010-02-22 23:51         ` Yoichi Yuasa
2010-02-23  0:15           ` Bjorn Helgaas
2010-02-23  0:50             ` Yoichi Yuasa
2010-02-21  2:57   ` Bjorn Helgaas
2010-02-22  0:09     ` Bjorn Helgaas
2010-02-22  5:07   ` Bjorn Helgaas
2010-02-22  6:39     ` Yoichi Yuasa
2010-02-22 13:28     ` Ralf Baechle [this message]
2010-02-23 23:01       ` Bjorn Helgaas
2010-02-24  0:03         ` Yoichi Yuasa
2010-02-24 16:41           ` Ralf Baechle
2010-02-24 16:59             ` Bjorn Helgaas
2010-02-24 17:41               ` Ralf Baechle
2010-02-24 20:53             ` Benjamin Herrenschmidt
2010-02-25  8:39             ` Yoichi Yuasa
2010-02-25 14:29               ` Ralf Baechle
2010-02-24 16:13         ` Ralf Baechle
2010-02-24 16:23           ` 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=20100222132830.GA5017@linux-mips.org \
    --to=ralf@linux-mips.org \
    --cc=bjorn.helgaas@hp.com \
    --cc=linux-mips@linux-mips.org \
    --cc=yuasa@linux-mips.org \
    /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.