[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Doubt regarding PCI access in ixp425 arch
Hi all..
I am working on a ixp425 up. I see that the __arch_ioremap function
(in asm/arch/) is having a check for the pci region as below, which
dis-allows io-remapping of the pci region.
static inline void *
__arch_ioremap(unsigned long phys_addr, size_t size, unsigned long
flags)
{
extern void * __ioremap(unsigned long, size_t, unsigned long);
if((phys_addr < 0x48000000) || (phys_addr > 0x4bffffff))
return __ioremap(phys_addr, size, flags);
return (void *)phys_addr;
}
Further, by the comments in the file i understood that the ixp425 has to
access the pci region in a different way, but could not figure it out
what does that mean exactly.
/*
* IXP425 does not have a transparent cpu -> PCI I/O translation
* window. Instead, it has a set of registers that must be tweaked
* with the proper byte lanes, command types, and address for the
* transaction. This means that we need to override the default
* I/O functions.
*/
/*
* IXP425 also does not have a transparent PCI MEM translation
* window. For this reason, we have to use the NP registers for
* all PCI mem acceses and have to implement custom
* ioremap/unmap/etc functions. :( We need to check and make
* sure that the address being accessed is a PCI address and
* if not, fall back to the normal code.
*/
Can anyone please explain what does this mean..
Thanks in advance..
Srikanth
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
FAQ: http://kernelnewbies.org/faq/