linux-mips
[Top] [All Lists]

Re: Configuration of PCI Video card on a BIOS-less board

To: Wayne Gowcher <wgowcher@yahoo.com>
Subject: Re: Configuration of PCI Video card on a BIOS-less board
From: Pete Popov <ppopov@mvista.com>
Date: Thu, 10 May 2001 11:12:57 -0700
Cc: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>, linux-mips@oss.sgi.com
Organization: Monta Vista Software
References: <20010510175339.83183.qmail@web11904.mail.yahoo.com>
Sender: owner-linux-mips@oss.sgi.com
Wayne Gowcher wrote:
> 
> Geert, Pete,
> 
> Thanks for your input, it makes me question things I
> should have questioned before.

> 0xC000 0000 is the actual address I am trying to use.
> I used it because another PCI card that I have a
> driver for was using it and so I just carried on its
> use. I didnt really question the value or its use. But
> obviously it works for that card.

And this driver works on mips?  When you read the base mem register from
this card that works, it says "0xC0000000"?

> After your emails I revisited that code and now I
> partially understand why it works. The chip has an
> internal bus that translates address requests
> internally. So when i write to 0xC000 0000 it would
> never make to the actual address lines of the chip and
> instead be routed to the PCI controller ( I think :) )

I'm not clear on how this works with the good driver. If you write to
0xC000 0000, that's a mips virtual address in the kseg2 region, which is
a mapped region.  So what physical address you put on the bus when you
write to 0xC000 0000 depends on the tlb entry you've setup.  If 0xC000
0000 is truly a PCI memory physical address, then you need to setup a
tlb entry that maps some virtual address to the physical address 0xC000
0000.  I doubt you want to muck with that and would suggest you redo
your PCI bus memory map so that the PCI bus is at a lower address, like
0x1000 0000. You can then access physical 0x1000 0000 through virtual
address 0xB000 0000 (kseg1). I think you already told me, but what
board/CPU are you working with?

Pete

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