RE: ioremap(), bus_to_virt() and PCI devices on different Linux a

Patrick Lerda (LERDA@microprocess.com)
Fri, 29 Oct 1999 11:20:46 +0200


To specify the meaning of ioremap(pci_memory,size) and
ioremap_nocache(pci_memory,size):

Take a pointer on a physical PCI bus memory space, the size, page flags
(with CACHE or NOCACHE) and returns the
CPU virtual memory pointer .

Take into account that dev->base_address[0] returns the PCI bus memory
pointer. This is at least
what it does on PowerPC, Is this correct ? A CPU physical memory pointer
would be meaningful !

What about PCI I/O space, some chipsets map this space in standard physical
memory.
Processor like PowerPC see from a processor point of view only a physical
memory block,
no IO instructions is supported. The conversion is the only way to access
this space.

A new function could be design to map PCI I/O space to virtual memory too.

On PowerPC PCI bus memory and PCI I/O space start at address 0x000000 and
are mapped elsewhere in
physical memory. I suspect some drivers to assume that this space can't
overlap like in x86 architecture
and use function like ioremap to map this space in virtual memory.

Is this correct ?

Patrick LERDA

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/