dingusppc/zdocs/grackle.md
2020-03-03 20:54:09 -07:00

25 lines
1.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

The MPC106, codenamed "Grackle", is a PCI bridge/memory controller. Its predecessor was the MPC105, codenamed "Eagle". It replaced an Apple-made host bridge codenamed "Bandit", part number 343S1125.
Unlike the CPU, which generally runs in big-endian mode, the Grackle runs in little-endian mode in compliance with the PCI standard. This usually means that to get the result in the correct endian, the PowerPC must load and store byte-reversed inputs and results.
By default, Grackle operates on Address Map B.
CONFIG_ADDR can be found at any address in the range 0xFEC000000xFEDFFFFF, while CONFIG_DAT can be found at any address in the range 0xFEE000000xFEEFFFFF. The device trees also establish 0xFEF00000 as the 8259 interrupt acknowledgement register.
PCI Config addresses work as follows:
bus << 16 | device << 11 | function << 8 | offset
# Revisions
Revisions under 4.0 could allow up to 75 MHz, whereas 4.0 and newer can allow up to 83 MHz.
# General Data
Vendor ID: 0x1057 (Motorola)
Device ID: 0x0002 (MPC106)
Within the Mac's own device tree, this is usually device 0.
It also spans for 0x7F000000 bytes starting from 0x80000000.