Autoconfig
{{short description|Amiga system for automatically setting up hardware peripherals}}
{{distinguish|GNU Autoconf}}
{{more footnotes|date=August 2008}}
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.{{cite book | last=Miner | first=Jay | authorlink=Jay Miner | title=Amiga Hardware Reference Manual | edition=Third | series=Amiga Technical Reference Series | year=1991 | publisher=Addison-Wesley | isbn=0-201-56776-8 | url=https://archive.org/details/amiga-hardware-reference-manual-3rd-edition}} It is analogous to PCI configuration through ACPI.{{cite web |url=https://www.minitool.com/lib/acpi.html |title=What Is ACPI (Advanced Configuration and Power Interface)? |last=To |first=Acpi |date=3 July 2020 |orig-date=April 29, 2021 |access-date=2021-04-29 }}{{cite web |url=http://theamigamuseum.com/amiga-kickstart-workbench-os/kickstart/kickstart-1-2/ |title=The Amiga Museum » Kickstart 1.2 |last=Received |first=Intuition |orig-date=April 29, 2021 |access-date=2021-04-29 }}
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.
Protocol
Expansion devices respond to certain fixed memory addresses starting at hexadecimal {{nowrap|0xE8 0000}} (or {{nowrap|0xFF00 0000 }} 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.{{cite web |url=http://amigadev.elowar.com/read/ADCD_2.1/Hardware_Manual_guide/node02C7.html |title=K / AUTOCONFIG(TM) / The Autoconfig Mechanism |last=Pic |first=The |orig-date=April 29, 2021 |access-date=2021-04-29 }}
Hardware specifications and bus connections
Autoconfig is part of the Zorro II 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.{{citation | url=http://www.bombjack.org/commodore/amiga/amiga-commodore/Amiga_A500_A2000_Technical_Reference_Manual_1987.pdf | last=Finkel | first=Steve | title=Commodore Amiga A500/A2000 Technical Reference Manual | publisher=Commodore-Amiga, Inc. | year=1987 | access-date=2011-09-03 | archive-url=https://web.archive.org/web/20120613032004/http://www.bombjack.org/commodore/amiga/amiga-commodore/Amiga_A500_A2000_Technical_Reference_Manual_1987.pdf | archive-date=2012-06-13 | url-status=dead }} 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.{{cite web | title=The Zorro III Bus Specification | url=http://www.thule.no/haynie/zorroiii/docs/zorro3.pdf | first=Dave | last=Haynie | date=20 March 1991 | publisher=Commodore-Amiga, Inc. | access-date=31 January 2010 | archive-url=https://web.archive.org/web/20120716212151/http://www.thule.no/haynie/zorroiii/docs/zorro3.pdf | archive-date=16 July 2012 | url-status=dead }} 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.
Notation
In early Commodore documents it was styled Auto Configuration, auto-config or AutoConfig,{{citation | url=http://www.bombjack.org/commodore/amiga/amiga-commodore/Amiga_2000_Introduction.pdf | title=Introduction to the Commodore Amiga 2000 | year=1987 | publisher=Commodore-Amiga, Inc. | access-date=2011-09-03 | archive-url=https://web.archive.org/web/20120613032141/http://www.bombjack.org/commodore/amiga/amiga-commodore/Amiga_2000_Introduction.pdf | archive-date=2012-06-13 | url-status=dead }} whereas in later documents it was styled AUTOCONFIG.
References
{{Portal|Amiga}}
{{reflist}}
External links
- [http://wiki.amigaos.net/wiki/Amiga_Hardware_Manufacturer_ID_Registry Amiga Hardware Manufacturer ID Registry]
{{Amiga hardware}}