Autoconfig

From Free net encyclopedia

Autoconfig is an auto-configuration feature of Amiga computers which assigns resources to expansion devices without the need for jumpers. It is analogous to PCI configuration.

When the computer is switched on, AmigaOS interrogates each expansion device in turn and assigns address space as needed. In the case of a memory card, the OS would also add the memory to the available system memory. Autoconfig also supports boot ROMs.

Protocol

Expansion devices respond to certain fixed memory addresses starting at hexadecimal E80000 (or FF000000 for Zorro III) if the /CFGIN signal is asserted and the device is not already configured. The CPU reads nibbles of configuration information (usually supplied by a PAL) such as manufacturer ID, product ID, and the amount of address space the device requires. The CPU then writes a base memory address to the device (or tells it to "shut up" if for some reason it can't be configured), and the device asserts /CFGOUT.

The /CFGIN of the first device is tied to ground. The second device's /CFGIN is controlled by the first device's /CFGOUT, and so on.

In a backplane design such as the Amiga 2000, connecting the /CFGOUT of one slot directly to the /CFGIN of the next would create the problem that an unoccupied slot would break the configuration chain. To solve this, the backplane ORs the /CFGIN and /CFGOUT signals to form the /CFGIN for the next slot (/CFGOUT is pulled low if undriven), which allows empty slots to be bypassed. This requires one 74LS32 (quad OR gate) on the Amiga 2000, which is the only motherboard hardware required by Autoconfig.

Comparison with PCI configuration

Compared with PCI configuration, Autoconfig is much simpler, yet provides the same basic functions. PCI allows random access to the configuration space of devices, which requires system registers and I/O lines. Autoconfig requires no such system hardware, but has the restriction that devices can only be configured in sequence, and they remain configured until reset.

References

ru:Autoconfig