Driver:MIPS: Difference between revisions
Pmackinlay (talk | contribs) m (→References) |
Pmackinlay (talk | contribs) |
||
Line 169: | Line 169: | ||
</pre> | </pre> | ||
Most of the prompts from <code>inst</code> are fairly | Most of the prompts from <code>inst</code> are fairly obvious, however there are a few which require further explanation: | ||
* The "remote package root" and "remote packaging information tree" responses must correspond to the "tree" and "umips4.52" directories within the RISC/os network installation structure respectively. | * The "remote package root" and "remote packaging information tree" responses must correspond to the "tree" and "umips4.52" directories within the RISC/os network installation structure respectively. | ||
* The "mh" package is damaged and cannot be installed successfully from the currently available installation media. | * The "mh" package is damaged and cannot be installed successfully from the currently available installation media. |
Revision as of 10:46, 10 June 2019
MIPS
This article and the corresponding MAME driver focus on computers sold by MIPS Computer Systems which use MIPS R2000/R3000 processors and run RISC/os (also known as UMIPS), a port of UNIX System V release 3 with BSD extensions.
Introduction
-
MIPS RS2030
-
MIPS RC3230
-
MIPS M/2000
Status
At this time, the RC2030 and RS2030 systems work well; the main remaining defects in the emulation are some issues with keyboard initialization and the failure of the power-on diagnostics, neither of which affect normal system operation. The RC3230 and RS3230 systems are emulated and close to working state. Other variations have not yet been emulated due to a lack of firmware dumps.
Hardware
Model | Board | CPU | Clock | Slots | Disk | Package | Notes |
---|---|---|---|---|---|---|---|
M/500 | R2300 | R2000 | 5MHz | VME | ESDI | ||
M/800 | R2600 | R2000 | 8MHz | VME | ESDI | ||
M/1000 | R2800 | R2000 | 10MHz | VME | ESDI | ||
M/120-3 | R2400 | R2000 | 12.5MHz | PC-AT | SCSI | Deskside | aka Intrepid |
M/120-5 | R2400 | R2000 | 16MHz | PC-AT | SCSI | Deskside | |
M/180 | R2400 | ||||||
M/2000-6 | R3200 | R3000 | 20MHz | VMEx13 | SMD | Rack Cabinet | |
M/2000-8 | R3200 | R3000 | 25MHz | VMEx13 | SMD | Rack Cabinet | |
M/2000-? | RB3125 | R3000 | 33MHz | ||||
RC2030 | I2000 | R2000 | 16MHz | SCSI | Desktop | aka M/12, Jupiter | |
RS2030 | I2000 | R2000 | 16MHz | SCSI | Desktop | aka M/12, Jupiter | |
RC3230 | R3030 | R3000 | 25MHz | PC-ATx1 | SCSI | Desktop | aka M/20, Pizazz |
RS3230 | R3030 | R3000 | 25MHz | PC-ATx1 | SCSI | Desktop | aka M/20, Pizazz, Magnum 3000 |
RC3240 | R3000 | 25MHz | PC-ATx4 | SCSI | Deskside | M/120 with CPU-board upgrade | |
RC3330 | R3000 | 33MHz | PC-AT | SCSI | Desktop | ||
RS3330 | R3000 | 33MHz | PC-AT | SCSI | Desktop | ||
RC3260 | R3000 | 25MHz | VMEx7 | SCSI | Pedestal | ||
RC3360 | RB3133 | R3000 | 33MHz | VME | SCSI | Pedestal | |
RC3370 | RB3133 | ||||||
RC6260 | R6300 | R6000 | 66MHz | VME | SCSI | Pedestal | |
RC6280 | R6300 | R6000 | 66MHz | VMEx6 | SMD | Data Center | |
RC6380-100 | R6000x1 | 66MHz | VME | SMD | Data Center | ||
RC6380-200 | R6000x2 | 66MHz | VME | SMD | Data Center | ||
RC6380-400 | R6000x4 | 66MHz | VME | SMD | Data Center |
Preparation
Prerequisites
To complete the installation of RISC/os described here, you will require the following:
- MAME version 0.211 or newer
- ROM images for the RS2030 or other supported system
- RISC/os 4.52 network installation media
- Host operating system TAP networking support
These instructions should apply to any of the supported MIPS systems, however examples shown assume:
- Windows host operating system
- TAP adapter configured with address 192.168.137.1 (192.168.137.2 used by the MAME guest)
- MAME rs2030 driver
Network
MIPS computers use a combination of BFS, BOOTP, TFTP and Berkely r-command (rsh/rcp, etc.) network protocols to perform network booting and installation. While BOOTP, TFTP and the r-commands are still able to be found and deployed on modern host platforms, BFS is a MIPS-specific protocol which provides similar functionality to BOOTP, and is the only option available for older MIPS systems such as the RS2030.
In addition, these systems are programmed with an assumption that IP network broadcast addresses should be constructed with zeroes in the host portion rather than ones (e.g. 192.168.137.0 versus 192.168.137.255). This fact makes receiving broadcast packets produced by BFS/BOOTP on these systems quite challenging, and two workarounds are required to resolve this issue. The MAME driver includes one workaround internally, which patches the firmware for the systems to use a standard broadcast address. A second workaround must be implemented externally to MAME by patching the sash
program binary to apply the same fix.
A utility implementing the BFS protocol, and sufficient portions of BOOTP, TFTP and the r-commands in Python is available to support the installation of RISC/os as described here. The utility has been used successfully on Windows, and should also work on Linux or other operating systems with some minor tweaking.
Storage
Use the chdman
createhd
command to prepare a new CHD for the operating system installation, and then the addmeta
command to apply a manufacturer string used to identify the drive make/model information that will be returned by the SCSI INQUIRY command.
chdman createhd -o riscos.chd -c none -chs 1731,15,80 chdman addmeta -i riscos.chd -t IDNT -vt "SEAGATE ST11200N 1.00"
The SCSI INQUIRY response data (defined by the IDNT meta-data tag in the CHD) should consist of an 8 character manufacturer name, 16 character model number, and 4 character version number, all left justified and padded with spaces.
Configuration
TODO: mame configuration
mame64 rs2030 -hard riscos.chd
Installing RISC/os
Environment
After powering on the system, you should be presented with the MIPS Monitor prompt. The help
command shows the syntax recognized, and additional information may be found in the manual[2].
To complete a network installation, it's necessary to set the system TCP/IP address to one compatible with the external networking environment, using the setenv
command. The current environment settings are retained in non-volatile memory, and may be displayed using printenv
.
setenv netaddr 192.168.137.2
Format
The format
utility allows disks to be formatted, partitioned and labelled. There are two versions of this utility, with format.std
being used for all but the RC2030 and RS2030 systems, which have their own dedicated version format.2030
.
Launch the applicable format
utility using the boot
command, being sure to provide a path name matching the BFS or TFTP data path.
boot -f bfs()tree/stand/format.2030
Once format
is launched, accept the defaults for all prompts except the following, adjusting the disk geometry to match that provided to chdman
.
Prompt | Response |
---|---|
name of device | dksd |
device parameters | 13 |
number of cylinders | 1731 |
number heads in vol 0 | 15 |
number sectors per track | 80 |
number bytes per sector | 512 |
media defect command | q |
write new volume header | y |
The utility will exit to the monitor once the volume header has been written.
Miniroot Installation
The standalone shell (sash) is very similar to the monitor, but is loaded from network or disk, has access to more devices and provides a few more commands. As with the format
utility, there are two versions of the standalone shell. sash.std
is used for all but the RC2030 and RS2030 systems which have their own dedicated implementation, sash.2030
. Launch sash
as follows.
boot -f bfs()tree/stand/sash.2030
From the sash
prompt, use the cp
command to copy the miniroot filesystem from TFTP to the boot partition of the hard disk.
cp bfs()root.fs dksd(0,0,1)
This process should take around 10 minutes to complete.
RISC/os Installation
After the miniroot has been copied to disk, RISC/os may be booted using it as a root file system with a kernel loaded from TFTP.
boot -f bfs()unix.i2000_std root=sdc0d0s1
From the miniroot shell prompt, configure the environment to specify a network installation and the name of the installation server, and start the RISC/os installation utility inst
.
From=en Server=host inst
Most of the prompts from inst
are fairly obvious, however there are a few which require further explanation:
- The "remote package root" and "remote packaging information tree" responses must correspond to the "tree" and "umips4.52" directories within the RISC/os network installation structure respectively.
- The "mh" package is damaged and cannot be installed successfully from the currently available installation media.
- Skipping the disk space check is recommended, as it can be quite time-consuming and is unnecessary if using a sufficiently-sized disk.
- Skipping the network configuration steps is recommended, as they may cause
inst
to abort if unable to copy r-command configuration files from the host.
A minimal installation (root, rc2030, usr) should take about 10 minutes, after which the system should be shut down with telinit
.
telinit 0
Booting RISC/os
Once installation is complete, the MIPS monitor may be configured to boot RISC/os normally:
setenv bootfile dksd(0,0,8)sash
After this, the auto
command may be used to boot RISC/os.
At first boot, some questions about networking should be completed allowing the network to be configured, after which a login prompt will be presented and RISC/os is ready for use.
-
MIPS Monitor
-
MIPS Standalone Shell
-
RISC/os Miniroot
-
RISC/os
References
The following are some useful references pertaining to MIPS computer systems.
Topic | Links |
---|---|
Archived post describing RISC/os installation | [3] |
Blog describing setup and use of a real RS2030 | [4] [5] [6] |
MIPS Monitor reference | [7] |
RISC/os documentation | [8] |
Historical information about UMIPS/RISC/os | [9] |