===== 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.6), 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.6. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/debian-alpha-mbox/2003-January.mbox#L13722|"Re: EB164 SRM Problems"]], Stefan Schroepfer, debian-alpha, 29 Jan 2003)] [(>[[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)] 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}}