Autoconfig
Encyclopedia
Autoconfig is an auto-configuration
protocol of Amiga
computers which is intended to automatically assign resources to expansion devices without the need for jumper
settings. It is analogous to PCI configuration
.
AutoConfig is integrated within the Amiga's Kickstart
firmware, usually stored in ROM.
When the system is switched on, AmigaOS
interrogates each expansion device in turn and assigns address space or resources as needed. For example, in the case of a memory card, the OS can dynamically add the memory to the system. Through Autoconfig the OS can access firmware on expansion devices, for example, to boot from a disk connected to a hard disk controller.
) if the /CFGIN signal is asserted and the device is not already configured. The CPU
reads nibble
s 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 OR
s 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.
and Zorro III
expansion bus specification for configuring expansion devices in Amiga systems. Zorro II
was first used in the Amiga 2000, though a similar expansion bus is present on the Amiga 1000
. Zorro II is a relatively straightforward extension of the 68000 bus. Autoconfig requires the 68000 data and address bus to be available to all devices on the bus. In theory, a virtual address system, as used in PCI, would require a minor revision to Autoconfig.
The Amiga 2000 can accommodate five Zorro expansion cards, such as, RAM expansions, SCSI controllers and graphic cards. However the standard does not put a limit on the number of devices. In the A2000, two Zorro II slots are aligned with ISA
slots. The Zorro bus and ISA bus can be connected by means of a "bridgeboard", such as, the Janus Hardware Emulator, which allows emulation of Intel 80286 or 80386 systems.
Zorro III is the 32 bit auto-configuring expansion bus of Amiga 3000
and Amiga 4000
systems. From the A3000 design onwards, it was deemed desirable for all enumerable hardware expansions to use Autoconfig. It is OS-legal for non-Autoconfig hardware to be completely ignored and the standard was adopted in AmigaOS 3.1.
, 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. Autoconfig does support hot-plugging but only for one device (the last one). Most manufacturers which required hot-plugging instead did not use Autoconfig for whatever was being added and removed (e.g. a PCMCIA card) but instead assigned whatever resource was necessary permanently to the port or controller and handled the addition or removal much like inserting a floppy disk.
An Amiga's Autoconfig is performed by the OS at boot-time and may not be changed without rebooting. In theory, PCI can change its resource allocation at any time, though both the popular Linux and Windows operating systems do not allow such changes due to architectural limitations in the respective operating systems. Direct PCI hardware (e.g. A PCI card), however, may not be hot-plugged (PCI configuration registers are a separate part of the specification) due to the synchronous arbited nature of the bus. So, PCI can reallocate resources on the fly, which it does when the OS loads and may override BIOS resource allocation, but cannot change the hardware while the system is running. Autoconfig can change the hardware while the system is running but only for the last hardware in the config sequence, or to add a new piece of hardware. Neither Autoconfig nor PCI PnP actually allow this in any considerable operating system.
Auto-configuration
Auto-configuration is the automatic configuration of devices without manual intervention, without any need for software configuration programs or jumpers. Ideally, auto-configuring devices should just "plug and play"...
protocol of Amiga
Amiga
The Amiga is a family of personal computers that was sold by Commodore in the 1980s and 1990s. The first model was launched in 1985 as a high-end home computer and became popular for its graphical, audio and multi-tasking abilities...
computers which is intended to automatically assign resources to expansion devices without the need for jumper
Jumper (computing)
In electronics and particularly computing, a jumper is a short length of conductor used to close a break in or bypass part of an electrical circuit...
settings. It is analogous to PCI configuration
PCI Configuration Space
PCI configuration space is the underlying way that the Conventional PCI, PCI-X and PCI Express perform auto configuration of the cards inserted into their bus.- Technical information :...
.
AutoConfig is integrated within the Amiga's Kickstart
Kickstart (Amiga)
Kickstart is a commonly used term for the bootstrap firmware of the Amiga computers developed by Commodore.Most Amiga models were shipped with the Kickstart firmware stored on ROM chips...
firmware, usually stored in ROM.
When the system is switched on, AmigaOS
AmigaOS
AmigaOS is the default native operating system of the Amiga personal computer. It was developed first by Commodore International, and initially introduced in 1985 with the Amiga 1000...
interrogates each expansion device in turn and assigns address space or resources as needed. For example, in the case of a memory card, the OS can dynamically add the memory to the system. Through Autoconfig the OS can access firmware on expansion devices, for example, to boot from a disk connected to a hard disk controller.
Protocol
Expansion devices respond to certain fixed memory addresses starting at hexadecimal E80000 (or FF000000 for Zorro IIIZorro III
Released as the expansion bus of the Commodore Amiga 3000 in 1990, the Zorro III computer bus was used to attach peripheral devices to an Amiga motherboard. Designed by Commodore International lead engineer Dave Haynie, the 32-bit Zorro III replaced the 16-bit Zorro II bus used in the Amiga 2000...
) if the /CFGIN signal is asserted and the device is not already configured. The CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...
reads nibble
Nibble
In computing, a nibble is a four-bit aggregation, or half an octet...
s of configuration information (usually supplied by a PAL
Programmable Array Logic
The term Programmable Array Logic is used to describe a family of programmable logic device semiconductors used to implement logic functions in digital circuits introduced by Monolithic Memories, Inc. in March 1978. MMI obtained a registered trademark on the term PAL for use in "Programmable...
) 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
Backplane
A backplane is a group of connectors connected in parallel with each other, so that each pin of each connector is linked to the same relative pin of all the other connectors forming a computer bus. It is used as a backbone to connect several printed circuit boards together to make up a complete...
design such as the Amiga 2000
Amiga 2000
The Amiga 2000, or A2000, is a personal computer released by Commodore in 1986. It is the successor to the Amiga 1000.-Features:Aimed at the high-end market, the original Europe-only model adds a Zorro II backplane, implemented in programmable logic, to the custom Amiga chipset used in the Amiga 1000...
, 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 OR
Logical disjunction
In logic and mathematics, a two-place logical connective or, is a logical disjunction, also known as inclusive disjunction or alternation, that results in true whenever one or more of its operands are true. E.g. in this context, "A or B" is true if A is true, or if B is true, or if both A and B are...
s 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
7400 series
The 7400 series of transistor-transistor logic integrated circuits are historically important as the first widespread family of TTL integrated circuit logic. It was used to build the mini and mainframe computers of the 1960s and 1970s...
(quad OR gate) on the Amiga 2000, which is the only motherboard
Motherboard
In personal computers, a motherboard is the central printed circuit board in many modern computers and holds many of the crucial components of the system, providing connectors for other peripherals. The motherboard is sometimes alternatively known as the mainboard, system board, or, on Apple...
hardware required by Autoconfig.
Hardware specifications and bus connections
Autoconfig is part of the Zorro IIZorro II
Zorro II is the name of the general purpose expansion bus used by the Amiga 2000 computer. The bus is mainly a buffered extension of the Motorola 68000 bus, with support for bus mastering DMA. The expansion slots use a 100-pin connector and the card form factor is the same as the IBM PC...
and Zorro III
Zorro III
Released as the expansion bus of the Commodore Amiga 3000 in 1990, the Zorro III computer bus was used to attach peripheral devices to an Amiga motherboard. Designed by Commodore International lead engineer Dave Haynie, the 32-bit Zorro III replaced the 16-bit Zorro II bus used in the Amiga 2000...
expansion bus specification for configuring expansion devices in Amiga systems. Zorro II
Zorro II
Zorro II is the name of the general purpose expansion bus used by the Amiga 2000 computer. The bus is mainly a buffered extension of the Motorola 68000 bus, with support for bus mastering DMA. The expansion slots use a 100-pin connector and the card form factor is the same as the IBM PC...
was first used in the Amiga 2000, though a similar expansion bus is present on the Amiga 1000
Amiga 1000
The A1000, or Commodore Amiga 1000, was Commodore's initial Amiga personal computer, introduced on July 23, 1985 at the Lincoln Center in New York City....
. Zorro II is a relatively straightforward extension of the 68000 bus. Autoconfig requires the 68000 data and address bus to be available to all devices on the bus. In theory, a virtual address system, as used in PCI, would require a minor revision to Autoconfig.
The Amiga 2000 can accommodate five Zorro expansion cards, such as, RAM expansions, SCSI controllers and graphic cards. However the standard does not put a limit on the number of devices. In the A2000, two Zorro II slots are aligned with ISA
ISA
Isa is the name by which Jesus is known in the Muslim world.Isa may also refer to:* Isha Upanishad, Hindu religious text* Isa , 2004 album by Enslaved* Isa , common Arabic and Turkish male name...
slots. The Zorro bus and ISA bus can be connected by means of a "bridgeboard", such as, the Janus Hardware Emulator, which allows emulation of Intel 80286 or 80386 systems.
Zorro III is the 32 bit auto-configuring expansion bus of Amiga 3000
Amiga 3000
The Commodore Amiga 3000, or A3000, was the third major release in the Amiga computer family. Released in June 1990, it features improved processing speed, improved rendering of graphics, and a new revision of the operating system...
and Amiga 4000
Amiga 4000
The Commodore Amiga 4000, or A4000, is the successor of the A2000 and A3000 computers. There are two models, the A4000/040 released in October 1992 with a Motorola 68040 CPU, and the A4000/030 released in April 1993 with a Motorola 68EC030....
systems. From the A3000 design onwards, it was deemed desirable for all enumerable hardware expansions to use Autoconfig. It is OS-legal for non-Autoconfig hardware to be completely ignored and the standard was adopted in AmigaOS 3.1.
Comparison with PCI configuration
Compared with PCI configurationPCI Configuration Space
PCI configuration space is the underlying way that the Conventional PCI, PCI-X and PCI Express perform auto configuration of the cards inserted into their bus.- Technical information :...
, Autoconfig is much simpler, yet provides the same basic functions. PCI allows random access
Random access
In computer science, random access is the ability to access an element at an arbitrary position in a sequence in equal time, independent of sequence size. The position is arbitrary in the sense that it is unpredictable, thus the use of the term "random" in "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. Autoconfig does support hot-plugging but only for one device (the last one). Most manufacturers which required hot-plugging instead did not use Autoconfig for whatever was being added and removed (e.g. a PCMCIA card) but instead assigned whatever resource was necessary permanently to the port or controller and handled the addition or removal much like inserting a floppy disk.
An Amiga's Autoconfig is performed by the OS at boot-time and may not be changed without rebooting. In theory, PCI can change its resource allocation at any time, though both the popular Linux and Windows operating systems do not allow such changes due to architectural limitations in the respective operating systems. Direct PCI hardware (e.g. A PCI card), however, may not be hot-plugged (PCI configuration registers are a separate part of the specification) due to the synchronous arbited nature of the bus. So, PCI can reallocate resources on the fly, which it does when the OS loads and may override BIOS resource allocation, but cannot change the hardware while the system is running. Autoconfig can change the hardware while the system is running but only for the last hardware in the config sequence, or to add a new piece of hardware. Neither Autoconfig nor PCI PnP actually allow this in any considerable operating system.