e90ddd813d
Currently the iop3xx platform support code assumes that RedBoot is the bootloader and has already initialized the ATU. Linux should handle this initialization for three reasons: 1/ The memory map that RedBoot sets up is not optimal (page_to_dma and virt_to_phys return different addresses). The effect of this is that using the dma mapping API for the internal bus dma units generates pci bus addresses that are incorrect for the internal bus. 2/ Not all iop platforms use RedBoot 3/ If the ATU is already initialized it indicates that the iop is an add-in card in another host, it does not own the PCI bus, and should not be re-initialized. Changelog: * rather than change nr_controllers to zero, simply do not call pci_common_init Cc: Lennert Buytenhek <kernel@wantstofly.org> Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
26 lines
564 B
C
26 lines
564 B
C
/*
|
|
* include/asm-arm/arch-iop33x/memory.h
|
|
*/
|
|
|
|
#ifndef __MEMORY_H
|
|
#define __MEMORY_H
|
|
|
|
#include <asm/hardware.h>
|
|
|
|
/*
|
|
* Physical DRAM offset.
|
|
*/
|
|
#define PHYS_OFFSET UL(0x00000000)
|
|
|
|
/*
|
|
* Virtual view <-> PCI DMA view memory address translations
|
|
* virt_to_bus: Used to translate the virtual address to an
|
|
* address suitable to be passed to set_dma_addr
|
|
* bus_to_virt: Used to convert an address for DMA operations
|
|
* to an address that the kernel can use.
|
|
*/
|
|
#define __virt_to_bus(x) (__virt_to_phys(x))
|
|
#define __bus_to_virt(x) (__phys_to_virt(x))
|
|
|
|
|
|
#endif
|