diff --git a/test-lm32/.gitignore b/test-lm32/.gitignore
deleted file mode 100644
index f6ed4438cd8ed1c58fda678b6a5f64c3f171ea94..0000000000000000000000000000000000000000
--- a/test-lm32/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-spec-*cpu
-spec-*cpu.bin
\ No newline at end of file
diff --git a/test-lm32/Makefile b/test-lm32/Makefile
deleted file mode 100644
index 58f7575ad612349ebb482cdc0a66689f98936bf9..0000000000000000000000000000000000000000
--- a/test-lm32/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-
-CROSS_COMPILE ?= /opt/gcc-lm32/bin/lm32-elf-
-
-# classic cross-compilation tool-set
-AS		= $(CROSS_COMPILE)as
-LD		= $(CROSS_COMPILE)ld
-CC		= $(CROSS_COMPILE)gcc
-CPP		= $(CC) -E
-AR		= $(CROSS_COMPILE)ar
-NM		= $(CROSS_COMPILE)nm
-STRIP		= $(CROSS_COMPILE)strip
-OBJCOPY		= $(CROSS_COMPILE)objcopy
-OBJDUMP		= $(CROSS_COMPILE)objdump
-
-
-CFLAGS += -ffreestanding -Os  \
-	-ffunction-sections -fdata-sections \
-	-mmultiply-enabled -mbarrel-shift-enabled
-
-LDFLAGS = -nostdlib -static -T spec.lds
-
-ALL = $(patsubst %.c, %.bin, $(wildcard *.c))
-
-%.bin: %
-	$(OBJCOPY) -O binary $* $*.bin
-
-all: $(ALL)
-
-clean:
-	rm -f $(ALL) *.o *~
-
-spec-test00-cpu: crt0.o spec-test00-cpu.o
-	$(CC) $(LDFLAGS) $^ -o $@
-
-# add the other unused targets, so the rule in ../Makefile works
-modules install modules_install:
diff --git a/test-lm32/README b/test-lm32/README
deleted file mode 100644
index a0cdb92e05d8805ff4e109d446e4e1d03c321429..0000000000000000000000000000000000000000
--- a/test-lm32/README
+++ /dev/null
@@ -1,4 +0,0 @@
-
-This directory includes test programs to be run on the lm32 that runs
-within the spec.
-
diff --git a/test-lm32/crt0.S b/test-lm32/crt0.S
deleted file mode 100644
index eca382680209c235195f9e68f09765b2909f00ca..0000000000000000000000000000000000000000
--- a/test-lm32/crt0.S
+++ /dev/null
@@ -1,259 +0,0 @@
-/****************************************************************************
-**
-**  Name: crt0ram.S
-**
-**  Description:
-**        Implements boot-code that calls LatticeDDInit (that calls main())
-**        Implements exception handlers (actually, redirectors)
-**
-**  $Revision: $
-**
-** Disclaimer:
-**
-**   This source code is intended as a design reference which
-**   illustrates how these types of functions can be implemented.  It
-**   is the user's responsibility to verify their design for
-**   consistency and functionality through the use of formal
-**   verification methods.  Lattice Semiconductor provides no warranty
-**   regarding the use or functionality of this code.
-**
-** --------------------------------------------------------------------
-**
-**                     Lattice Semiconductor Corporation
-**                     5555 NE Moore Court
-**                     Hillsboro, OR 97214
-**                     U.S.A
-**
-**                     TEL: 1-800-Lattice (USA and Canada)
-**                          (503)268-8001 (other locations)
-**
-**                     web:   http://www.latticesemi.com
-**                     email: techsupport@latticesemi.com
-**
-** --------------------------------------------------------------------------
-**
-**  Change History (Latest changes on top)
-**
-**  Ver    Date        Description
-** --------------------------------------------------------------------------
-**  3.8   Apr-15-2011  Added __MICO_USER_<handler>_HANDLER__ preprocessor to 
-**                     allow customers to implement their own handlers for:
-**                     DATA_ABORT, INST_ABORT
-**  
-**  3.1   Jun-18-2008  Added __MICO_NO_INTERRUPTS__ preprocessor
-**                     option to exclude invoking MicoISRHandler
-**                     to reduce code-size in apps that don't use
-**                     interrupts
-**
-**  3.0   Mar-25-2008  Added Header
-**
-**---------------------------------------------------------------------------
-*****************************************************************************/
-
-/*
- * LatticeMico32 C startup code.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/* From include/sys/signal.h */  
-#define SIGINT  2   /* interrupt */
-#define SIGTRAP 5   /* trace trap */
-#define SIGFPE  8   /* arithmetic exception */
-#define SIGSEGV 11  /* segmentation violation */
-
-//#define MICO32_FULL_CONTEXT_SAVE_RESTORE
-
-
-/* Exception handlers - Must be 32 bytes long. */
-        .section    .boot, "ax", @progbits
-	
-        .global	_start  
-_start: 
-	   
-        .global _reset_handler
-        .type 	_reset_handler, @function
-_reset_handler:
-    xor r0, r0, r0
-    wcsr    IE, r0
-    wcsr    IM, r0
-    mvhi    r1, hi(_reset_handler)
-    ori     r1, r1, lo(_reset_handler)
-    wcsr    EBA, r1
-    calli   _crt0
-    nop
-        .size	_reset_handler, .-_reset_handler
-	
-.extern _irq_entry
-.org 0xc0
-        .global _interrupt_handler
-        .type 	_interrupt_handler, @function
-_interrupt_handler:
-    sw      (sp+0), ra
-    calli   _save_all
-    mvi     r1, SIGINT
-#ifndef __MICO_NO_INTERRUPTS__
-    calli  _irq_entry
-#else
-    wcsr    IE, r0
-#endif
-    bi      _restore_all_and_return
-    nop
-    nop
-    nop
-
-.org 0x100
-        .global _crt0
-        .type 	_crt0, @function
-_crt0:
-    /* Clear r0 */
-    xor     r0, r0, r0
-    /* Setup stack and global pointer */
-    mvhi    sp, hi(_fstack)
-    ori     sp, sp, lo(_fstack)
-    mvhi    gp, hi(_gp)
-    ori     gp, gp, lo(_gp)
-	
-    mvhi    r1, hi(_fbss)
-    ori     r1, r1, lo(_fbss)
-    mvi     r2, 0
-    mvhi    r3, hi(_ebss)
-    ori     r3, r3, lo(_ebss)
-    sub     r3, r3, r1
-    calli   memset
-    mvi     r1, 0
-    mvi     r2, 0
-    mvi     r3, 0
-    calli   main
-
-loopf:
-	bi loopf
-
-        .global _save_all
-        .type 	_save_all, @function
-_save_all:
-#ifdef MICO32_FULL_CONTEXT_SAVE_RESTORE
-    addi    sp, sp, -128
-#else
-    addi    sp, sp, -60
-#endif
-    sw      (sp+4), r1
-    sw      (sp+8), r2
-    sw      (sp+12), r3
-    sw      (sp+16), r4
-    sw      (sp+20), r5
-    sw      (sp+24), r6
-    sw      (sp+28), r7
-    sw      (sp+32), r8
-    sw      (sp+36), r9
-    sw      (sp+40), r10
-#ifdef MICO32_FULL_CONTEXT_SAVE_RESTORE
-    sw      (sp+44), r11
-    sw      (sp+48), r12
-    sw      (sp+52), r13
-    sw      (sp+56), r14
-    sw      (sp+60), r15
-    sw      (sp+64), r16
-    sw      (sp+68), r17
-    sw      (sp+72), r18
-    sw      (sp+76), r19
-    sw      (sp+80), r20
-    sw      (sp+84), r21
-    sw      (sp+88), r22
-    sw      (sp+92), r23
-    sw      (sp+96), r24
-    sw      (sp+100), r25
-    sw      (sp+104), r26
-    sw      (sp+108), r27
-    sw      (sp+120), ea
-    sw      (sp+124), ba
-    /* ra and sp need special handling, as they have been modified */
-    lw      r1, (sp+128)
-    sw      (sp+116), r1
-    mv      r1, sp
-    addi    r1, r1, 128
-    sw      (sp+112), r1
-#else
-    sw      (sp+52), ea
-    sw      (sp+56), ba
-    /* ra and sp need special handling, as they have been modified */
-    lw      r1, (sp+60)
-    sw      (sp+48), r1
-    mv      r1, sp
-    addi    r1, r1, 60
-    sw      (sp+44), r1
-#endif
-//    xor     r1, r1, r1
-//    wcsr    ie, r1
-    ret
-        .size  	_save_all, .-_save_all
-	
-        .global _restore_all_and_return
-        .type 	_restore_all_and_return, @function
-    /* Restore all registers and return from exception */
-_restore_all_and_return:
-//    addi    r1, r0, 2
-//    wcsr    ie, r1
-    lw      r1, (sp+4)
-    lw      r2, (sp+8) 
-    lw      r3, (sp+12) 
-    lw      r4, (sp+16) 
-    lw      r5, (sp+20) 
-    lw      r6, (sp+24) 
-    lw      r7, (sp+28) 
-    lw      r8, (sp+32) 
-    lw      r9, (sp+36) 
-    lw      r10, (sp+40)
-#ifdef MICO32_FULL_CONTEXT_SAVE_RESTORE
-    lw      r11, (sp+44)
-    lw      r12, (sp+48)
-    lw      r13, (sp+52)
-    lw      r14, (sp+56)
-    lw      r15, (sp+60)
-    lw      r16, (sp+64)
-    lw      r17, (sp+68)
-    lw      r18, (sp+72)
-    lw      r19, (sp+76)
-    lw      r20, (sp+80)
-    lw      r21, (sp+84)
-    lw      r22, (sp+88)
-    lw      r23, (sp+92)
-    lw      r24, (sp+96)
-    lw      r25, (sp+100)
-    lw      r26, (sp+104)
-    lw      r27, (sp+108)
-    lw      ra, (sp+116)
-    lw      ea, (sp+120)
-    lw      ba, (sp+124)
-    /* Stack pointer must be restored last, in case it has been updated */
-    lw      sp, (sp+112)
-#else
-    lw      ra, (sp+48)
-    lw      ea, (sp+52)
-    lw      ba, (sp+56)
-    /* Stack pointer must be restored last, in case it has been updated */
-    lw      sp, (sp+44)
-#endif
-    nop
-    eret
-        .size   _restore_all_and_return, .-_restore_all_and_return
-
diff --git a/test-lm32/spec-test00-cpu.c b/test-lm32/spec-test00-cpu.c
deleted file mode 100644
index dc8bf803a027db2456c0a61c4fe9ed52faca314d..0000000000000000000000000000000000000000
--- a/test-lm32/spec-test00-cpu.c
+++ /dev/null
@@ -1,16 +0,0 @@
-
-/* Just a test to check it runs. Keep changing a meory location */
-
-volatile int *p = (volatile int *)0x8000; /* static addr: easily found */
-
-int main(void)
-{
-	*p = 0;
-	while (1)
-		(*p)++;
-}
-
-
-/* needed ... */
-void _irq_entry(void)
-{}
diff --git a/test-lm32/spec.lds b/test-lm32/spec.lds
deleted file mode 100644
index 86ec2e947bf2c533516f2e7d2ff178e385417b71..0000000000000000000000000000000000000000
--- a/test-lm32/spec.lds
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Simulator Link script for Lattice Mico32.
- * Contributed by Jon Beniston <jon@beniston.com>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-OUTPUT_FORMAT("elf32-lm32")
-ENTRY(_start)
-/*INPUT() */
-GROUP(-lgcc -lc)
-
-MEMORY
-{
-    ram : ORIGIN = 0x00000000, LENGTH = 0x10000
-}
-
-SECTIONS
-{
-
-  .boot : { *(.boot) } > ram
-   
-  /* Code */
-  .text           :
-  {
-    . = ALIGN(4);
-    _ftext = .;
-    _ftext_rom = LOADADDR(.text);
-    *(.text .stub .text.* .gnu.linkonce.t.*)
-    *(.gnu.warning)
-    KEEP (*(.init))
-    KEEP (*(.fini))
-    /* Constructors and destructors */
-    KEEP (*crtbegin*.o(.ctors))
-    KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
-    KEEP (*(SORT(.ctors.*)))
-    KEEP (*(.ctors))
-    KEEP (*crtbegin*.o(.dtors))
-    KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
-    KEEP (*(SORT(.dtors.*)))
-    KEEP (*(.dtors))
-    KEEP (*(.jcr))
-    _etext = .;
-  } > ram =0 
-
-  /* Exception handlers */
-  .eh_frame_hdr : { *(.eh_frame_hdr) } > ram
-  .eh_frame : { KEEP (*(.eh_frame)) } > ram
-  .gcc_except_table : { *(.gcc_except_table) *(.gcc_except_table.*) } > ram
-    
-  /* Read-only data */
-  .rodata         : 
-  { 
-    . = ALIGN(4);
-    _frodata = .;
-    _frodata_rom = LOADADDR(.rodata);
-    *(.rodata .rodata.* .gnu.linkonce.r.*) 
-    *(.rodata1)
-    _erodata = .;
-  } > ram
-        
-  /* Data */
-  .data           : 
-  {
-    . = ALIGN(4);
-    _fdata = .;
-    _fdata_rom = LOADADDR(.data);
-    *(.data .data.* .gnu.linkonce.d.*)
-    *(.data1)
-    SORT(CONSTRUCTORS)
-    _gp = ALIGN(16) + 0x7ff0;
-    *(.sdata .sdata.* .gnu.linkonce.s.*)
-    _edata = .;
-  } > ram 
-  
-  /* BSS */
-  .bss           :
-  {
-    . = ALIGN(4);
-    _fbss = .;
-    *(.dynsbss)
-    *(.sbss .sbss.* .gnu.linkonce.sb.*)
-    *(.scommon)
-    *(.dynbss)
-    *(.bss .bss.* .gnu.linkonce.b.*)
-    *(COMMON)
-    . = ALIGN(4);
-    _ebss = .;
-    _end = .;
-    PROVIDE (end = .);
-  } > ram
-  
-  /* First location in stack is highest address in RAM */
-  PROVIDE(_fstack = ORIGIN(ram) + LENGTH(ram) - 4);
-  
-  /* Stabs debugging sections.  */
-  .stab          0 : { *(.stab) }
-  .stabstr       0 : { *(.stabstr) }
-  .stab.excl     0 : { *(.stab.excl) }
-  .stab.exclstr  0 : { *(.stab.exclstr) }
-  .stab.index    0 : { *(.stab.index) }
-  .stab.indexstr 0 : { *(.stab.indexstr) }
-  .comment       0 : { *(.comment) }
-  
-  /* DWARF debug sections.
-     Symbols in the DWARF debugging sections are relative to the beginning
-     of the section so we begin them at 0.  */
-  /* DWARF 1 */
-  .debug          0 : { *(.debug) }
-  .line           0 : { *(.line) }
-  /* GNU DWARF 1 extensions */
-  .debug_srcinfo  0 : { *(.debug_srcinfo) }
-  .debug_sfnames  0 : { *(.debug_sfnames) }
-  /* DWARF 1.1 and DWARF 2 */
-  .debug_aranges  0 : { *(.debug_aranges) }
-  .debug_pubnames 0 : { *(.debug_pubnames) }
-  /* DWARF 2 */
-  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
-  .debug_abbrev   0 : { *(.debug_abbrev) }
-  .debug_line     0 : { *(.debug_line) }
-  .debug_frame    0 : { *(.debug_frame) }
-  .debug_str      0 : { *(.debug_str) }
-  .debug_loc      0 : { *(.debug_loc) }
-  .debug_macinfo  0 : { *(.debug_macinfo) }
-  /* SGI/MIPS DWARF 2 extensions */
-  .debug_weaknames 0 : { *(.debug_weaknames) }
-  .debug_funcnames 0 : { *(.debug_funcnames) }
-  .debug_typenames 0 : { *(.debug_typenames) }
-  .debug_varnames  0 : { *(.debug_varnames) }
-}