amiga-bootcamp/01_hardware/ecs_a600_a3000/gary_system_controller.md

63 lines
2.7 KiB
Markdown
Raw Normal View History

[← Home](../../README.md) · [Hardware](../README.md) · [ECS](README.md)
# Gary — A3000 System Controller
## Overview
**Gary** is the custom system controller chip in the Amiga 3000. It consolidates functions that are discrete ICs on the A2000 into a single gate array:
- **Bus controller**: Manages interaction between 68030/68882, chip bus, and Zorro III
- **Auto-config controller**: Runs Zorro expansion enumeration at boot
- **DMA arbitration**: Between 68030, custom chips, and Zorro III DMA masters
- **SCSI interface glue**: Works with the A3000's built-in WD33C93 SCSI controller
- **ROM decode**: Maps Kickstart ROM into the address space
2026-04-26 14:46:18 -04:00
Gary is not directly programmable by user software; its configuration is set by hardware strapping and the ROM initialization sequence.
## Bus Arbitration
Gary manages three bus masters:
| Master | Priority | Description |
|---|---|---|
| Custom chips (DMA) | Highest | Agnus DMA for display, audio, disk — must never stall |
| 68030 CPU | Normal | Program execution |
| Zorro III cards | Lowest | Expansion bus-mastering DMA |
When a custom chip DMA cycle occurs, Gary holds the 68030 off the bus until the cycle completes. This is the fundamental source of "DMA contention" slowdown on all Amiga models.
## A3000 SCSI Integration
The A3000 includes a built-in **WD33C93A** SCSI controller. Gary provides the glue logic between the SCSI chip and the system bus:
| Feature | Details |
|---|---|
| SCSI chip | WD33C93A (SBIC) |
| DMA | SDMAC — dedicated SCSI DMA controller (separate from the CDTV-style DMAC) |
| Interface | A3000 uses a dedicated SDMAC chip, not the A2091-style DMAC |
| AmigaOS driver | `scsi.device` in Kickstart ROM |
> [!NOTE]
> The A3000's SDMAC is a different chip from the A2091/CDTV DMAC, despite both interfacing with WD33C93 SCSI controllers. The register layouts are incompatible.
## Machines Using Gary
| Model | Gary variant | Notes |
|---|---|---|
| A3000 | Original Gary | 68030, Zorro III, WD33C93 SCSI |
| A3000T | Gary (tower variant) | Same chip; tower form factor with more drive bays |
The A4000 does **not** use Gary — it uses a different system controller chip called **Ramsey** along with **Budgie** and **Buster** for bus management.
## References
- Commodore A3000 Technical Reference Manual
- ADCD 2.1 — Hardware Manual, A3000 chapter
2026-04-26 14:46:18 -04:00
- NDK39: hardware headers (community-documented Gary behavior)
## See Also
- [Gayle — IDE & PCMCIA](../common/gayle_ide_pcmcia.md) — A600/A1200 storage controller (different chip, different function)
- [Zorro Bus](../common/zorro_bus.md) — Zorro II/III expansion managed by Gary
- [ECS Chipset](chipset_ecs.md) — Super Agnus + ECS Denise (A3000)