diff --git a/tests/SConstruct b/tests/SConstruct
index b48c327..c1b0a75 100644
--- a/tests/SConstruct
+++ b/tests/SConstruct
@@ -14,6 +14,7 @@
 PROTOC      Path to protoc binary
 PROTOCFLAGS Arguments to pass protoc
 NODEFARGS   Do not add the default CCFLAGS
+NOVALGRIND  Do not use valgrind for memory checks
 
 For example, for a clang build, use:
 scons CC=clang CXX=clang++
@@ -25,10 +26,13 @@
 env.SConsignFile("build/sconsign")
 env.Replace(CONFIGUREDIR = "build/config")
 
-if ARGUMENTS.get('PLATFORM') == 'STM32':
-    set_stm32_platform(env)
-elif ARGUMENTS.get('PLATFORM') == 'AVR':
-    set_avr_platform(env)
+if ARGUMENTS.get('PLATFORM'):
+    platform_func = platforms.get(ARGUMENTS.get('PLATFORM'))
+    if not platform_func:
+        print("Supported platforms: " + str(platforms.keys()))
+        raise Exception("Unsupported platform: " + ARGUMENTS.get('PLATFORM'))
+    else:
+        platform_func(env)
 
 # Limit memory usage. This is to catch problems like issue #338
 try:
@@ -54,6 +58,7 @@
 if 'PROTOC' in ARGUMENTS: env.Replace(PROTOC = ARGUMENTS['PROTOC'])
 if 'PROTOCFLAGS' in ARGUMENTS: env.Replace(PROTOCFLAGS = ARGUMENTS['PROTOCFLAGS'])
 if 'NODEFARGS' in ARGUMENTS: env.Replace(NODEFARGS = ARGUMENTS['NODEFARGS'])
+if 'NOVALGRIND' in ARGUMENTS: env.Replace(NOVALGRIND = ARGUMENTS['NOVALGRIND'])
 
 # Add the builders defined in site_init.py
 add_nanopb_builders(env)
@@ -199,7 +204,7 @@
 
 env.SetDefault(CORECFLAGS = '')
 
-if not env.get("EMBEDDED"):
+if not env.get("EMBEDDED") and not env.get("NOVALGRIND"):
     valgrind = env.WhereIs('valgrind')
     if valgrind:
         env.SetDefault(VALGRIND = valgrind)
diff --git a/tests/site_scons/platforms/mips/__init__.py b/tests/site_scons/platforms/mips/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/site_scons/platforms/mips/__init__.py
diff --git a/tests/site_scons/platforms/mips/mips.py b/tests/site_scons/platforms/mips/mips.py
new file mode 100644
index 0000000..039907f
--- /dev/null
+++ b/tests/site_scons/platforms/mips/mips.py
@@ -0,0 +1,11 @@
+# Compiler settings for running the tests on mips-linux-gnu (big endian)
+# using qemu. Requires following packages to be installed:
+# gcc-mips-linux-gnu g++-mips-linux-gnu qemu-user
+
+def set_mips_platform(env):
+    env.Replace(EMBEDDED = "MIPS")
+    env.Replace(CC  = "mips-linux-gnu-gcc",
+                CXX = "mips-linux-gnu-g++")
+    env.Replace(TEST_RUNNER = "/usr/bin/qemu-mips")
+    env.Append(LINKFLAGS = "-static")
+    
diff --git a/tests/site_scons/platforms/mipsel/__init__.py b/tests/site_scons/platforms/mipsel/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/site_scons/platforms/mipsel/__init__.py
diff --git a/tests/site_scons/platforms/mipsel/mipsel.py b/tests/site_scons/platforms/mipsel/mipsel.py
new file mode 100644
index 0000000..46b7aba
--- /dev/null
+++ b/tests/site_scons/platforms/mipsel/mipsel.py
@@ -0,0 +1,11 @@
+# Compiler settings for running the tests on mipsel-linux-gnu using
+# qemu. Requires following packages to be installed:
+# gcc-mipsel-linux-gnu g++-mipsel-linux-gnu qemu-user
+
+def set_mipsel_platform(env):
+    env.Replace(EMBEDDED = "MIPSEL")
+    env.Replace(CC  = "mipsel-linux-gnu-gcc",
+                CXX = "mipsel-linux-gnu-g++")
+    env.Replace(TEST_RUNNER = "/usr/bin/qemu-mipsel")
+    env.Append(LINKFLAGS = "-static")
+    
diff --git a/tests/site_scons/site_init.py b/tests/site_scons/site_init.py
index 0e485ac..c0031b8 100644
--- a/tests/site_scons/site_init.py
+++ b/tests/site_scons/site_init.py
@@ -3,6 +3,15 @@
 import re
 from platforms.stm32.stm32 import set_stm32_platform
 from platforms.avr.avr import set_avr_platform
+from platforms.mips.mips import set_mips_platform
+from platforms.mipsel.mipsel import set_mipsel_platform
+
+platforms = {
+    'STM32': set_stm32_platform,
+    'AVR': set_avr_platform,
+    'MIPS': set_mips_platform,
+    'MIPSEL': set_mipsel_platform,
+}
 
 try:
     # Make terminal colors work on windows
