Doubt regarding PCI access in ixp425 arch

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

 



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/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux