linux-mips
[Top] [All Lists]

Re: pci config cycles on VRC-5477

To: Jun Sun <jsun@mvista.com>
Subject: Re: pci config cycles on VRC-5477
From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: Tue, 12 Mar 2002 10:17:38 +0100 (MET)
Cc: Gerald Champagne <gerald.champagne@esstech.com>, Linux/MIPS Development <linux-mips@oss.sgi.com>
In-reply-to: <3C8D2E89.10001@mvista.com>
Sender: owner-linux-mips@oss.sgi.com
On Mon, 11 Mar 2002, Jun Sun wrote:
> Gerald Champagne wrote:
> > I'm studying the VRC-5477 code and I'm trying to understand how pci config
> > cycles can work reliably with the current code.  It looks like the pci
> > config code must execute with interrupts disabled, but I can't find code
> > that disables interrupts.  Can someone offer a few pointers?  Here's why
> > I ask...
> > 
> > All pci io, memory, and config accesses on the 5477 are performed through
> > two windows in the cpu address space.  Normally these two windows are 
> > configured
> > to perform pci memory and io accesses, and any driver can access pci io and
> > memory at any time.  In order to perform a pci config access, one of the 
> > two
> > windows must be remapped to perform pci config cycles.  The code in
> > read_config_dword() looks something like this:
> > 
> > - Call ddb_access_config_base() to reconfigure the window into pci 
> > memory space
> >   to access pci config space instead.
> > 
> > - Read from pci config space by reading from an offset into the window.
> > 
> > - Call ddb_close_config_base to restore the registers to the original 
> > values.
> > 
> > It looks like anything can interrupt this an try to perform a pci memory
> > access while the window is programmed to perfom config cycles.
> > 
> > Did I miss something, or is this a bug?
> 
> Your understanding is correct.  I think this is a bug.
> 
> Do you actually see the bug happening?  So far it has never hit me, but maybe 
> due to the drivers that are loaded on my configuration.

(IIRC) When I wrote the Vrc-5074 support, I thought about this as well.
But then I noticed that this was already done by the upper PCI layer. Is this
still true?

Gr{oetje,eeting}s,

                                                Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                                            -- Linus Torvalds


<Prev in Thread] Current Thread [Next in Thread>