Draft:Installing Windows NT on MIPS

Back to Windows build FAQ

This page provides instructions on installing builds of Windows NT compiled for the MIPS architecture. Windows NT 3.1, Windows NT 3.5x, and Windows NT 4.0 were all compiled in many different architectures, including the MIPS architecture.

Overview

Microsoft initially developed Windows NT on internally-designed i860XR-based (Dazzle) workstations, which would later be ported onto MIPS and i386 hardware. These MIPS builds were compiled for Microsoft's Jazz architecture and thus were tested and meant to be run on the MIPS Magnum R4000.[1] Throughout the lifespan of these versions, MIPS had minimal application support from application developers. Support for the MIPS architecture was dropped after the release of Windows NT 4.0, and no build of Windows 2000 was compiled for the MIPS architecture.

Installation guide

Windows NT 4.0

Prerequisites

The following requirements used in order to install this version onto a virtual machine are listed below:

  • A copy of QEMU (at least v6.2.0, v7.0.0 or above is recommended)
  • A version of the ARC boot firmware designed for the MIPS Magnum R4000 system. This file should be named mipsel_bios.bin and placed in the same directory of the QEMU installation.

This guide will use Windows NT 4.0 with Service Pack 1 as the build of Windows that will be installed, but this will also work for build 1314 (Beta 2) and the RTM build.

Instructions

First, create the virtual hard disk via this command. The size of the disk can be any value, but it must have at least 150 MB of space and should be less than or equal to 4 GB. You can specify the size as #M for megabytes or #G for gigabytes.

qemu-img create -f qcow2 nt4mips.qcow2 500M

Next, you must ensure the ARC firmware file is in the same directory of the QEMU installation and properly named mipsel_bios.bin. To start up the virtual machine, enter the following command:

qemu-system-mips64el -hda nt4mips.qcow2 -M magnum -m 128 -global ds1225y.filename=nvram -net nic -net user -cdrom <filename of installation media>

This will start up a QEMU Magnum MIPS machine with 128 MB of RAM, a network card, a hard drive, and the installation media disk. The global parameter of the command is necessary in order to save the NVRAM properly. During the boot sequence, it will state that the NVRAM (ARC information) isn't set up. Use the arrow keys to run the system setup and select "Initialize system". Use the default values for "Set default configuration" (except the monitor resolution, which can be set to the option of your desire) and "Set default environment", and ensure that the value isn't all zeroes in "Set ethernet address". The ARC date should be the current date with GMT time; if it isn't, change it via the "Set time" option.

Once you exit the setup program, you may notice that the system is frozen. QEMU is unable to properly reset the MIPS system, hence halting the system when a reboot or shutdown occurs. Simply close QEMU[a] and relaunch it with the above command. You now need to run ARCINST in order to partition and format a drive, much like the fdisk and format commands on a x86 system. Select "Run a program" on the boot loader, and type cd:\mips\arcinst and press Enter.

From this point, you must create two partitions - one for the system itself and one for the boot loader. Windows Setup expects a separate partition that will be installed on, and will refuse to install on the same partition as the default system partition to prevent an unbootable system. Create the system partition first, which must not use all the space on the drive. Instead, use all but at least 5-6 MB of space on the drive. The remaining space will be used for the boot loader partition, which must be created second. Afterwards, exit ARCINST. You may notice that there are a few "Start" entries on the ARC bootloader, but they should be ignored. Run setup again, and in "Initialize system", select "Set default environment" and change the default system partition to 2, while setting everything else to default.

Exit the system setup, and go back to "Run a program". With the partitions now ready, setup can be started. Run cd:\mips\setupldr and setup will immediately load. Setup will function exactly like in a x86 install; just select the largest partition as the installation drive. You can choose to format the drive as FAT or NTFS; if you choose to format in NTFS, you may have to wait a few seconds during the disk convert before it is safe to reboot the system (it will halt at "Converting file system" after the NTFS conversion is completed). For internet access, you must install the TCP/IP protocol and click "Yes" on the DHCP prompt.

After completion of the GUI portion of setup, you will be prompted on login to press Ctrl+Alt+Del to unlock the system. From here, press Ctrl+Alt+3 in the QEMU window (or go to View > compatmonitor0) to open the console, then enter the command sendkey ctrl-alt-delete. Press Ctrl+Alt+1 (or go to View > sysbus-g364) to go back to the system monitor and log into the system as usual.

Windows NT 3.5x

Prerequisites

The following requirements used in order to install this version onto a virtual machine are listed below:

  • A copy of QEMU (at least v6.2.0, v7.0.0 or above is recommended)
  • A version of the ARC boot firmware designed for the MIPS Magnum R4000 system. This file should be named mipsel_bios.bin and placed in the same directory of the QEMU installation.

This guide will use Windows NT 3.51 RTM as the build of Windows that will be installed, but this will also work for Windows NT 3.5 RTM, as well as build 896, build 944 (Beta), and any service packs for Windows NT 3.5x.

Instructions

Installation for Windows NT 3.5x is largely similar to that of Windows NT 4.0. Create the virtual hard disk, using any size that is at least 100 MB of space and should be less than or equal to 4 GB. You can specify the size as #M for megabytes or #G for gigabytes.

qemu-img create -f qcow2 nt351mips.qcow2 500M

Ensure the ARC firmware file is in the same directory of the QEMU installation and properly named mipsel_bios.bin. To start up the virtual machine, enter the following command:

qemu-system-mips64el -hda nt351mips.qcow2 -M magnum -m 64 -global ds1225y.filename=nvram -net nic -net user -cdrom <filename of installation media>

This will start up a QEMU Magnum MIPS machine with 64 MB of RAM, a network card, a hard drive, and the installation media disk. The global parameter of the command is necessary in order to save the NVRAM properly. Much like Windows NT 4.0, you need to initiate the system by setting the default values in the default configuration and environment. The ethernet address will likely be all zeroes; set it to a value other than that.

Once you exit the setup program, you may notice that the system is frozen. QEMU is unable to properly reset the MIPS system, hence halting the system when a reboot or shutdown occurs. Simply close QEMU{{efn|and relaunch it with the above command. Select "Run a program" on the boot loader, and type cd:\mips\arcinst and press Enter to run ARCINST. Create the two partitions as stated in the Windows NT 4.0 installation instructions, and change the default environment to use the second partition.

Go back to "Run a program" and run cd:\mips\setupldr to start setup. Setup will function exactly like in a x86 install; just select the largest partition as the installation drive. You can choose to format the drive as FAT or NTFS; if you choose to format in NTFS, you may have to wait a few seconds during the disk convert before it is safe to reboot the system (it will halt at "Converting file system" after the NTFS conversion is completed). For internet access, you must install the TCP/IP protocol and click "Yes" on the DHCP prompt.

After completion of the GUI portion of setup, you will be prompted on login to press Ctrl+Alt+Del to unlock the system. From here, press Ctrl+Alt+3 in the QEMU window (or go to View > compatmonitor0) to open the console, then enter the command sendkey ctrl-alt-delete. Press Ctrl+Alt+1 (or go to View > sysbus-g364) to go back to the system monitor and log into the system as usual.

Windows NT 3.1

Prerequisites

The following requirements used in order to install this version onto a virtual machine are listed below:

  • A copy of MAME (at least v0.218, v0.249 or above is recommended)
  • The following firmware files for the following system components, all placed in the MAME roms folder:
    • A version of the ARC boot firmware designed for the MIPS Magnum R4000 system. The firmware contents should be placed in a folder named mmr4000le.
    • A version of the Microsoft Natural Keyboard. The firmware contents should be placed in a folder named kb_ms_natural.
    • A version of the PS/2 Keyboard. The firmware contents should be placed in a folder named ps2_keybc.

This guide will use Windows NT 3.1 RTM as the build of Windows that will be installed, but this will work for all beta builds of Windows NT 3.1 except for build 239.

Using the Workstation edition of Windows NT 3.1 is recommended; otherwise MAME can crash while attempting to set up the network that is mandatory on Server editions.

Instructions

First, create the virtual hard disk via this command. This will create a drive with the size of 504 MB. You can modify the drive size in terms of cylinders, heads, and sectors by changing the -chs value using the syntax cylinder,heads,sectors as shown in the command below, but the final drive should have at least 100 MB of space and should be less than or equal to 4 GB.[b]

chdman createhd -o nt31mips.chd -chs 1024,16,63

Next, you must ensure the aforementioned firmware files is in the roms directory of the MAME installation and properly named as mentioned in the Prerequisites. To start up the virtual machine, enter the following command:

mame mmr4000le -resolution0 auto -ramsize 64M -hard1 nt31mips.chd -cdrom <filename of installation media> -autoframeskip -video opengl -nomax -gl_glsl

This will start up a MAME Magnum MIPS machine with 64 MB of RAM, a hard drive, and the installation media disk. MAME may report some initial messages before starting the virtual machine (primarily related to incomplete components of the emulator), but just press any key to continue. During the boot sequence, it will state that the NVRAM (ARC information) isn't set up. Use the arrow keys to run the system setup and select "Initialize system". Use the default values for "Set default configuration" (except the monitor resolution, which can be set to the option of your desire) and "Set default environment", and ensure that the value isn't all zeroes in "Set ethernet address". Change the ARC date via "Set time" if it is not set at the current time in GMT.

Once the system reboots, you must run ARCINST in order to partition and format the drive, much like the fdisk and format commands on a x86 system. Select "Run a program" on the boot loader, and type cd:\mips\arcinst and press Enter.

From this point, you must create two partitions - one for the system itself and one for the boot loader. Windows Setup expects a separate partition that will be installed on, and will refuse to install on the same partition as the default system partition to prevent an unbootable system. Create the system partition first, which must not use all the space on the drive. Instead, use all but at least 5-6 MB of space on the drive. The remaining space will be used for the boot loader partition, which must be created second. Afterwards, exit ARCINST. You may notice that there are a few "Start" entries on the ARC bootloader, but they should be ignored. Run setup again, and in "Initialize system", select "Set default environment" and change the default system partition to 2, while setting everything else to default.

Go back to "Run a program" and run cd:\mips\setupldr to start setup. Setup will function exactly like in a x86 install; just select the largest partition as the installation drive. You can choose to format the drive as FAT or NTFS. When you reach the network setup, you should skip it, as MAME's current implementation of MIPS networking is buggy and often cause MAME to crash.

After completion of the GUI portion of setup, press Ctrl+Alt+Del to unlock the system and log in.

Windows NT 3.1 April 1991 build

This build of Windows NT runs on the MIPS Magnum R3000 and thus will not work with the R4000 machines used in this tutorial.

Bugs and quirks

General

  • QEMU and MAME currently do not support sound cards for MIPS.
  • Windows NT 3.1 and 3.5 does not work on all host systems, and may crash during the "Saving configuration..." portion of text-mode setup with a SYSTEM_SERVICE_EXCEPTION bugcheck, presumably due to a missing processor instruction required while setup saves the configuration during text-mode setup. If this is the case, use a different host system.
  • The Magnum machine will not detect more than 128 MB of RAM.

QEMU

  • Setting the RAM to less than 64 MB will cause the POST to fail.
  • It is recommended to use QEMU 6.2.0 or above, otherwise the following problems can occur on older versions:
    • the date of the ARC can be set to the year 2033 and the clock is set to "8:85:00". This can also cause the boot to hang during the RTC check during the POST. Using a patched ARC firmware file that removes the RTC check can rectify this problem.
    • on QEMU versions below 2.9.0, a serious memory leak will occur during ARCINST that will likely lag/crash the host system.
    • setup can crash if a exhaustive disk scan is performed.
  • QEMU is unable to properly restart/shut down the machine in the event of a reboot or power off. You must close QEMU{{efn| and reload it using the same QEMU command to start the system.
  • Windows NT 3.1 does not work on most versions of QEMU and crashes loading the GUI portion of setup.
  • If you keep getting the NVRAM is out of date or uninitiated error upon reboot, check to ensure you have entered the global parameter correctly as shown.
  • Each time setting up a new machine, the old NVRAM file (should be named "nvram" but have no file extension) should be deleted or its filename portion of the global parameter should be changed to a different name.
  • Only free builds do install properly on QEMU; checked builds will hang at the graphical stage of setup during preparation.

MAME

  • Emulation of the MIPS machine will be slower than on QEMU due to attempting to emulate more accurate instructions.
  • Each time setting up a new machine, the mmr4000le folder in the nvram folder of the MAME installation should be deleted to reset the NVRAM.
  • If "NcrInterruptServiceRoutine: Unexpected bus disconnect" happens during ARCINST or if setup deems the drive as corrupt during the disk scan, check if the command to start MAME is inputted correctly, as this indicates a disk I/O error. Otherwise, the MIPS firmware file needs to be replaced.

Notes

  1. The -no-reboot parameter can be used to instruct QEMU to automatically close instead of rebooting the system.
  2. Alternatively, a raw image can be created via QEMU's qemu-img application, which can then be ported onto MAME.

References