]> git.baikalelectronics.ru Git - kernel.git/commit
[ARM] 4348/4: iop3xx: Give Linux control over PCI initialization
authorDan Williams <dan.j.williams@intel.com>
Wed, 2 May 2007 16:59:44 +0000 (17:59 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 3 May 2007 13:02:48 +0000 (14:02 +0100)
commit6d9b1786c61cc23f2b74350d611f3079ed787b43
tree1ecf08c0aa9d71d54019fc84876a07898352b641
parent3f1f2d9b363d3623133e8643fe805f5ad2378e5a
[ARM] 4348/4:  iop3xx: Give Linux control over PCI initialization

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>
12 files changed:
arch/arm/mach-iop32x/Kconfig
arch/arm/mach-iop32x/iq31244.c
arch/arm/mach-iop32x/iq80321.c
arch/arm/mach-iop33x/Kconfig
arch/arm/mach-iop33x/iq80331.c
arch/arm/mach-iop33x/iq80332.c
arch/arm/plat-iop/pci.c
include/asm-arm/arch-iop32x/iop32x.h
include/asm-arm/arch-iop32x/memory.h
include/asm-arm/arch-iop33x/iop33x.h
include/asm-arm/arch-iop33x/memory.h
include/asm-arm/hardware/iop3xx.h