Difference between revisions of "Native MIPS Systems"

From Lazarus wiki
Jump to navigationJump to search
(Add reference to Qemu etc.)
(Messy working notes.)
Line 5: Line 5:
 
*  Those that boot an operating system from internal Flash, such as the Linksys/Cisco WRT54G [http://wiki.openwrt.org/].
 
*  Those that boot an operating system from internal Flash, such as the Linksys/Cisco WRT54G [http://wiki.openwrt.org/].
  
*  Those that boot an operating system from a conventional disc, connected via IDE, SCSI or USB, such as a Cobalt/Sun Qube or Raq.
+
*  Those that boot an operating system from a conventional disc, connected via IDE, SCSI or USB, such as an SGI server or workstation, or a Cobalt/Sun Qube or Raq.
  
 
*  Those running as guests using an emulator such as [[Qemu and other emulators|Qemu]] on a general-purpose computer.
 
*  Those running as guests using an emulator such as [[Qemu and other emulators|Qemu]] on a general-purpose computer.
Line 22: Line 22:
  
 
There is a system library bundled with the compiler, but no indication of how far the compiler is capable of handling the remainder of the standard libraries.
 
There is a system library bundled with the compiler, but no indication of how far the compiler is capable of handling the remainder of the standard libraries.
 +
 +
== Messy Working Notes ==
 +
 +
Anybody: please feel free to improve/delete all of this, they're basically stream-of-consciousness.
 +
 +
I've now got mipsel working as a Qemu guest, but have reservations about the performance. Currently running my "torture test". I'd very much prefer having some real MIPS hardware, but right now that's not going to happen.
 +
 +
http://sourceforge.net/projects/fpc-mips/files/fpc-mips/0.90/fpc_mips_bin_090.zip/download
 +
 +
http://sourceforge.net/projects/fpc-mips/files/fpc-mips/0.90/fpc_mips_all_090a.zip/download
 +
 +
Both of those are mipsel. Comparing with arm/armel I've found minimal difference in the compiler and system unit between big- and little-endian.
 +
 +
I don't know how good something like a Raq would be for compilation. They've not got much memory but take standard EDO, if we're lucky they'd work with Compaq DIMMs of which we have a lot. We missed an SGI Origin a few months ago but only spotted it a couple of hours before the eBay auction closed- went for £10 :-(

Revision as of 23:27, 20 May 2011

The MIPS architecture is unusual in that it was designed for desktop computers, is now overwhelmingly used for embedded systems, but can still occasionally be found in desktops or small servers. The only comparable architecture is ARM, which is the platform of choice for a multitude of "bratphones", tablets etc.

Like almost all computers, MIPS-based systems will contain an internal loader, usually in Flash memory. However there are three basic categories of system:

  • Those that boot an operating system from internal Flash, such as the Linksys/Cisco WRT54G [1].
  • Those that boot an operating system from a conventional disc, connected via IDE, SCSI or USB, such as an SGI server or workstation, or a Cobalt/Sun Qube or Raq.
  • Those running as guests using an emulator such as Qemu on a general-purpose computer.

In any of these cases it is necessary to be able to install a general-purpose operating system such as Linux in order to be able to run development tools. This writer (MarkMLl) favours Debian, since he finds that using it results in a very similar system on a wide range of hardware (x86, SPARC, PPC, MIPS, ARM, zSeries).

If you intend to build Lazarus, make sure you have at least 512Mb memory (RAM + swap) available.

Interim Notes

The "unofficial" MIPS compiler at [2] was written by David Zhang (possibly [3]) and is licensed under GPL Version 2, it cites but does not include the COPYING.FPC file.

There are .zip files of both sources and a minimal executable at Sourceforge (link above). The sources are basically modified contents of fpcsrc/compiler/mips based on FPC 2.0.0, the compiler targets mipsel and is described as being operational on Qemu but not yet supporting shared libraries.

Since this is specifically a little-endian compiler it should presumably be compatible with Linux on a MIPS-based Qube or Raq, or with the Chinese "Loongson" processor of fable. It will not be compatible with SGI MIPS systems, which are big-endian.

There is a system library bundled with the compiler, but no indication of how far the compiler is capable of handling the remainder of the standard libraries.

Messy Working Notes

Anybody: please feel free to improve/delete all of this, they're basically stream-of-consciousness.

I've now got mipsel working as a Qemu guest, but have reservations about the performance. Currently running my "torture test". I'd very much prefer having some real MIPS hardware, but right now that's not going to happen.

http://sourceforge.net/projects/fpc-mips/files/fpc-mips/0.90/fpc_mips_bin_090.zip/download

http://sourceforge.net/projects/fpc-mips/files/fpc-mips/0.90/fpc_mips_all_090a.zip/download

Both of those are mipsel. Comparing with arm/armel I've found minimal difference in the compiler and system unit between big- and little-endian.

I don't know how good something like a Raq would be for compilation. They've not got much memory but take standard EDO, if we're lucky they'd work with Compaq DIMMs of which we have a lot. We missed an SGI Origin a few months ago but only spotted it a couple of hours before the eBay auction closed- went for £10 :-(