[PATCH/2.6.17-rc4 1/10] Powerpc: Add general support for mpc7 448h pc2 (Taiga) platform
Zang Roy-r61911
tie-fei.zang at freescale.com
Fri Jun 2 18:05:45 EST 2006
> > 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.
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.
Roy
More information about the Linuxppc-dev
mailing list