[SPARC64]: Fix PCI memory space root resource on Hummingbird.
authorDavid S. Miller <davem@sunset.davemloft.net>
Wed, 18 Oct 2006 02:04:44 +0000 (19:04 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Wed, 18 Oct 2006 02:28:50 +0000 (19:28 -0700)
commit5aee87c43e3a71a4aa4e72b0dc2180e4952c0848
tree7d53d2ffd49fba8815d1986bb8f07d8b0959c605
parent7341df16a1f228be833e918cb42534a34381a37e
[SPARC64]: Fix PCI memory space root resource on Hummingbird.

For Hummingbird PCI controllers, we should create the root
PCI memory space resource as the full 4GB area, and then
allocate the IOMMU DMA translation window out of there.

The old code just assumed that the IOMMU DMA translation base
to the top of the 4GB area was unusable.  This is not true on
many systems such as SB100 and SB150, where the IOMMU DMA
translation window sits at 0xc0000000->0xdfffffff.

So what would happen is that any device mapped by the firmware
at the top section 0xe0000000->0xffffffff would get remapped
by Linux somewhere else leading to all kinds of problems and
boot failures.

While we're here, report more cases of OBP resource assignment
conflicts.  The only truly valid ones are ROM resource conflicts.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/kernel/pci_common.c
arch/sparc64/kernel/pci_sabre.c