On 04/01/16 08:34, Alexander Graf wrote:
On 02.01.16 21:44, Mark Cave-Ayland wrote:
While the configuration space range appears in real SPARC device trees, it isn't mentioned in the IEEE-1275 PCI bindings and in fact causes Darwin/OS X to calculate PCI address spaces incorrectly.
Disable this range in the PCI host bridge by default, except for SPARC64 where it can evidently still appear.
Signed-off-by: Mark Cave-Ayland mark.cave-ayland@ilande.co.uk
This is an excerpt from a PowerMac3,1 device tree pci ranges node:
< 0x2000000 0x0 0xf5000000 0xf5000000 0x0 0x1000000 0x1000000 0x0 0x0 0xf4000000 0x0 0x800000>;
So yes, only MMIO32 and PIO are set. Awesome ;).
Yup. And Darwin assumes fixed indexes for these in the ranges node starting from 0, leading to the problem where IO reads were going to config space, memory reads were going to IO space and MMIO reads were just broken...
ATB,
Mark.