dingusppc/zdocs/grackle.md

25 lines
1.1 KiB
Markdown
Raw Normal View History

2020-03-04 03:54:09 +00:00
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.
2020-03-01 17:58:09 +00:00
2020-03-04 01:21:14 +00:00
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.
2020-03-01 17:58:09 +00:00
By default, Grackle operates on Address Map B.
2020-03-04 01:21:14 +00:00
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.
2020-03-01 17:58:09 +00:00
PCI Config addresses work as follows:
bus << 16 | device << 11 | function << 8 | offset
2020-03-04 01:21:14 +00:00
# Revisions
2020-03-01 17:58:09 +00:00
Revisions under 4.0 could allow up to 75 MHz, whereas 4.0 and newer can allow up to 83 MHz.
2020-03-04 01:21:14 +00:00
# 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.