ACER PICA-61
Repackaged (AT server case, 300W PS). |
ACER PICA 61 uses ARC firmware on the JAZZ hardware platform.
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.
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 version (motherboard) of the MIPS Magnum 4000. (Pictures from the oldcomputers)
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 (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.
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 ................
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 ...
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
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
0x90000000 0xe2000000 ISA I/O space 0x91000000 0xe3000000 ISA address space (16Mb) |
The R4000 CPU has built-in secondary cache controller in a "just add a fast SRAM" style. |
|
0x90000000 ISA I/O BUS + IBM PC/AT hardware See Ralf Brown's PORTLIST for details. ISA IRQ and DMA controllers not in use (??) |
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 |
0x80001000 0xe0001000 network. IRQ 21 |
0x80002000 SCSI. DMA 0, IRQ 21 |
0x80003000 floppy i82077, DMA 1 0x80006000 com1. 16c450. IRQ 25 0x80007000 com2. 16c450. IRQ 26 0x80008000 lpt. IRQ 17 0x8000c000 JAZZ sound (???) IRQ 18 |
0x8000f000 0xe000f000 LED |
0x80009000 Unrotected NVRAM 0x8000a000 Protected NVRAM 0x8000b000 Read-only NVRAM |
0x80004000 - RTC, IRQ 31 |
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.
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 .
Copyright © Waldorf Electronics
Very restricted MIPS monitor (memory/register dump and BSOD trap handler)
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
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 ??)
The OpenBSD/arc port has been discontinued after the 2.3 release.
Binary NetBSD 1.6.2 RAMDISK kernel silently hangs :(
DOC:
TODO:
Try NetBSD 2.0 rc4 ?
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.
Precompiled arcdiag.ip22 (big-endian)
IRIX fx - standalone ARCS fdisk-like disk formatter/partition tool.