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]):

    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.

OEM MIPS Millenium 4000

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

Articles:

    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 :

acer_pica.jpg
Full-size AT board:

 I/O port mapping:

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
acer_pica_slot.jpg
  • 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)
acer_pica_cache.jpg
  • 512Kb L2-cache

  • The R4000 CPU has built-in secondary cache controller in a "just add a fast SRAM" style.
acer_pica_cpu.jpg acer_pica_c_1.jpg
  • 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 (??)

acer_pica_c_2.jpg
  • 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
acer_pica_net.jpg
0x80001000 0xe0001000 network. IRQ 21


acer_pica_io.jpg
acer_pica_io_1.jpg

 am53c94.pdf

0x80002000 SCSI. DMA 0, IRQ 21
acer_pica_io_2.jpg
  • 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
acer_pica_io_3.jpg
  • 7-seg+dot green LED indicator
0x8000f000 0xe000f000 LED
acer_pica_io_4.jpg
  • 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 
acer_pica_io_5.jpg
0x80004000 - RTC, IRQ 31
 


acer_pica_visitor.jpg
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.

isa_vga.jpg
    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

    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:cvs@ftp.linux-mips.org:/home/cvs login
 (Only needed the first time you use anonymous CVS, the password is "cvs")
$ cvs -d :pserver:cvs@ftp.linux-mips.org:/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 ??)

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:

TODO:

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:

Part of TXTSETUP.SIF file.

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


Some SGI stuff

Arcboot

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