From ReactOS Wiki
Jump to: navigation, search

What I know about PCI on MAC

The PCI bridge on mac hardware is the bandit. Whatever PCI bridge is used, there will be a pci bus as a child of it.

FF8317A0: /bandit@F2000000
FF83FB70:   /pci106b,1@B

Like so.

The address field of the bandit is the actual aperture that bandit holds in the physical memory map. Likewise, each pci bus has an aperture relative to the parent object in the OFw tree.

0 > dev pci2 .properties
name                    bandit
device_type             pci
model                   AAPL,343S1126
AAPL,interrupts         0000001A
reg                     F4000000  02000000
#address-cells          00000003
#size-cells             00000002
clock-frequency         01FCA055
slot-names              0000E000 44320045 32004632 00
ranges  02000000 00000000 F5000000 F5000000  00000000 01000000
        01000000 00000000 00000000 F4000000  00000000 00800000
        02000000 00000000 90000000 90000000  00000000 10000000
bus-range               00000001 00000001

0 >

The first element of the reg row is a flags set, of which the second nybble's low bits are the object type:

    • 0 -> Config space
    • 1 -> Memory space
    • 2 -> IO space (not typically used on mac)

Note that PCI busses themselves don't have configuration space. PCI devices do.

So this PCI bus has an aperture at 0xF5000000 for 0x1000000 bytes