They are created by the MacOS ROM and in some cases MacOS X to contain
the *virtual* addresses of the BARs as mapped by the kernel.
Having these already there with the wrong values causes the hangs
with MacOS X 10.5 and the video driver.
The reason is that the IONDRVFramebuffer code in OS X 10.5 won't replace
those properties if they already exist, so the driver ends up accessing
the addresses put in there by OpenBIOS which aren't valid mapped virtual
addresses under OS X.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
drivers/pci.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pci.c b/drivers/pci.c
index 0cdf0bf..9813086 100644
--- a/drivers/pci.c
+++ b/drivers/pci.c
@@ -1029,10 +1029,9 @@ static void ob_pci_add_properties(phandle_t phandle,
}
pci_set_assigned_addresses(phandle, config, num_bars);
-
- if (is_apple()) {
+
+ if (is_apple() && is_oldworld())
pci_set_AAPL_address(config);
- }
PCI_DPRINTF("\n");
}
--
OpenBIOS http://openbios.org/
Mailinglist: http://lists.openbios.org/mailman/listinfo
Free your System - May the Forth be with you