Re: set_io_port_base()?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ralf Baechle wrote:
> 
> On Wed, Feb 20, 2002 at 06:05:21PM -0800, Matthew Dharm wrote:
> 
> > If it works as I think it does, then is the code in
> > linux/arch/mips/gt64120/momenco_ocelot/setup.c correct?  Specifically,
> > it calls ioremap() and then calls set_io_port_base() with a very
> > strange value -- it's the value from ioremap()
> 
> > modified by the I/O physical address base...
>   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
> I was reading too fast and missed that part.
> 
> > That doesn't look right to me... or I just don't quite understand how
> > this is supposed to work.
> 
> That's definately looks fishy. 

This is actually right.  This way if you pass an virtual at (mips_io_port_base
+ delta), you will get a physical address (GT_PCI_IO_BASE + delta), the
desired place.

Most boards don't need this funky ioremap() and base addr substraction trick,
but ocelot has the IO address placed beyond normal kseg1 addressing range.

Jun


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux