[PATCH/2.6.17-rc4 1/10] Powerpc: Add general support for mpc7 448h pc2 (Taiga) platform
Benjamin Herrenschmidt
benh at kernel.crashing.org
Fri Jun 2 18:19:50 EST 2006
On Fri, 2006-06-02 at 16:05 +0800, Zang Roy-r61911 wrote:
> > > If I really need to use bat0 or bat1( I see that the
> > general mmu use
> > > bat2 and bat3, where should I set up them?
> > >
> > > For tsi108 pci configuration access, I need to map 16Mbyte physical
> > > address. If I do not use an extra bat, I can not get the correct
> > > virtual address use ioremap.
> >
> > What do you mean ? An ioremap will work, it will give you any
> > virtual address, you just have to store that in a global
> > instead of hard coding it. Hard coded virtual addresses are
> > bad. Especially for things like PCI config space that really
> > isn't performance sensitive.
> >
> > Ben.
> >
>
> I had hoped to get the pci configure base address by ioremap, but failed.
> the tsi108 register locates at 0xc000,0000 ~0xC001,0000. It is OK to
> access them by ioremap. While pci configure access need to ioremap
> 0xfb00,0000 ~0xfc00,0000.
> I traced my code, when I do ioremap, there is no bat match, I get the virtual
> address from ioremap_bot. the init ioremap_bot is 0xfe000000. When I do
> tsi108_csr_vir_base = ioremap(0xfb000000,0x1000000),
> the ioremap_bot is 0xfdffe000 ( I get the serial port ioremap steal some space),
> tsi108_csr_vir_base = 0xfdfee000, I can not access the configure space with this
> address.
What happens if you try ?
> While if I use bat0 or bat1 to map my tsi108 register space, the ioremap_bot will keep
> to 0xfe000000 until I do
> tsi108_csr_vir_base = ioremap(0xfb000000,0x1000000)
> then I get tsi108_csr_vir_base = 0xfd000000. Everything is OK.
Both should work fine
Ben.
More information about the Linuxppc-dev
mailing list