ACER PICA-61

Repackaged (AT server case, 300W PS).

The ACER PICA-61 is a vintage 1993 MIPS-based computer.

Architecture

ACER PICA 61 uses ARC firmware on the JAZZ hardware platform.

ARC

The Advanced Computing Environment (ACE) consortium was
set up in the early 1990's by a number of companies to try and make a commodity
computing platform based on MIPS
processors as an alternative to the IBM-compatible Personal Computer.

The ACE consortium produced the Advanced
RISC Computing (ARC) Specification (393K bytes, PDF), to specify hardware
and firmware standards for this new computing platform.

[...] Back during the ACE initiative, Olivetti licensed
the Jazz design and marketed the machine with Windows NT as the OS. MIPS
Computer Systems, Inc. bought the Jazz design and marketed it as the MIPS Magnum
4000 series of machines ("RC4030"). Magnum 4000 systems were
marketed with Windows NT and RISC/os as the operating systems.

[...] 1992. MIPS Computer Systems announces the Magnum
4000 and Millennium 4000 OEM systems, based on the ARC System 100 design. Both
use a 50/100-MHz R4000 processor.

[...] The Acer PICA is derived from the Mips
Magnum 4000 design. It differs in details, i.e. it has secondary ISA/EISA
PC-Style IRQ (i8259) and DMA (i8257) controllers in the ISA address space:
0x90000000. AFAIK, the original Magnum hasn't.

Jumper Setting (Acer Formula [Acer PICA successor]):

http://assist.acer.com/public/articles/566.htm
(local copy).

Magnum 3000 ("RC3230" or "M/20"or
"Pizazz", R3000 + R3010 at 25 MHz, desktop) was a pre-ACE MIPS Co.
computer and not compatible with ARC BIOS specs, was designed to run MIPS RISC/os.
It's also known as mipsco in
the NetBSD ports. Hardware details are there.

ARC/JAZZ Computers

The ARC (MIPS little-endian, WindowsNT) computers wasn't
very popular. There was about 5..10 companies manufacturing ARC MIPS computers.
The TXTSETUP.SIF file (extracted from the
original WindowsNT 4.0) describes some different machines and hardware drivers
map.

Original: Microsoft Jazz, MIPS Magnum 4000, Olivetti M-700 (incompatible
sound system)

Jazz clones: ACER PICA/Formula, NEC: RISCServer, Image RISCStation, Express5800/2x0

DeskStation Techology RISC PC: Evolution, Tyne rPC44 e.t.c.

ODC design: Carrera Computers

Siemens-Nixdorf SNI RM200, RM300, RM400

OEM MIPS Millenium 4000

OEM version (motherboard) of the MIPS Magnum 4000. (Pictures from the oldcomputers)

Articles:

BYTE December 1990. Reviews Sony NeWS and
MIPS Magnum.

BYTE December 1990. The Mips R4000.

BYTE  June 1993. Overview of the
Carrera Computers and ACER PICA.

BYTE August 1993. Overview of the
DeskStation Technology, Inc. Evolution RISC PC rPC 444e/100.

PC-Magazine May 1994. RISC workstations:
ready for the desktop?

Acer Formula 4400

DeskStation Tyne v4633x.

NeTpower NeTstation 300

Silicon Graphics Indy

BYTE July 1994. Turn
Your PC into a Powerful RISC Machine. Nitro-VLB

Windows IT Pro February 1996: MIPS/NT:
Allied from Birth

Windows Magazine June 1996. NT Vendors
Reducing RISC.

It seems, the latest (and most powerful) ARC machines was
a "NEC RISCServer 10000" (upto 4xR10000 250MHz) and Siemens-Nixdorf
SNI RM600 computers.

October 16, 1996: Microsoft Drops
support for Windows NT 4.0/MIPS, so ARC architecture died...

ARC BIOS

ARC
(Advanced RISC Computer) BIOS specification was developed by ACE (and Microsoft)
to run Microsoft Windows NT╝ on the RISC-based machines. It provides
hardware-level drivers, restricted pseudo-POSIX API/environment (argc/argv/env)
and REGISTRY-like hardware specification database. It can load and run (in
single-task mode) MIPS ECOFF executable files from the SCSI HDD FAT partition,
ISO-9660 (not Joliet) CD-ROM and from FAT Floppy. (and Network BOOTP ???). All
ARC BIOS machines are little-endian.

The ARC specification wasn't MIPS-specific. The DEC Alpha
systems has Alpha ARC BIOS (NT Boot) as an option (.vs. DEC SRM console) to run
Microsoft Windows NT on the Alpha AXP. There was at least one computer with i386
ARC : Olivetti 386/33.

Silicon Graphics Inc. mainly follows the ARC
specifications in their PROM-Monitor firmware (ARCS, man prom(1M)), but
SGI's machines are big-endian and can't run Windows NT/MIPS.

The ARC specification is still alive in the Windows NT
family (even in the Windows XP). The [boot loader] section's OS location
information and the [operating systems] section's OS path information in the C:\boot.ini
both follow the conventions in the Advanced RISC Computing (ARC) specifications,
i.e. :

scsi(0)disk(0)rdisk(0)partition(1)\Winnt

Windows NT recognizes three ARC path structures: multi syntax, scsi
syntax, and signature syntax.

API Details

Memory dump: the ARC BIOS signature at KSEG0 :

0x80001000: 41 52 43 53 00 00 00 00 01 00 02 00 00 00 00 00 ARCS............
0x80001010: 00 00 00 00 00 00 00 00 00 00 00 00 90 01 00 00 ................

Application call convention:

int main(argc, argv, envp)
int argc;
char **argv;
char **envp;
{
...
move s0, a0 # save argc
move s1, a1 # save argv
move s2, a2 # save envp
...

Call vector:

ARC BIOS provides call vector table for the ARC BIOS
services.

N Offset Name
00 0x00 Load
01 0x04 Invoke
02 0x08 Execute
03 0x0c Halt
04 0x10 PowerDown
05 0x14 Restart
06 0x18 Reboot
07 0x1c EnterInteractiveMode
08 0x20 ReturnFromMain
09 0x24 GetPeer
10 0x28 GetChild
11 0x2c GetParent
12 0x30 GetConfigurationData
13 0x34 AddChild
14 0x38 DeleteComponent
15 0x3c GetComponent
16 0x40 SaveConfiguration
17 0x44 GetSystemId
18 0x48 GetMemoryDescriptor
19 0x4c Signal
20 0x50 GetTime
21 0x54 GetRelativeTime
22 0x58 GetDirectoryEntry
23 0x5c Open
24 0x60 Close
25 0x64 Read
26 0x68 GetReadStatus
27 0x6c Write
28 0x70 Seek
29 0x74 Mount
30 0x78 GetEnvironmentVariable
31 0x7c SetEnvironmentVariable
32 0x80 GetFileInformation
33 0x84 SetFileInformation
34 0x88 FlushAllCaches
35 0x8c TestUnicodeCharacter
36 0x90 GetDisplayStatus

ACER PICA-61 hardware :

Full-size AT board:

AT Power Supply connector

AT Keyboard and PS/2 mouse (i8042 interface)

8 SIMM slots (4..8..16..32Mb, FPM/EDO, no parity)

I/O port mapping:

NetBSD pica.h <CVS>

Linux
Kernel 2.4 jazz.h <CVS>

I/O map:  * Real hardware address  *
Virtual ARC BIOS address, KSEG3 (see the ARC BIOS "default" tlb)

0x80005000 0xe0005000 AT keyboard i8042 controller. IRQ 23
0x80005000 0xe0005000 PS/2 mouse controller. IRQ 24

5 standart ISA slots

1 custom I/O card slot

1 Video (Second row of contacts like EISA.

Old (ACER) version of VESA Local Bus (??))

Unfortunately, the original VideoCard (S3 based ?)

was lost, so I use ISA VGA Card

0x90000000 0xe2000000 ISA I/O space
0x91000000 0xe3000000 ISA address space (16Mb)

512Kb L2-cache

The R4000 CPU has built-in secondary cache controller in a "just
add a fast SRAM" style.

PACEMIPS PR4000-50SG179C CPU by Performance
Semiconductor Corp. 50MHz (internal: 2x50=100 ??)

Requires CPU fan

ALI (Acer Labs Inc.) M1219-A1 :
PC-Style 486-AT chip controller (IRQ, DMA, Timers, e.t.c.)

0x90000000 ISA I/O BUS + IBM PC/AT hardware

See Ralf
Brown's PORTLIST
for details.

ISA IRQ and DMA controllers not in use (??)

ALI (Acer Labs Inc.) M6101-A1
(ACER PICA 61 Chipset). JAZZ chipset + some PICA specific

0x80000000 0xe0000000 JAZZ config registers
0x80000008 0xe0000008 JAZZ Revision
0x80000100 0xe0000100 JAZZ DMA controller
0x80000200 0xe0000200 JAZZ IRQ controller
0x8000d000 0xe000d000 DMA Dummy device
0x800e0000 0xe000e000 DRAM Config register
0xf0000000 Interrupt SRC register

National Semiconductor SONIC
(System-Oriented Network Interface Controller) DP83932

0x80001000 0xe0001000 network. IRQ 21

Custom ACER PICA I/O Board. Look at the reversed-ISA slot key.

NCR SCSI-2 chip 53C94;
ESP216

am53c94.pdf

0x80002000 SCSI. DMA 0, IRQ 21

ALI (Acer Labs Inc.) M5107-A1 :
ISA PC-Style I/O chip

(Floppy i82077, 2xRS-232 16c450, LPT)

0x80003000 floppy i82077, DMA 1
0x80006000 com1. 16c450. IRQ 25
0x80007000 com2. 16c450. IRQ 26
0x80008000 lpt. IRQ 17

0x8000c000 JAZZ sound (???) IRQ 18

7-seg+dot green LED indicator

0x8000f000 0xe000f000 LED

ACER PICA ARC BIOS (27xxxx ? )

Dallas
DS1225Y Env. NVRAM (8Kx8; like 2764 EPROM or 6264 RAM)

0x80009000 Unrotected NVRAM
0x8000a000 Protected NVRAM
0x8000b000 Read-only NVRAM

Dallas DS1287
(MC146818A clone) PC-Style Real-Time Clock (new chip: DS1287A)

0x80004000 - RTC, IRQ 31

My cat and ACER PICA 61.

Video

Unfortunately, the original ACER PICA-61 videocard (S3
805-based framebuffer) was lost :(

0x60000000 0xe0200000 Video control, IRQ 19
0x60200000 0xe0400000 Extended video control
0x40000000 0xe0800000 Video memory (4Mb) framebuffer 1024x768

Computer completely hangs on access to the 0xe0800000
address ! It seems, all OSes hangs there.

The old ISA VGA (CirrusLogic CL-GD5401). It works fine in any
ISA slot. (It works even without VGA BIOS :)

0x900003c0 0xe20003c0 - ISA + VGA I/O port
0x910b8000 0xe30b8000 - ISA + VGA video memory (text mode)
0x910a0000 0xe30a0000 - ISA + VGA video memory (graphic mode)

Also works: ISA CirrusLogic CL-GD5429, Chips&Tecnologies
82c451.

Other ISA: Trident TVGA 8900, Trident 9000, OAK OTI037C,
Realtec RTG 3105 VGA cards does not work.

Software :

Arcdiag

The arcdiag
diagnostic utility is an example of the ARC MIPS standalone application. (binary,
local src copy, local
binary copy). To run it, put this binary file on the FAT-formatted floppy
and run "A:ARCDIAG" or "multi()disk()fdisk()\ARCDIAG".
The example of output at my ACER PICA 61.

It works for the ARCS (big-endian) SGIs too, after
recompilation in BE.

The arcdiag utility comes from the NetBSD world, so
it's very difficult to build it standalone on the Linux box (lack of
#includes)...

P.S. I've packaged a "standalone" arcdiag
version (with BSD includes/*, BSD string lib and tiny osd-prinf):
arcdiag-0.2a-standalone.tgz
.

ROM Monitor

ACER PICA-61 has a built in ROM Monitor.

Copyright ╘ Waldorf Electronics

Very restricted MIPS monitor (memory/register dump and
BSOD trap handler)

Milo/Pandora

MILO (MIps LOader) is an ARC standalone application:
the kernel loader (with ELF support). You don't need it now, only for the
Siemens-Nixdorf SNI RM-200 buggy ARC BIOS. To load a Linux kernel on the old
Boot-Proms (without ELF support) you need to convert a kernel image into ECOFF
format with ./arch/mips/boot/elf2ecoff utility.

Pandora - "The ARC Explorer" - tiny ARC
MIPS debugger/disassembler/loader.

ftp://ftp.linux-mips.org/pub/linux/mips/ancient/milo/
(binaries included)

Unmodified version of the Pandora traps (on TLB) at my
ACER PICA-61. It seems, I have early version of the PICA hardware,
without Memory Status Register at the 0xe00fffe0.

To recompile a milo/pandora you need a Linux  kernel
sources < 2.1.40  (or you should change "#include asm/pica.h"
to the "#include asm/jazz.h" ).

ToDo: recompile

Linux

Linux MIPS site http://www.linux-mips.org

Debian http://www.debian.org/ports/mips/

Gentoo MIPS http://dev.gentoo.org/~kumba/mips/docs/gentoo-mips-install.html

Archive http://www.ibiblio.org/pub/historic-linux/early-ports/Mips/

Unfortunately, Linux kernel for this architecture (JAZZ)
is outdated. There are some code in the kernel, but it does not work now.
The new 2.6 kernel is mainly 64-bit MIPS... The 2.4 kernel (at least 2.4.27) has
broken code and it's impossible even compile it (a lot of cc syntax errors).

$ cvs -d :pserver:[email-masked]:/home/cvs login

(Only needed the first time you use anonymous CVS, the password is "cvs")

$ cvs -d :pserver:[email-masked]:/home/cvs co -r linux_2_4 linux

It seems, this code was broken since early 2.2... I'm
trying to get JAZZ working now...

Linux kernel bugzilla: http://bugme.osdl.org

Binary kernel: ftp://ftp.linux-mips.org/pub/linux/mips/mipsel-linux/boot/vmlinux-m700-2.1.131.gz

Does not work - writes info about memory regions (via ARC BIOS printf) and hangs
(requires Serial Console or framebuffer ??)

Linux MIPS Porting Guide
- Good introduction, Linux startup sequence.

Linux -
A Jorney - Kernel startup sequence

OpenBSD

http://www.openbsd.org/arc.html

Not tested yet

The OpenBSD/arc port has been discontinued after the 2.3 release.

NetBSD

http://www.netbsd.org/Ports/

http://www.netbsd.org/Ports/arc/

Binary NetBSD 1.6.2 RAMDISK
kernel silently hangs :(

DOC:

Cross-Building NetBSD

Setting up NetBSD cross-build environment

TODO:

Setup an i386 NetBSD 1.6.2 development host (done)

Compile a MIPS toolchain (done)

Build a new kernel, serial+ramdisk

Try NetBSD 2.0 rc4 ?

FreeBSD

http://www.freebsd.org/platforms/mips.html

Dead ?

Not tested yet

Windows NT stuff

All versions of the the Windows NT/MIPS (3.1, 3.5, 3.51,
4.0) has a 3 standalone ARC (little-endian ECOFF) utilities:

arcinst.exe - Windows NT hdd partition tool and formatter (FAT
only). Uses ARC BIOS to direct access hdd. The file has .exe
extension, but internally it is a MIPS ECOFF file. The sourcecode of the arcinst.exe
is available from the early beta of the SDK/DDK.

setupldr - Windows NT installer. To start a Windows NT installation
from the ARC BIOS, put a Windows NT CD into CD-ROM drive (SCSI ID:6) and
Run: scsi(0)cdrom(6)fdisk(0)\MIPS\setupldr . (To run a repair procedure,
press a R key).

osloader - Windows NT boot loader. It reads FAT formatted partition
and parses C:\boot.ini file to find a Windows NT OS kernel and
appropriate HAL (in MIPS PE .exe format ?)

Part of TXTSETUP.SIF file.

Q93786:
Sound Driver for RISC-based ARC-Compliant Computers

Q102873
: BOOT.INI and ARC Path Naming Conventions and Usage

Q105235:
Using the Windows NT Emergency Repair Disk on a MIPS System

Q164951:
Visual C++ RISC Edition Version Information

The Windows NT/MIPS can't run on this machine, it seems,
due to incompatible ISA VGA card.

Windows NT 3.1 - installation OK, bootload hangs (videomode (?)).

Windows NT 3.51 - installation hangs on the fat.sys driver
installation.

Windows NT 4.0 - installation hangs (trying to switch to 80x43 videomode
(?))

Some SGI stuff

Arcboot

SGI Arcboot
- It works only for the SGI ARCS computers.

Linux Arcboot
HOWTO

NetBSD SGI FAQ

Arcdiag

Precompiled arcdiag.ip22
(big-endian)

IRIX sash

IRIX sash (standalone shell) is an example of the ARCS (big-endian ARC)
standalone utility. Tiny shell and bootloader.

IRIX fx

IRIX fx - standalone ARCS fdisk-like disk formatter/partition tool.

Last changed 25-10-2004 21:49:20