===== AlphaPC 164 =====
^ AlphaPC 164 ^^
^ CPU | [[wp>Alpha_21164#Alpha_21164A|21164A]] (EV56), 366 to 500 MHz |
^ Core logic | [[hardware:chipsets#21172|21172]] (CIA) |
^ Memory | 8 SIMM slots, FPM DRAM, up to 512 MiB |
^ Buses | 64-bit PCI, 32-bit PCI, ISA |
^ Form factor | ATX |
^ Onboard I/O | CMD646 IDE, floppy, 2 serial, parallel, keyboard, mouse |
^ Firmware | ARC or SRM (last V5.5-1), MILO |
^ Kernel option | ''CONFIG_ALPHA_PC164'' |
^ Linux | Supported |
The AlphaPC 164 is an ATX form factor motherboard produced by Digital Semiconductor. It is a member of the EB164 family (along with the [[hardware:motherboards:eb164|EB164]], [[hardware:motherboards:pc164lx|AlphaPC 164LX]], and [[hardware:motherboards:pc164sx|AlphaPC 164SX]]), and was the first Digital Semiconductor board to use the 21164A (EV56) CPU. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1996-September.mbox#L3768|"Re: Difference between PC164 and EB164"]], David A Rusling, axp-list, 3 Sep 1996)] [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2002-January.mbox#L2348|"Re: Kernel 2.4.17"]], Jay Estabrook, axp-list, 8 Jan 2002)] Before release it was sometimes called the "EB164+". [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1996-May.mbox#L8235|"Re: linux on EB164+"]], Jay Estabrook, axp-list, 10 May 1996)]
wiki:hardware:motherboards:pc164:pc164-1.jpg Digital AlphaPC 164
==== Specifications ====
* 366, 400, 433, 466, or 500 MHz 21164A (EV56) CPU [(>{{wiki:hardware:motherboards:pc164:pc164_product_brief.pdf?linkonly|AlphaPC 164 Motherboard Product Brief}})]; the original 21164 (EV5) is not used [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1998-March.mbox#L18328|"RE: Re: ev56 optimization -> illegal instruction"]], Jay Estabrook, axp-list, 14 Mar 1998)] [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/debian-alpha-mbox/2000-February.mbox#L6964|"Re: Weird Lockups II"]], Richard Henderson, debian-alpha, 20 Feb 2000)]
* 21172 core logic chipset (CIA-2)
* One bank of 4 or 8 36-bit 70 ns SIMMs, supports 16 MiB to 512 MiB of DRAM (128-bit or 256-bit data bus)
* 1 MiB synchronous SRAM L3 cache
* 4x 33 MHz PCI slots (2x 64-bit, 2x 32-bit)
* 2x ISA slots
* Intel 82378ZB PCI-to-ISA bridge
* CMD PCI0646 IDE on PCI
* SMC FDC37C935 Super I/O controller (floppy, 2x UARTs, parallel port, keyboard and mouse, time-of-year clock)
* 1 MiB flash ROM
* Windows NT ARC firmware or SRM console (see [[#firmware|Firmware]])
* ATX form factor power supply with a high-current 3.3V rail (see [[#power_supply|Power Supply]])
* 12.0 in x 9.6 in (30.48 cm x 24.38 cm)
The board is configured with jumper blocks J1, J30, and J31. [(>{{wiki:hardware:motherboards:pc164:pc164_technical_reference_manual.pdf?linkonly|AlphaPC 164 Motherboard Technical Reference Manual}}, pp. 2-4 to 2-7)]
^ Jumper ^ Function ^ Settings ^
| J1 | Memory bus width | In for 128-bit (four SIMMs); out for 256-bit (eight SIMMs) |
| J30 IRQ3 to IRQ0 (pins 1 to 8) | CPU speed | 366 MHz: out, in, out, out; 400 MHz: out, out, in, in; 433 MHz: out, out, in, out; 466 MHz: out, out, out, in; 500 MHz: all out |
| J30 CF1, CF2 (pins 11 to 14) | Bcache size | 1 MiB: both out (default); 2 MiB: CF1 out, CF2 in |
| J30 CF4, CF5 (pins 17 to 20) | Bcache speed | Both out (9 ns, default); the SRAMs are soldered, so this is not changed |
| J30 CF6 (pins 21, 22) | Mini-Debugger | Out (default); in traps to the SROM Mini-Debugger before the flash ROM code runs |
| J30 CF7 (pins 23, 24) | Boot option | Out loads the console (default); in loads the fail-safe booter |
| J31 | Flash ROM update | 2-3 write-enabled (default); 1-2 write-protected |
==== CPU ====
* The CPU speed is set by the clock oscillator (crystal) together with the speed-select jumpers described in the Technical Reference Manual. Changing speed requires a crystal of the matching frequency, e.g. 50.0 MHz for 500 MHz. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1999-December.mbox#L17873|"Re: Weirdness with AlphaPC 164: installing SRM firmware, etc."]], Jim Barriault, axp-list, 10 Dec 1999)]
* The CPU supports the EV56 byte/word extension (BWX), so code compiled with ''-mcpu=ev56'' runs on the board. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2002-January.mbox#L563|"Re: Playing DVDs"]], Jay Estabrook, axp-list, 3 Jan 2002)] The [[hardware:chipsets#21172|21172]] core logic cannot make byte and word accesses to I/O space, so the kernel uses sparse I/O addressing on this board.
* The CPU fan has a rotation sense connection, and the board will not run without a working fan. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1997-August.mbox#L1855|"Re: Replacing PC164 CPU fan"]], David A Rusling, axp-list, 4 Aug 1997)]
==== Memory ====
* SIMMs are installed 4 at a time: 4 SIMMs give a 128-bit memory bus and 8 SIMMs give a 256-bit memory bus. All installed SIMMs must be the same size, so the maximum of 512 MiB requires 8x 64 MiB SIMMs. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1998-August.mbox#L48650|"Re: Memory for alpha PC164"]], Stephen Williams, axp-list, 20 Aug 1998)]
* Standard page mode DRAM SIMMs are required; EDO SIMMs offer no benefit and may not work. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1996-July.mbox#L183|"Answers to other PC164 questions"]], Jim Spink, axp-list, 11 Jul 1996)]
* 1 GiB configurations, beyond the documented maximum, have been reported to work only with modules from one vendor. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1997-June.mbox#L13598|"Re: 1 GB RAM in PC164"]], Wolfgang Dreyer, axp-list, 13 Jun 1997)]
==== Power supply ====
* The board does not drive the ATX ''PS_ON'' signal, so a standard ATX power supply will not turn on unless ''PS_ON'' (pin 14) is connected to ground, e.g. with a latching switch. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1999-May.mbox#L47794|"Re: PC164 Motherboards"]], Robert Bowles, axp-list, 20 May 1999)] [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1999-July.mbox#L33698|"RE: alphapc 164 motherboard question"]], Bernard Chew, axp-list, 26 Jul 1999)] Some boards have a factory rework wire tying ''PS_ON'' to ground, so they power on whenever the supply has AC power (see ''pc164-engineering-fix.jpg'' in the gallery).
* A 500 MHz 21164A draws about 11.5 A from the 3.3V rail, and the board itself about 5 A more, which exceeds the 3.3V capacity of many ordinary ATX power supplies. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1997-June.mbox#L16468|"PC164 power-supplies"]], T. S. Horsnell, axp-list, 15 Jun 1997)]
* The time-of-year clock battery is a replaceable CR2032 coin cell at B1. [(>{{wiki:hardware:motherboards:pc164:pc164_technical_reference_manual.pdf?linkonly|AlphaPC 164 Motherboard Technical Reference Manual}}, pp. 2-3, 4-9)] A depleted battery causes a variety of firmware problems. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1999-December.mbox#L20433|"Re: Weirdness with AlphaPC 164: installing SRM firmware, etc."]], Joel Votaw, axp-list, 10 Dec 1999)]
==== Firmware ====
* Boards were sold with either the ARC console (for Windows NT and Linux) or the SRM console (licensed for Digital UNIX). [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1996-July.mbox#L366|"Re: questions on the PC164"]], Maurice Hilarius, axp-list, 11 Jul 1996)]
* Only one console fits in the flash ROM at a time. With SRM in flash, the ARC firmware can be loaded from a FAT floppy using the ''arc'' command. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1996-December.mbox#L18647|"RE: Dual booting PC164"]], Jay Estabrook, axp-list, 12 Dec 1996)]
* Firmware is updated with ''fwupdate.exe'' from a floppy. If the update fails from the console, the fail-safe loader can be used with the firmware image and update utility on a DOS floppy. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1999-October.mbox#L7071|"Re: How to flash MILO? ( Not a faq )"]], Peter Rival, axp-list, 6 Oct 1999)] [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1999-December.mbox#L17772|"Re: Weirdness with AlphaPC 164: installing SRM firmware, etc."]], Jim Barriault, axp-list, 9 Dec 1999)]
* AlphaPC 164 firmware development stopped before that of the 164LX and 164SX. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2000-November.mbox#L22964|"Re: volatile SRM variables"]], Jay Estabrook, axp-list, 12 Nov 2000)] The last SRM release is V5.5-1, built on 14 July 1999. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2004-April.mbox#L872|"seeking SRM device support info..."]], Jay Estabrook, axp-list, 2 Apr 2004)] [(>Console build stamp in ''pc164srm.rom'', ''ftp.digital.com/pub/Digital/Alpha/firmware/archive/alphapc164/'')] Digital's firmware archive page for the board says "Firmware V5.6 was the last release for this system" and links the V5.6 firmware update procedures of December 1999, but the SRM image it offers is V5.5-1. [(>''alphapc164.html'', ''ftp.digital.com/pub/Digital/Alpha/firmware/archive/'')] The ''SMMTABLE.TXT'' file on the V7.3 firmware CD lists SRM 5.5 as the last version for the board but names no update file for it (the entry is ''[ARCHIVE]NOFILE.EXE''). [(>''SMMTABLE.TXT'', Alpha Systems Firmware Update CD V7.3, 14 Mar 2007)]
* The SRM console only probes the primary IDE channel, so devices on the secondary channel cannot be booted from SRM (Linux can use them). [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2004-April.mbox#L1773|"Second IDE port not working on PC164"]], Jay Estabrook, axp-list, 5 Apr 2004)]
* SRM cannot boot from Adaptec 2940UW or 39160, Symbios 53C895, or Mylex DAC1164P controllers. The KZPCM (IntraServer 4280UE-4, with two NCR 53C875 channels) works for both disk and network booting. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2004-October.mbox#L5523|"KZPEA bios?"]], Jay Estabrook, axp-list, 27 Oct 2004)] Network booting from SRM works with Digital Ethernet cards such as the DE435, DE450, and DE500. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1997-September.mbox#L3717|"Re: What SCSI adapters are supported by the PC164 SRM?"]], Jay Estabrook, axp-list, 5 Sep 1997)]
* With SRM V5.5-1, the Matrox Millennium, ELSA Gloria Synergy (Permedia 2), 3Dlabs Oxygen VX1 (Permedia 3), Diamond Stealth III S540 (Savage4), and TGA/TGA2 cards work as console devices, but the 3dfx Banshee does not. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2002-March.mbox#L26887|"Re: PC164 Video card support (voodoo3 ?); [ RE: Where is alphalinux.org? ]"]], Jay Estabrook, axp-list, 24 Mar 2002)] ATI Radeon (R100, RV100, RV200) cards do not work with SRM, but do work with ARC and MILO. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/debian-alpha-mbox/2003-October.mbox#L5274|"Re: Video Card for PC164"]], Jay Estabrook, debian-alpha, 15 Oct 2003)]
==== Linux ====
Current kernels support the AlphaPC 164 with ''CONFIG_ALPHA_PC164'' or a generic kernel; it boots from SRM with [[software:boot_loaders:aboot|aboot]]. [(>[[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/alpha/Kconfig?h=v7.3-rc1|arch/alpha/Kconfig]], Linux 7.3)] Linux treats the board as the PC164 variation of the EB164 family. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2002-January.mbox#L2348|"Re: Kernel 2.4.17"]], Jay Estabrook, axp-list, 8 Jan 2002)] The onboard CMD646 IDE controller uses the ''pata_cmd64x'' driver. [(>[[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/ata/pata_cmd64x.c?h=v7.3-rc1|drivers/ata/pata_cmd64x.c]], Linux 7.3)]
The SMC FDC37C935 Super I/O controller's devices use the standard PC drivers:
* Serial ports: ''8250'', at the standard PC addresses listed in the Alpha serial port table. [(>[[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/alpha/include/asm/serial.h?h=v7.3-rc1|arch/alpha/include/asm/serial.h]], Linux 7.3)]
* Parallel port: ''parport_pc''; floppy: ''floppy''; keyboard and mouse: ''i8042''. [(>[[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/parport/parport_pc.c?h=v7.3-rc1|drivers/parport/parport_pc.c]], Linux 7.3)] [(>[[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/block/floppy.c?h=v7.3-rc1|drivers/block/floppy.c]], Linux 7.3)] [(>[[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/input/serio/i8042.c?h=v7.3-rc1|drivers/input/serio/i8042.c]], Linux 7.3)]
* Clock: the Alpha platform code reads the time-of-year clock itself rather than using ''rtc-cmos''. [(>[[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/alpha/kernel/rtc.c?h=v7.3-rc1|arch/alpha/kernel/rtc.c]], Linux 7.3)]
==== Known issues ====
* **Interrupt masking:** the interrupt masking hardware is broken, so Linux relies on a software workaround, ''CONFIG_ALPHA_BROKEN_IRQ_MASK'', which PC164 and generic kernels enable automatically. [(>[[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/alpha/Kconfig?h=v7.3-rc1|arch/alpha/Kconfig]], Linux 7.3)] Without it the system hangs under heavy network or disk load. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2001-October.mbox#L5046|"Re: Hangs with 100baseTX, RedHat 7.1, kernel 2.4.x and AlphaPC 164"]], Jay Estabrook, axp-list, 4 Oct 2001)] SRM reports the board as the EB164 variation rather than PC164. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2002-March.mbox#L33173|"Re: RedHat vs. PC164/srm -- summary"]], Jay Estabrook, axp-list, 27 Mar 2002)]
==== Clones and OEM systems ====
* The Aspen "Durango" is Aspen's name for the AlphaPC 164. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1996-October.mbox#L28087|"Durango"]], Bernd Robl, axp-list, 19 Oct 1996)]
* Vobis, a German computer retailer, sold systems based on the AlphaPC 164. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1997-April.mbox#L46113|"Installing RH4.1 on PC164 from Vobis"]], Stephan Kanthak, axp-list, 25 Apr 1997)]
==== Conflicting information ====
The following sources conflict with each other or with the account given above. They are listed here for further investigation.
* **Maximum memory**
* {{wiki:hardware:motherboards:pc164:pc164_product_brief.pdf?linkonly|AlphaPC 164 Motherboard Product Brief}}: "16MB-to-512MB memory array"
* [[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1997-June.mbox#L13598|"Re: 1 GB RAM in PC164"]], Wolfgang Dreyer, axp-list, 13 Jun 1997: "Yes but as far as i know only one vendor of memory modules worldwide works."
* **CPU speeds**
* {{wiki:hardware:motherboards:pc164:pc164_product_brief.pdf?linkonly|AlphaPC 164 Motherboard Product Brief}}: "366, 400, 433, 466, and 500 MHz"
* [[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2002-January.mbox#L2348|"Re: Kernel 2.4.17"]], Jay Estabrook, axp-list, 8 Jan 2002: "PC164 EV56 (433-500) CIA-2 AlphaPC164"
==== Documentation ====
^ Document ^ Part number ^ Date ^
| {{wiki:hardware:motherboards:pc164:pc164_technical_reference_manual.pdf?linkonly|AlphaPC 164 Motherboard Technical Reference Manual}} | EC-QPFYB-TE | January 1997 |
| {{wiki:hardware:motherboards:pc164:pc164_user_manual.pdf?linkonly|AlphaPC 164 Motherboard User's Manual}} | EC-QPG0B-TE | January 1997 |
| {{wiki:hardware:motherboards:pc164:pc164_digital_unix_user_manual.pdf?linkonly|AlphaPC 164 Motherboard DIGITAL UNIX User's Manual}} | EC-QZT5B-TE | January 1997 |
| {{wiki:hardware:motherboards:pc164:pc164_product_brief.pdf?linkonly|AlphaPC 164 Motherboard Product Brief}} | EC-QUQKC-TE | January 1997 |
| {{wiki:hardware:motherboards:pc164:pc164_digital_unix_product_brief.pdf?linkonly|AlphaPC 164 Motherboard DIGITAL UNIX Product Brief}} | EC-QZT6B-TE | January 1997 |
| {{wiki:hardware:motherboards:pc164:pc164_read_me_first.pdf?linkonly|Digital Semiconductor AlphaPC 164 Motherboard Design Kit Read Me First}} | EC-QPFZA-TE | September 1996 |
| {{wiki:hardware:motherboards:pc164lx:alphapc_v5.3_firmware_release_notes.pdf?linkonly|AlphaPC 164SX/164LX/164 Motherboards Firmware Update Procedures, V5.3}} | | October 1998 |
| {{wiki:hardware:motherboards:pc164lx:alphapc_v5.7_firmware_release_notes.pdf?linkonly|AlphaPC 164SX/164LX/164 Motherboards Firmware Update Procedures, V5.7}} | | March 2000 |
{{gallery>:wiki:hardware:motherboards:pc164}}
{{tag>hardware motherboard 21164 digital}}