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 same 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. These are the comments in the file /* * 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/