[OpenBIOS] [PATCH 5/5] pci: remove the configuration space range from the PCI host bridge by default

Mark Cave-Ayland mark.cave-ayland at ilande.co.uk
Mon Jan 4 10:56:47 CET 2016


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 at 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.




More information about the OpenBIOS mailing list